/* Shared UI layer: Tailwind-compatible tokens + shadcn-style interaction states. */
:root{--ui-ink:#17201d;--ui-forest:#255c4d;--ui-sage:#a7d8c8;--ui-cream:#f4f1e9;--ui-yellow:#f0c95b;--ui-border:rgba(23,32,29,.14);--ui-shadow:0 22px 60px rgba(23,32,29,.12);--ui-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-behavior:smooth;max-width:100%;overflow-x:hidden}body{max-width:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a,button,input,select,textarea{transition:color .2s var(--ui-ease),background-color .2s var(--ui-ease),border-color .2s var(--ui-ease),box-shadow .2s var(--ui-ease),transform .2s var(--ui-ease)}
:where(a,button,input,select,textarea):focus-visible{outline:3px solid var(--ui-yellow);outline-offset:4px}
.site-header{position:sticky;top:0;background:color-mix(in srgb,var(--ui-cream) 88%,transparent);backdrop-filter:blur(18px);box-shadow:0 1px 0 var(--ui-border)}.brand-mark{box-shadow:0 8px 20px rgba(37,92,77,.2)}.nav-cta{box-shadow:0 5px 12px rgba(23,32,29,.04)}.nav-cta:hover{background:var(--ui-ink);color:#fff;transform:translateY(-2px)}
.hero{position:relative;isolation:isolate}.hero:before{content:'';position:absolute;z-index:-1;width:44vw;height:44vw;max-width:650px;max-height:650px;right:0;top:5%;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(167,216,200,.48),rgba(167,216,200,0) 68%);pointer-events:none}.hero h1{max-width:900px;text-wrap:balance}.hero-lead{max-width:570px}.button{box-shadow:0 1px 0 rgba(255,255,255,.15) inset}.button.primary:hover,.button.light:hover{box-shadow:0 14px 28px rgba(23,32,29,.16)}.button.secondary:hover{background:rgba(255,255,255,.62);transform:translateY(-2px)}
.signal-strip{background:rgba(255,255,255,.28)}.section h2,.section-heading h2{max-width:950px;text-wrap:balance}.projects{position:relative;isolation:isolate}.projects:before{content:'';position:absolute;inset:0;z-index:-1;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(180deg,#000,transparent 80%);pointer-events:none}.project,.concept-card{box-shadow:0 18px 50px rgba(0,0,0,.12)}.project:hover{box-shadow:0 28px 70px rgba(0,0,0,.2)}.store-mockup{box-shadow:inset 0 0 0 1px rgba(255,255,255,.24)}.compact .icon-box{transition:transform .3s var(--ui-ease),background-color .3s ease}.compact:hover .icon-box{transform:rotate(-8deg) scale(1.06);background:rgba(255,255,255,.65)}.steps li{transition:background-color .25s ease,padding-left .25s var(--ui-ease)}.steps li:hover{background:rgba(37,92,77,.04);padding-left:.7rem}.contact-section{position:relative;overflow:hidden}.contact-section:after{content:'';position:absolute;width:380px;height:380px;border-radius:50%;right:-160px;bottom:-220px;border:1px solid rgba(255,255,255,.2)}
.app-sidebar{box-shadow:18px 0 50px rgba(24,61,51,.08)}.app-logo span{box-shadow:0 8px 22px rgba(240,203,100,.18)}.side-link{transition:background-color .2s ease,color .2s ease,transform .2s var(--ui-ease)}.side-link:hover{transform:translateX(4px)}.app-header{background:rgba(244,245,241,.75);backdrop-filter:blur(14px)}.app-stats article,.data-panel,.calendar-card,.upcoming,.report-stats article,.chart-card{box-shadow:0 14px 40px rgba(25,48,39,.05)}.app-stats article{transition:transform .25s var(--ui-ease),box-shadow .25s ease}.app-stats article:hover{transform:translateY(-4px);box-shadow:var(--ui-shadow)}.app-button{min-height:40px}.app-button.primary:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(37,92,77,.2)}.search:focus-within{border-color:var(--ui-forest);box-shadow:0 0 0 4px rgba(167,216,200,.35)}.table-wrap tr{transition:background-color .2s ease}.table-wrap tbody tr:hover{background:#f7faf7}.status{letter-spacing:.01em}.toast{box-shadow:0 15px 30px rgba(0,0,0,.18)}
.showcase-nav{backdrop-filter:blur(14px);background:linear-gradient(180deg,rgba(0,0,0,.2),transparent)}.showcase-button{transition:transform .25s var(--ui-ease),background-color .25s ease,box-shadow .25s ease}.showcase-button:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,.18)}.showcase-hero .hero-copy h1{text-wrap:balance}.showcase-section h2,.showcase-cta h2{text-wrap:balance}.feature-row article{transition:transform .25s var(--ui-ease)}.feature-row article:hover{transform:translateY(-5px)}
@media(max-width:620px){.site-header{height:72px}.hero:before{width:100vw;height:100vw;right:-40vw;top:20%}.hero h1{font-size:clamp(3rem,15vw,4.2rem)}.floating-note{max-width:calc(100% - 1rem)}.project-copy{padding:2rem 1.4rem}.concept-content h3{font-size:3rem}.showcase-nav{padding-top:2.6rem}.showcase-nav .back-link{padding:.45rem .7rem}}
@media(max-width:560px){.app-main .table-wrap{overflow:hidden}.app-main table{min-width:0;width:100%;table-layout:fixed}.app-main table th:nth-child(3),.app-main table td:nth-child(3),.app-main table th:nth-child(4),.app-main table td:nth-child(4){display:none}.app-main table th,.app-main table td{padding-left:.75rem;padding-right:.75rem}.app-main table th:first-child,.app-main table td:first-child{width:58%}.app-main table th:nth-child(5),.app-main table td:nth-child(5){width:27%}.app-main table th:last-child,.app-main table td:last-child{width:15%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
/* Mobile data containers */
.app-main{min-width:0;overflow:hidden}.data-panel{max-width:100%}
