:root{
  --forest:#14231e;--forest-2:#1d332b;--green:#315c4c;--green-2:#477763;--ivory:#fffdf8;--stone:#f2efe8;--stone-2:#e9e4da;
  --sage:#dce8e2;--bronze:#9b7b45;--bronze-soft:#d9c69f;--ink:#17211d;--muted:#657069;--border:#dcd6cb;--danger:#a44f4f;
  --font-display:"Segoe UI Variable Display","Segoe UI",Inter,system-ui,sans-serif;--font-body:Inter,"Segoe UI Variable Text","Segoe UI",system-ui,sans-serif;
  --shadow-sm:0 8px 24px rgba(23,35,31,.07);--shadow:0 20px 60px rgba(23,35,31,.13);font-family:var(--font-body);color:var(--ink);background:var(--stone)
}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 86% 0,#e1eae5,transparent 30%),var(--stone);font-size:15px;line-height:1.58;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(155,123,69,.65);outline-offset:2px}[hidden]{display:none!important}
h1,h2,h3,.sidebar-brand strong,.kpi strong{font-family:var(--font-display)}
.eyebrow{margin:0 0 7px;color:var(--bronze);font-size:.72rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.monogram{width:44px;height:44px;display:grid;flex:0 0 auto;place-items:center;border:1px solid rgba(216,196,159,.72);border-radius:10px;color:#e3d2b1;font-family:var(--font-display);font-size:1.45rem;font-weight:750;background:rgba(255,255,255,.035)}
.btn{min-height:44px;padding:10px 17px;border:1px solid transparent;border-radius:9px;font-weight:750;letter-spacing:.005em;transition:transform .16s,box-shadow .16s,background .16s}
.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:wait;transform:none}.btn-primary{background:linear-gradient(135deg,var(--green-2),var(--green));color:#fff;box-shadow:0 8px 20px rgba(49,92,76,.22)}.btn-primary:hover{box-shadow:0 12px 26px rgba(49,92,76,.28)}.btn-secondary{border-color:var(--border);background:var(--ivory);color:var(--green)}.btn-quiet{border-color:transparent;background:transparent;color:var(--green)}
label{display:grid;gap:8px;color:#33423b;font-size:.84rem;font-weight:750}input,select,textarea{width:100%;min-height:46px;padding:10px 13px;border:1px solid var(--border);border-radius:9px;background:var(--ivory);color:var(--ink);outline:none;transition:border-color .16s,box-shadow .16s}input::placeholder{color:#9aa29d}input:focus,select:focus,textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 4px rgba(49,92,76,.11)}

/* Authentication */
.auth-view{min-height:100vh;display:grid;grid-template-columns:minmax(520px,1.14fr) minmax(460px,.86fr);background:var(--ivory)}
.auth-visual{position:relative;min-height:100vh;background:url('/assets/images/login-academic.webp') center 52%/cover,var(--forest);overflow:hidden;isolation:isolate}
.auth-visual:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(112deg,rgba(9,25,19,.88) 0%,rgba(20,35,30,.74) 48%,rgba(20,35,30,.24) 100%)}
.auth-visual:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,transparent,black 30%,black)}
.auth-overlay{position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 18% 17%,rgba(155,123,69,.34),transparent 31%),linear-gradient(0deg,rgba(8,20,15,.3),transparent 42%)}
.auth-brand{position:absolute;z-index:2;left:clamp(40px,6vw,96px);right:clamp(40px,7vw,108px);bottom:9%;color:#fff}
.auth-signature{display:flex;align-items:center;gap:15px;margin-bottom:clamp(42px,8vh,88px)}.auth-signature strong,.auth-signature small{display:block}.auth-signature strong{font-size:1rem;letter-spacing:.16em}.auth-signature small{max-width:320px;margin-top:2px;color:#c5d0cb;font-size:.73rem;letter-spacing:.025em}
.auth-brand>p:nth-of-type(1){margin:0 0 13px;color:#ddc89f;font-size:.76rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.auth-brand h1{max-width:700px;margin:0;font-size:clamp(2.8rem,5.2vw,5rem);line-height:1.01;letter-spacing:-.052em;text-wrap:balance}.auth-brand>p:nth-of-type(2){max-width:600px;margin:22px 0 0;color:#d7dfdb;font-size:clamp(.98rem,1.25vw,1.14rem);line-height:1.7}.auth-trust{display:flex;flex-wrap:wrap;gap:20px;margin-top:34px;color:#d7dfdb;font-size:.76rem;font-weight:700;letter-spacing:.025em}.auth-trust span:before{content:"";display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:50%;background:var(--bronze-soft);box-shadow:0 0 0 4px rgba(217,198,159,.12)}
.auth-panel{position:relative;display:grid;place-items:center;padding:clamp(34px,5vw,76px);overflow:hidden;background:radial-gradient(circle at 20% 18%,rgba(220,232,226,.75),transparent 29%),linear-gradient(145deg,#fffdf8 15%,#eee9df 100%)}
.auth-panel:before,.auth-panel:after{content:"";position:absolute;pointer-events:none}.auth-panel:before{width:420px;height:420px;right:-250px;top:-235px;border:1px solid rgba(155,123,69,.26);border-radius:50%;box-shadow:0 0 0 52px rgba(155,123,69,.035),0 0 0 104px rgba(155,123,69,.025)}.auth-panel:after{left:0;bottom:0;width:46%;height:36%;opacity:.32;background:linear-gradient(135deg,transparent 49.5%,rgba(155,123,69,.24) 50%,transparent 50.5%);background-size:30px 30px}
.auth-card{position:relative;z-index:1;width:min(470px,100%);display:grid;gap:20px;padding:clamp(32px,4vw,48px);border:1px solid rgba(201,193,179,.88);border-radius:18px;background:rgba(255,253,248,.93);box-shadow:0 30px 75px rgba(23,35,31,.14),inset 0 1px rgba(255,255,255,.9);backdrop-filter:blur(16px);animation:reveal .45s ease}.auth-card:before{content:"";position:absolute;left:0;top:42px;width:3px;height:58px;background:linear-gradient(var(--bronze),#c3aa79)}.auth-card-head{margin-bottom:4px}.auth-card h2{margin:0;font-size:clamp(1.9rem,3vw,2.35rem);line-height:1.15;letter-spacing:-.035em}.support{margin:8px 0 0;color:var(--muted);font-size:.94rem}.auth-card input{min-height:52px;background:#fff}.password-field{position:relative;display:block}.password-field input{padding-right:70px}.password-field button{position:absolute;right:8px;top:7px;min-width:54px;height:38px;border:0;border-radius:7px;background:transparent;color:var(--green);font-size:.78rem;font-weight:800}.auth-submit{min-height:52px;display:flex;align-items:center;justify-content:space-between;padding-inline:20px}.auth-assurance{margin:0;text-align:center;color:#7b847f;font-size:.72rem}.form-error{min-height:19px;color:var(--danger);font-size:.8rem}

/* Login composition */
.auth-view{grid-template-columns:minmax(560px,1.16fr) minmax(480px,.84fr)}
.auth-visual{background-position:center 52%;animation:authImageDrift 18s ease-in-out infinite alternate}
.auth-visual:before{background:linear-gradient(105deg,rgba(9,25,19,.88) 0%,rgba(20,35,30,.67) 51%,rgba(20,35,30,.22) 100%),radial-gradient(ellipse at center,transparent 38%,rgba(5,15,11,.27) 100%)}
.auth-visual:after{opacity:.82}
.auth-overlay{background:radial-gradient(circle at 19% 16%,rgba(168,132,70,.32),transparent 30%),radial-gradient(circle at 76% 55%,rgba(74,113,94,.12),transparent 37%),linear-gradient(0deg,rgba(7,18,13,.27),transparent 44%)}
.auth-brand{inset:clamp(52px,8vh,92px) clamp(44px,6.5vw,104px) clamp(50px,7vh,80px);display:grid;grid-template-rows:auto 1fr;bottom:auto;color:#fff}
.auth-signature{align-self:start;gap:17px;margin:0;animation:loginEnter .55s cubic-bezier(.22,.8,.3,1) both}
.auth-signature .monogram{width:54px;height:54px;border-radius:12px;font-size:1.75rem;box-shadow:0 10px 30px rgba(5,18,12,.18)}
.auth-signature strong{font-size:1.16rem;font-weight:850;letter-spacing:.135em}
.auth-signature small{max-width:390px;margin-top:3px;color:#d4ddd8;font-size:.82rem;line-height:1.45;letter-spacing:.025em}
.auth-message{align-self:center;max-width:720px;margin-top:-2vh;padding-bottom:2vh}
.auth-message>p:first-child{margin:0 0 14px;color:#dfc99f;font-size:.76rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase;animation:loginEnter .5s .12s cubic-bezier(.22,.8,.3,1) both}
.auth-message h1{max-width:710px;margin:0;font-size:clamp(3.25rem,4.5vw,4.55rem);line-height:1.015;letter-spacing:-.052em;text-wrap:balance;animation:loginEnter .58s .18s cubic-bezier(.22,.8,.3,1) both}
.auth-message>p:nth-of-type(2){max-width:610px;margin:22px 0 0;color:#d9e1dd;font-size:clamp(.98rem,1.18vw,1.12rem);line-height:1.68;animation:loginEnter .58s .28s cubic-bezier(.22,.8,.3,1) both}
.auth-message .auth-trust{margin-top:31px;animation:loginEnter .55s .36s cubic-bezier(.22,.8,.3,1) both}
.auth-panel{place-items:center;padding:clamp(38px,5vw,78px);background:radial-gradient(circle at 43% 47%,rgba(220,232,226,.9),transparent 31%),radial-gradient(circle at 93% 8%,rgba(216,198,159,.2),transparent 28%),linear-gradient(145deg,#fffdf8 10%,#f1ede4 58%,#e9e5dc 100%);box-shadow:inset 18px 0 42px -42px rgba(11,27,20,.7)}
.auth-panel:before{width:490px;height:490px;right:-270px;top:-268px;border-color:rgba(155,123,69,.25);box-shadow:0 0 0 56px rgba(155,123,69,.032),0 0 0 112px rgba(155,123,69,.023)}
.auth-panel:after{left:-5%;bottom:-4%;width:53%;height:43%;opacity:.3;background:linear-gradient(135deg,transparent 49.4%,rgba(155,123,69,.26) 50%,transparent 50.6%);background-size:34px 34px;mask-image:linear-gradient(135deg,black,transparent 75%)}
.auth-card{width:min(468px,100%);gap:21px;padding:clamp(36px,4.2vw,50px);border-color:rgba(196,187,172,.82);border-radius:19px;background:rgba(255,253,248,.91);box-shadow:0 34px 82px rgba(22,38,31,.16),0 4px 16px rgba(22,38,31,.06),inset 0 1px rgba(255,255,255,.96);animation:loginCardEnter .62s .12s cubic-bezier(.22,.8,.3,1) both}
.auth-card:before{top:47px;height:62px}.auth-card h2{font-size:clamp(2rem,3vw,2.3rem)}.auth-card .support{font-size:.94rem}.auth-card label{font-size:.84rem}.auth-card input{min-height:53px}.auth-submit{min-height:53px}
.auth-ambient{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none;opacity:0;animation:ambientReveal .7s .2s ease forwards}
.ambient-orb,.ambient-ring,.ambient-document,.ambient-points{position:absolute;will-change:transform;transition:transform .55s cubic-bezier(.2,.75,.25,1)}
.ambient-orb{right:8%;top:34%;width:180px;height:180px}.ambient-orb i{display:block;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(110,151,130,.26),rgba(110,151,130,.08) 48%,transparent 70%);filter:blur(1px);animation:ambientFloat 13s ease-in-out infinite}
.ambient-ring{border-radius:50%}.ambient-ring i{display:block;width:100%;height:100%;border:1px solid rgba(155,123,69,.2);border-radius:inherit;animation:ambientBreathe 15s ease-in-out infinite}.ambient-ring-one{right:-116px;top:4%;width:360px;height:360px}.ambient-ring-one i{box-shadow:0 0 0 42px rgba(155,123,69,.025),0 0 0 84px rgba(155,123,69,.018)}.ambient-ring-two{left:4%;bottom:8%;width:120px;height:120px}.ambient-ring-two i{border-color:rgba(49,92,76,.13);animation-delay:-6s}
.ambient-document{right:9%;bottom:10%;width:80px;height:104px}.ambient-document i{display:block;width:100%;height:100%;border:1px solid rgba(49,92,76,.13);border-radius:11px;background:linear-gradient(rgba(49,92,76,.09) 0 0) 17px 25px/46px 1px no-repeat,linear-gradient(rgba(49,92,76,.07) 0 0) 17px 42px/34px 1px no-repeat,rgba(255,255,255,.09);transform:rotate(7deg);animation:ambientFloat 17s -5s ease-in-out infinite}
.ambient-points{left:8%;top:13%;width:112px;height:88px}.ambient-points i{display:block;width:100%;height:100%;opacity:.45;background:radial-gradient(circle,rgba(155,123,69,.5) 1px,transparent 1.5px);background-size:18px 18px;animation:ambientDrift 18s linear infinite}
@keyframes loginEnter{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes loginCardEnter{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:none}}
@keyframes ambientReveal{to{opacity:1}}
@keyframes authImageDrift{0%{background-size:100% auto;background-position:50% 52%}100%{background-size:102.2% auto;background-position:49.4% 51.5%}}
@keyframes ambientFloat{0%,100%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(0,-9px,0) rotate(1.5deg)}}
@keyframes ambientBreathe{0%,100%{transform:scale(1);opacity:.72}50%{transform:scale(1.035);opacity:1}}
@keyframes ambientDrift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(7px,5px,0)}}

/* Application shell */
.app{min-height:100vh}.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:264px;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--forest),#101d18);color:#fff;box-shadow:10px 0 35px rgba(15,29,23,.08)}.sidebar-brand{height:82px;display:flex;align-items:center;gap:13px;padding:0 22px;border-bottom:1px solid rgba(255,255,255,.075)}.sidebar-brand strong,.sidebar-brand small{display:block}.sidebar-brand strong{font-size:1rem;letter-spacing:.15em}.sidebar-brand small{margin-top:2px;color:#9aaca3;font-size:.69rem;letter-spacing:.02em}.sidebar nav{display:grid;gap:5px;padding:25px 13px}.nav-button{position:relative;width:100%;min-height:46px;display:flex;align-items:center;gap:12px;padding:10px 14px;border:0;border-radius:9px;background:transparent;color:#bac8c1;text-align:left;font-size:.9rem;font-weight:650;transition:.16s}.nav-button:hover{background:rgba(220,232,226,.075);color:#fff}.nav-button.active{background:linear-gradient(90deg,rgba(220,232,226,.14),rgba(220,232,226,.065));color:#fff;box-shadow:inset 3px 0 var(--bronze)}.nav-button.active:after{content:"";position:absolute;right:14px;width:5px;height:5px;border-radius:50%;background:var(--bronze-soft)}.nav-icon{width:22px;height:22px;display:grid;place-items:center;color:#d7e0dc;font-size:1rem}.sidebar-foot{margin-top:auto;padding:18px 13px 20px;border-top:1px solid rgba(255,255,255,.08);color:#a6b4ad}.sidebar-foot .sidebar-context,.sidebar-foot>strong{display:block;padding-inline:14px}.sidebar-context{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.sidebar-foot>strong{margin:2px 0 10px;color:#e6ece9;font-size:.78rem;letter-spacing:.04em}
.topbar{position:fixed;z-index:20;inset:0 0 auto 264px;height:82px;display:flex;align-items:center;gap:17px;padding:0 32px;border-bottom:1px solid rgba(205,199,188,.86);background:rgba(255,253,248,.92);backdrop-filter:blur(16px)}.topbar-title{display:flex;min-width:0;flex-direction:column}.topbar-title strong{font-family:var(--font-display);font-size:1.08rem;letter-spacing:-.01em}.topbar-title small{max-width:420px;overflow:hidden;color:var(--muted);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:9px;margin-left:auto}.icon-btn{width:40px;height:40px;border:1px solid var(--border);border-radius:9px;background:var(--ivory);color:var(--ink)}#menu{display:none}.sync-pill{min-height:37px;display:flex;align-items:center;gap:9px;padding:7px 13px;border:1px solid var(--border);border-radius:99px;background:rgba(255,253,248,.94);color:#46554e;font-size:.77rem;font-weight:800;box-shadow:0 3px 12px rgba(23,35,31,.04)}.sync-pill i{width:8px;height:8px;border-radius:50%;background:#4d8b6f;box-shadow:0 0 0 4px rgba(77,139,111,.11)}.sync-pill.checking i{background:#9aa29d;box-shadow:0 0 0 4px rgba(154,162,157,.12);animation:pulse 1.2s infinite}.sync-pill.offline i{background:var(--bronze);box-shadow:0 0 0 4px rgba(155,123,69,.12)}.sync-pill.error i{background:var(--danger);box-shadow:0 0 0 4px rgba(164,79,79,.11)}.sync-pill.syncing i{animation:pulse .9s infinite}
.main{min-height:100vh;margin-left:264px;padding:110px 32px 48px}.view{max-width:1580px;margin:auto;animation:reveal .24s ease}

/* Content system */
.hero{position:relative;min-height:205px;display:flex;align-items:flex-end;margin-bottom:24px;padding:34px 38px;overflow:hidden;border:1px solid rgba(255,255,255,.22);border-radius:16px;background-color:var(--forest);background-position:center;background-size:cover;color:#fff;box-shadow:var(--shadow)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(95deg,rgba(15,32,25,.97),rgba(23,48,39,.72) 56%,rgba(23,35,31,.1))}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 72%,rgba(8,20,15,.25)),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,46px 100%}.hero-copy{position:relative;z-index:1;max-width:870px;padding-right:100px}.hero-symbol{position:absolute;right:0;bottom:0;width:76px;height:76px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(255,255,255,.09);color:#e0cba4;backdrop-filter:blur(7px)}.hero-symbol svg{width:39px;height:39px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.hero h1{margin:2px 0 9px;font-size:clamp(2.2rem,3.5vw,3.05rem);line-height:1.04;letter-spacing:-.042em}.hero p{max-width:720px;margin:0;color:#dce4e0;font-size:.97rem}.hero-dashboard{background-image:url('/assets/images/academic-workspace.webp'),linear-gradient(120deg,#315c4c,#17231f);background-position:center 46%}.hero-students{background-image:url('/assets/images/academic-workspace.webp');background-position:center 64%}.hero-teachers{background-image:url('/assets/images/academic-workspace.webp');background-position:right 35%}.hero-assessments{background-image:url('/assets/images/academic-workspace.webp');background-position:center 78%}.hero-administration{background-image:url('/assets/images/academic-workspace.webp');background-position:right 52%}.hero-portals{background-image:url('/assets/images/academic-workspace.webp');background-position:center 48%}.hero-results{background-image:url('/assets/images/academic-performance.webp');background-position:center 58%}.hero-performance{background-image:url('/assets/images/academic-performance.webp');background-position:right 42%}.hero-reports{background-image:url('/assets/images/academic-performance.webp');background-position:center 72%}.context-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:21px}.context-chips span{padding:6px 10px;border:1px solid rgba(255,255,255,.23);border-radius:7px;background:rgba(255,255,255,.1);font-size:.7rem;font-weight:800;letter-spacing:.025em;backdrop-filter:blur(6px)}
.grid{display:grid;gap:17px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:24px}.card,.dashboard-panel{border:1px solid var(--border);background:rgba(255,253,248,.96);box-shadow:var(--shadow-sm)}.card{padding:23px;border-radius:12px}.kpi{position:relative;min-height:126px;overflow:hidden}.kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--bronze),#c9b17f)}.kpi:after{content:"";position:absolute;right:-26px;top:-28px;width:82px;height:82px;border:1px solid rgba(155,123,69,.1);border-radius:50%}.kpi span{display:block;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.03em}.kpi strong{display:block;margin-top:8px;color:var(--green);font-size:clamp(1.65rem,2.4vw,2.15rem);line-height:1.08;letter-spacing:-.035em}.kpi small{display:block;margin-top:7px;color:#828b86;font-size:.72rem}
.section-head,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}.section-head h2{margin:0;font-size:1.28rem;letter-spacing:-.02em}.section-head p:not(.eyebrow){margin:3px 0 0;color:var(--muted);font-size:.82rem}.toolbar{position:sticky;z-index:5;top:92px;padding:11px;border:1px solid var(--border);border-radius:10px;background:rgba(244,241,234,.95);backdrop-filter:blur(9px)}.toolbar form{display:flex;flex-wrap:wrap;gap:9px}.table-wrap{max-width:100%;overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--ivory)}table{width:100%;border-collapse:collapse}th,td{padding:12px 14px;border-bottom:1px solid #e8e3da;text-align:left;white-space:nowrap}th{position:sticky;z-index:2;top:0;background:#ece9e1;color:#47564e;font-size:.68rem;letter-spacing:.075em;text-transform:uppercase}td{font-size:.86rem}tbody tr:hover{background:#faf7f0}.badge{display:inline-flex;padding:4px 9px;border-radius:99px;background:var(--sage);color:#315c4c;font-size:.69rem;font-weight:800}.empty{min-height:210px;display:grid;place-items:center;align-content:center;color:var(--muted);text-align:center}.empty:before{content:"";width:50px;height:60px;margin-bottom:14px;border:2px solid #789487;border-radius:6px;background:linear-gradient(#dce8e2 0 0) 9px 14px/28px 2px no-repeat,linear-gradient(#dce8e2 0 0) 9px 24px/28px 2px no-repeat,var(--ivory);box-shadow:7px 7px #eee4d1}.notice{margin-bottom:14px;padding:12px 15px;border-left:3px solid var(--bronze);background:#eee4d1}

/* Dashboard */
.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.72fr) minmax(300px,.78fr);gap:20px;align-items:start}.dashboard-primary,.dashboard-secondary{display:grid;gap:20px}.dashboard-panel{padding:25px;border-radius:13px}.progress-label{padding:5px 10px;border-radius:99px;background:var(--sage);color:var(--green);font-size:.72rem;font-weight:850}.setup-list{display:grid}.setup-step{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 5px;border:0;border-top:1px solid #e8e3da;background:transparent;color:var(--ink);text-align:left}.setup-step:first-child{border-top:0}.setup-step:hover{background:linear-gradient(90deg,rgba(220,232,226,.32),transparent)}.step-number{width:32px;height:32px;display:grid;place-items:center;border:1px solid #cfc8bc;border-radius:9px;background:#f7f4ed;color:var(--green);font-size:.75rem;font-weight:850}.setup-step.complete .step-number{border-color:#b9d0c4;background:var(--sage)}.setup-step strong,.setup-step small{display:block}.setup-step strong{font-size:.88rem}.setup-step small{margin-top:2px;color:var(--muted);font-size:.75rem}.step-action{color:var(--green);font-size:.72rem;font-weight:800}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-action{display:grid;grid-template-columns:35px 1fr;gap:0 10px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:10px;background:#fbf9f4;color:var(--ink);text-align:left}.quick-action:hover{border-color:#b9c9c0;background:#f3f7f4;transform:translateY(-1px)}.quick-action>span{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:var(--forest);color:#e7d6b4;font-size:.7rem;font-weight:850}.quick-action strong{font-size:.78rem}.quick-action small{color:var(--muted);font-size:.65rem}.progress-panel{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#fffdf8,#f2f6f3)}.progress-panel h2{margin:0;font-size:1.14rem}.progress-panel p:not(.eyebrow){margin:5px 0 0;color:var(--muted);font-size:.77rem}.progress-ring{--progress:0;width:84px;height:84px;display:grid;flex:0 0 auto;place-items:center;border-radius:50%;background:conic-gradient(var(--green) calc(var(--progress)*1%),#e2e5df 0);position:relative}.progress-ring:before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--ivory)}.progress-ring span{position:relative;color:var(--green);font-size:.94rem;font-weight:850}.activity-list{display:grid}.activity-row{display:grid;grid-template-columns:12px 1fr;gap:12px;padding:12px 3px;border-top:1px solid #e8e3da}.activity-row:first-child{border-top:0}.activity-mark{width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--bronze);box-shadow:0 0 0 4px rgba(155,123,69,.11)}.activity-row strong,.activity-row small{display:block}.activity-row strong{font-size:.84rem}.activity-row small{margin-top:2px;color:var(--muted);font-size:.72rem}.refined-empty{min-height:150px;display:grid;place-items:center;align-content:center;text-align:center;color:var(--muted)}.refined-empty .empty-icon{width:42px;height:42px;display:grid;place-items:center;margin-bottom:10px;border:1px solid #bfd0c7;border-radius:50%;background:var(--sage);color:var(--green);font-size:1.2rem}.refined-empty strong{color:var(--ink)}.refined-empty p{max-width:380px;margin:5px 0 0;font-size:.8rem}

.dialog{width:min(620px,calc(100% - 28px));padding:27px;border:1px solid var(--border);border-radius:13px;background:var(--ivory);box-shadow:var(--shadow)}.dialog::backdrop{background:rgba(11,22,17,.68);backdrop-filter:blur(4px)}.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog h2{margin:0}.dialog-actions{justify-content:flex-end;margin-top:20px;padding-top:17px;border-top:1px solid var(--border)}.sync-list{display:grid;gap:8px;margin:18px 0}.sync-row{display:flex;justify-content:space-between;padding:11px;border:1px solid var(--border);border-radius:8px}.toast{position:fixed;z-index:100;right:20px;bottom:20px;max-width:430px;padding:13px 16px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:var(--forest);color:#fff;box-shadow:var(--shadow)}.offline-fallback{display:grid;place-items:center;padding:24px}.offline-fallback main{max-width:520px;text-align:center}.offline-fallback .monogram{margin:auto;background:var(--forest)}
@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pulse{50%{opacity:.35;transform:scale(.76)}}

@media(max-width:1180px){.dashboard-layout{grid-template-columns:minmax(0,1.45fr) minmax(290px,.8fr)}.quick-grid{grid-template-columns:1fr}.auth-view{grid-template-columns:1.05fr .95fr}.auth-brand{left:45px;right:45px}.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.auth-view{grid-template-columns:1fr}.auth-visual{min-height:300px}.auth-brand{left:30px;right:30px;bottom:28px}.auth-signature{margin-bottom:28px}.auth-brand h1{font-size:2.5rem}.auth-brand>p:nth-of-type(2),.auth-trust{display:none}.auth-panel{padding:34px 20px}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.topbar{left:0;padding:0 18px}.main{margin-left:0;padding:100px 18px 34px}#menu{display:block}.hero{min-height:170px;padding:26px}.toolbar{top:91px}.topbar #install{display:none!important}.dashboard-layout{grid-template-columns:1fr}.dashboard-secondary{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){body{font-size:14px}.auth-visual{min-height:245px}.auth-signature{margin-bottom:18px}.auth-signature small{display:none}.auth-brand>p:nth-of-type(1){font-size:.65rem}.auth-brand h1{font-size:2rem}.auth-panel{padding:24px 14px 32px;place-items:start center}.auth-card{padding:28px 22px;border-radius:14px}.auth-card h2{font-size:1.75rem}.kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.kpi{min-height:108px;padding:17px}.kpi strong{font-size:1.55rem}.hero{min-height:150px;padding:21px}.hero h1{font-size:1.75rem}.hero p{display:none}.hero-copy{padding-right:62px}.hero-symbol{width:52px;height:52px}.hero-symbol svg{width:27px;height:27px}.context-chips{margin-top:15px}.context-chips span{font-size:.63rem}.topbar{height:74px}.topbar-title small{max-width:180px}.topbar-actions{gap:3px}.sync-pill{padding:7px 9px}.sync-pill span{max-width:102px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{padding:90px 12px 28px}.dashboard-panel{padding:19px}.dashboard-secondary{grid-template-columns:1fr}.setup-step{grid-template-columns:34px minmax(0,1fr)}.step-action{display:none}.setup-step small{line-height:1.4}.quick-grid{grid-template-columns:1fr 1fr}.toolbar{display:block}.toolbar form{display:grid;grid-template-columns:1fr}.section-head{align-items:flex-start}.dialog-actions{flex-wrap:wrap}}
@media(max-width:390px){.kpi-grid,.quick-grid{grid-template-columns:1fr}.auth-visual{min-height:215px}.auth-brand{left:22px;right:22px}.auth-brand h1{font-size:1.7rem}.progress-panel{align-items:flex-start}.progress-ring{width:70px;height:70px}}
@media(max-width:900px){.auth-brand{inset:26px 30px 24px;grid-template-rows:auto 1fr}.auth-signature{gap:12px}.auth-signature .monogram{width:46px;height:46px;font-size:1.45rem}.auth-signature strong{font-size:1rem}.auth-signature small{font-size:.74rem}.auth-message{align-self:end;margin:0;padding:0}.auth-message h1{font-size:2.5rem}.auth-message>p:nth-of-type(2),.auth-message .auth-trust{display:none}.auth-ambient{opacity:.55}.ambient-document,.ambient-points,.ambient-ring-two{display:none}.ambient-orb{right:2%;top:35%}}
@media(max-width:620px){.auth-brand{inset:20px 22px 20px}.auth-signature .monogram{width:41px;height:41px;font-size:1.3rem}.auth-signature strong{font-size:.92rem}.auth-signature small{display:none}.auth-message>p:first-child{margin-bottom:6px;font-size:.62rem}.auth-message h1{font-size:1.85rem;line-height:1.04}.auth-panel{min-height:calc(100vh - 245px);padding:25px 14px 34px}.auth-card{align-self:center;padding:29px 23px}.auth-ambient{opacity:.4}.ambient-ring-one{right:-180px;top:-80px}.ambient-orb{width:130px;height:130px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.auth-visual{animation:none}.auth-ambient{opacity:.65}.ambient-orb,.ambient-ring,.ambient-document,.ambient-points{transform:none!important}}
