:root{--bg:#14532d;--bg2:#166534;--card:#ffffff;--accent:#16a34a;--accent-dark:#15803d;--ok:#16a34a;--warn:#f59e0b;--bad:#ef4444;--txt:#f0fdf4;--ink:#14532d;--side:#0a4a24;--side2:#0d5c2d;--line:#dcfce7}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f0fdf4;color:#14532d}
/* Landing fills exactly one screen: nav + hero + footer = 100vh */
.landing-body{display:flex;flex-direction:column;min-height:100vh}
.landing-main{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}
/* Dashboard shell with sidebar */
.dash{display:flex;min-height:100vh}.sidebar{width:250px;flex:none;background:linear-gradient(180deg,var(--side),var(--side2));color:#e7f7eb;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.side-brand{display:flex;align-items:center;gap:10px;padding:16px;border-bottom:1px solid rgba(255,255,255,.12)}.side-brand img{width:40px;height:40px;border-radius:10px;background:#fff;padding:2px}.side-brand strong{display:block;font-size:15px}.side-brand small{font-size:11.5px;opacity:.85}.side-nav{display:flex;flex-direction:column;gap:2px;padding:12px;overflow:auto}.side-nav a{color:#d7f0dd;text-decoration:none;padding:10px 12px;border-radius:10px;font-weight:600;font-size:14.5px;display:flex;gap:10px;align-items:center}.side-nav a:hover{background:rgba(255,255,255,.1);color:#fff}.side-nav a.on{background:#fff;color:#0a5c2c}.side-foot{margin-top:auto;padding:12px;border-top:1px solid rgba(255,255,255,.12);font-size:12.5px}.dash-main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{background:linear-gradient(90deg,#14532d,#16a34a);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:12px 20px;position:sticky;top:0;z-index:10;box-shadow:0 2px 8px rgba(20,83,45,.3)}
.topbar a{color:#fff;text-decoration:none;margin:0 8px;font-weight:600}.topbar a:hover{color:#bbf7d0}
.brand{font-weight:800;font-size:18px;display:flex;align-items:center;gap:10px}.brand img{width:38px;height:38px;border-radius:10px;background:#fff;padding:2px}
.userpill{background:rgba(255,255,255,.2);padding:4px 10px;border-radius:20px;font-size:13px;color:#fff}
.container{max-width:1150px;margin:20px auto;padding:0 16px}
.card{background:#fff;border-radius:12px;padding:18px;box-shadow:0 2px 10px rgba(20,83,45,.12);margin-bottom:16px;border-top:4px solid #16a34a}
.grid{display:grid;gap:16px}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stat{font-size:28px;font-weight:800;color:#14532d}.stat-label{color:#15803d;font-size:13px;text-transform:uppercase;font-weight:700}
.stat-ok{border-left:5px solid #16a34a}.stat-warn{border-left:5px solid var(--warn)}.stat-bad{border-left:5px solid var(--bad)}.stat-info{border-left:5px solid #16a34a}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px;border-bottom:1px solid #dcfce7;text-align:left}th{background:#f0fdf4;color:#14532d}
.badge{padding:3px 9px;border-radius:20px;font-size:12px;font-weight:700}.b-green{background:#dcfce7;color:#166534}.b-red{background:#fee2e2;color:#991b1b}.b-blue{background:#dcfce7;color:#14532d}.b-amber{background:#fef3c7;color:#92400e}.b-gray{background:#e2e8f0;color:#475569}
.btn{background:#16a34a;color:#fff;border:0;padding:9px 16px;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-block;font-weight:700}.btn:hover{background:#15803d}.btn.small{padding:5px 10px;font-size:13px}.btn.danger{background:var(--bad)}.btn.ok{background:#16a34a}
input,select,textarea{width:100%;padding:10px;border:1px solid #86efac;border-radius:8px;margin:6px 0}input:focus,select:focus{outline:2px solid #16a34a;border-color:#16a34a}form.inline{display:flex;gap:8px}form.inline input{flex:1}
.auth-wrap{max-width:440px;margin:40px auto}.auth-wrap .card{text-align:left}.logo-big{display:block;margin:0 auto 10px;width:72px;height:72px}
.auth-premium{max-width:380px;margin:0 auto;padding:34px 18px 60px}
.reg-card{justify-self:center !important;margin:0 auto}
.flash{background:#fef9c3;border:1px solid #fde047;padding:10px;border-radius:8px;margin-bottom:12px;color:#713f12}
.captcha-box{background:#f0fdf4;border:2px dashed #16a34a;border-radius:8px;padding:10px;margin:8px 0;font-size:20px;font-weight:800;text-align:center;letter-spacing:1px;color:#14532d}
.live-dot{height:10px;width:10px;border-radius:50%;background:#16a34a;display:inline-block;animation:pulse 1.5s infinite}@keyframes pulse{50%{opacity:.3}}
.footer{text-align:center;color:#15803d;padding:14px 12px 16px;font-size:13px}
.foot-logo{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:4px}
.foot-logo img{width:22px;height:26px;object-fit:contain}
.foot-logo b{font-size:13.5px;font-weight:700}
/* Admin profile */
.profile-top{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.profile-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid #dcfce7;background:#ecfdf3;flex:none}
.avatar-sm{width:24px;height:24px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:6px}
.prof-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:800px){.prof-grid{grid-template-columns:1fr}}
.file-btn{position:relative;overflow:hidden;display:inline-block}
.file-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.searchbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.searchbar input,.searchbar select{flex:1;min-width:140px}
.report-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.report-filters input,.report-filters select{width:auto;min-width:150px}
a{color:#15803d}
/* ===== Landing (homepage) — matches reference design ===== */
.landing-body{margin:0;background:#f3faf4;font-family:Inter,Segoe UI,Arial,sans-serif;color:#0f3d22}
.landing-nav{position:relative !important;top:auto;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:88px;padding:10px 44px 10px 52px;background:linear-gradient(90deg,#054a22 0%,#0a6b2e 60%,#1cae4e 100%);box-shadow:0 2px 10px rgba(4,71,31,.35);margin:0}
.landing-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.landing-brand img{width:46px;height:46px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}
.brand-lockup{width:auto !important;height:52px !important;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}
.brand-fallback{display:none}
.brand-fallback strong{display:block;font-size:15px;line-height:1.05;font-weight:800;letter-spacing:-.2px}
.brand-fallback small{display:block;font-size:11.5px;opacity:.92;font-weight:400}
.landing-brand strong{display:block;font-size:17px;line-height:1.05}
.landing-brand small{display:block;font-size:13px;opacity:.92;font-weight:400}
.landing-actions{display:flex;gap:12px;margin-left:auto}
.pill-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 22px;border-radius:10px;font-weight:700;font-size:14.5px;text-decoration:none;border:1.5px solid rgba(255,255,255,.75)}
.pill-btn.ghost{color:#fff;background:rgba(3,60,25,.35)}
.pill-btn.ghost:hover{background:rgba(255,255,255,.2)}
.pill-btn.solid{color:#fff;background:#22c55e;border-color:#22c55e}
.pill-btn.solid:hover{background:#16a34a}
.hero{display:flex;position:relative;overflow:visible;min-height:75vh;background:url('campus.jpg') 50%/cover no-repeat;padding-bottom:70px;filter: hue-rotate(90deg) brightness(1.1);-webkit-filter: hue-rotate(90deg) brightness(1.1)}
.hero-photo-fallback{display:none}
.hero::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.08) 100%)}
.hero::after{content:"";position:absolute;left:-5%;right:-5%;bottom:-2px;height:40px;z-index:1;pointer-events:none;background:radial-gradient(60% 130% at 50% 130%,rgba(255,255,255,.4),transparent 70%),radial-gradient(75% 150% at 50% 150%,rgba(220,240,224,.3),transparent 70%)}
.hero-oval{position:absolute;left:-180px;top:-90px;width:760px;height:760px;background:radial-gradient(closest-side,rgba(255,255,255,.5),transparent);z-index:0}
.hero-inner{position:relative;z-index:2;flex:1 1 auto;width:100%;max-width:1280px;margin:0 auto;padding:32px 40px 30px;display:grid;grid-template-columns:1.02fr .98fr;gap:36px;align-items:center;min-height:0}
.hero-shield{width:112px;height:auto;margin:2px 0 6px}
.hero-left h1{margin:0 0 10px;font-size:48px;line-height:1.05;letter-spacing:-.8px;font-weight:800}
.t-dark{color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.8)};.t-green{color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.8)}
.hero-sub{font-size:19px;font-weight:700;color:#10472a;margin:0 0 10px;line-height:1.4}
.hero-desc{font-size:14px;color:#4a5d52;max-width:460px;line-height:1.6;margin:0 0 18px}
.hero-feats{display:grid;grid-template-columns:repeat(4,1fr);max-width:620px;background:rgba(255,255,255,.78);border-radius:18px;padding:12px 6px}
.feat{text-align:center;padding:6px 10px;border-left:1px solid #d7e9db}
.feat:first-child{border-left:0}
.feat-ico{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:#e7f7ec;color:#15803d;margin-bottom:8px;box-shadow:0 2px 6px rgba(21,146,74,.15)}
.feat strong{display:block;font-size:13px;color:#0c3a20;margin-bottom:4px}
.feat small{display:block;font-size:11.5px;color:#5b6f62;line-height:1.45}
.login-card{position:relative;z-index:3;background:rgba(255,255,255,.95);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:16px;padding:14px 18px 12px;box-shadow:0 16px 40px rgba(6,60,30,.18),0 2px 0 rgba(255,255,255,.85) inset,0 0 0 1px rgba(21,146,74,.1);max-width:360px;width:100%;justify-self:center;margin-top:0;margin-bottom:8px;overflow:hidden}
.login-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#054a22,#16a34a 40%,#4ade80 70%,#054a22)}
.login-card::after{content:"";position:absolute;top:-70px;right:-70px;width:200px;height:200px;background:radial-gradient(closest-side,rgba(34,197,94,.14),transparent);pointer-events:none}
.login-head{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.login-ico{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#22c55e,#054a22);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 8px 20px rgba(10,92,44,.35),inset 0 0 0 1.5px rgba(255,255,255,.3)}
.login-head h2{margin:0;font-size:22px;color:#0a3d1f;letter-spacing:-.5px;font-weight:800}
.login-head small{color:#7d9384;font-size:12.5px}
.login-sub-badge{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:#0d7a38;background:#e7f7ec;border:1px solid #bbe7c8;padding:3px 9px;border-radius:20px;margin:6px 0 2px;letter-spacing:.3px;text-transform:uppercase}
.login-sub-badge i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.2);animation:pulse 1.8s infinite}
.login-card .flash{border-radius:12px;font-size:13.5px;padding:11px 14px;border:0}
.login-card .flash.err,.login-card .flash{background:#fef2f2;color:#991b1b;box-shadow:inset 3px 0 0 #ef4444}
.login-card .flash.ok{background:#ecfdf5;color:#065f46;box-shadow:inset 3px 0 0 #22c55e}
.login-card form{margin:0;position:relative;z-index:1}
.fld-label{display:block;font-size:12px;font-weight:700;color:#0f3d22;margin:8px 0 2px;letter-spacing:.2px}
.inp{position:relative;margin:5px 0 3px}
.inp .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#5f7a67;display:flex;transition:color .2s}
.inp input{width:100%;padding:11px 12px 11px 40px;border:1.5px solid #dcebe0;border-radius:11px;font-size:14px;color:#0f3d22;background:#fbfefb;box-shadow:0 1px 2px rgba(16,71,42,.05);transition:border-color .2s,box-shadow .2s,background .2s}
.inp input::placeholder{color:#9db3a4}
.inp input:hover{border-color:#b7dfc2}
.inp input:focus{outline:none;border-color:#16a34a;background:#fff;box-shadow:0 0 0 4px rgba(34,197,94,.14)}
.inp:focus-within .ic{color:#16a34a}
.eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:#8aa096;cursor:pointer;padding:6px;display:flex;border-radius:8px}
.eye:hover{color:#15803d;background:#ecfdf3}
.cap-label{display:block;font-size:12px;font-weight:700;color:#0f3d22;margin:8px 0 5px;letter-spacing:.2px}
.captcha-box{background:linear-gradient(180deg,#f2fbf5,#e6f6ec);border:1.5px dashed #4cb878;border-radius:11px;color:#0d7a38;font-size:20px;font-weight:800;letter-spacing:1.5px;padding:10px;margin:0 0 2px;display:flex;align-items:center;justify-content:center;gap:10px}
.cap-ico{display:inline-flex;color:#12934a}
.btn-login{position:relative;width:100%;margin-top:11px;background:linear-gradient(90deg,#0d7a38,#12934a 55%,#0d7a38);background-size:180% 100%;color:#fff;border:0;border-radius:11px;padding:12px;font-size:15px;font-weight:800;letter-spacing:.2px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(10,92,44,.35);transition:background-position .4s,transform .12s,box-shadow .2s;overflow:hidden}
.btn-login::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg)}
.btn-login:hover{background-position:100% 0;box-shadow:0 12px 28px rgba(10,92,44,.42)}
.btn-login:hover::after{animation:shine 1s}
@keyframes shine{to{left:130%}}
.btn-login:active{transform:translateY(1px)}
.btn-login.loading{pointer-events:none;opacity:.85}
.btn-login.loading span::after{content:"..."}
.divider{display:flex;align-items:center;gap:10px;color:#8aa096;font-size:12px;margin:10px 0 8px}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:#e2ece4}
.btn-reg{display:flex;align-items:center;justify-content:center;gap:8px;border:1.5px solid #15924a;color:#0d7a38;background:#fff;border-radius:11px;padding:10px;font-weight:800;text-decoration:none;font-size:14px;transition:background .2s,transform .12s}
.btn-reg:hover{background:#ecfdf3;transform:translateY(-1px)}
.login-trust{display:flex;justify-content:center;gap:14px;margin-top:10px;padding-top:8px;border-top:1px solid #e6f0e8;position:relative;z-index:1}
.login-trust span{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#7d9384}
.landing-footer{position:relative;margin-top:0;z-index:3;background:#fff}
.foot-wave{height:90px;background:radial-gradient(70% 160% at 50% 160%,#0a5c2c 0 60%,#d9edde 60.5% 68%,#f2faf4 68.5% 76%,#fff 76.5% 100%)}
.foot-band{background:linear-gradient(90deg,#054a22,#0a6b2e 60%,#0d7a38);color:#e9f7ec;text-align:center;font-size:13.5px;padding:20px 12px 22px}
.landing-main .flash{max-width:1240px;margin:14px auto 0}
.install-wrap{min-height:calc(100vh - 160px);display:flex;align-items:center;justify-content:center;padding:30px 16px;background:linear-gradient(180deg,#f3faf4,#e2f2e6)}
.install-card{background:#fff;border-radius:20px;box-shadow:0 14px 40px rgba(6,60,30,.16);max-width:520px;width:100%;padding:32px 30px;text-align:center}
.install-card h1{color:#0a5c2c;margin:8px 0 12px}
.install-ok{font-size:44px}
.install-err{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:10px;padding:12px;text-align:left;white-space:pre-wrap;font-size:13px}
@media(max-width:1020px){.hero{height:auto;min-height:0}.hero-inner{grid-template-columns:1fr;height:auto;overflow:visible;padding-bottom:30px}.login-card{justify-self:start;max-width:520px}}
@media(max-width:720px){.landing-nav{height:auto;min-height:72px;flex-wrap:nowrap;padding:10px 14px}.landing-brand img.brand-lockup{max-width:190px;height:46px}.landing-actions{display:flex;margin-left:auto;gap:8px}.landing-actions .pill-btn{padding:8px 12px;font-size:13px}.hero-left h1{font-size:34px}.t-green{font-size:26px}.hero-feats{grid-template-columns:repeat(2,1fr);gap:10px}.feat:nth-child(3){border-left:0}.hero-inner{padding:26px 18px 30px;height:auto}}


/* Login page refresh: campus photo, soft white wash, responsive two-column layout. */
.landing-body{background:#f4faf5;color:#123b25}
.landing-nav{background:linear-gradient(90deg,#054a22 0%,#0a6b2e 60%,#1cae4e 100%)!important;box-shadow:0 2px 10px rgba(4,71,31,.35);padding-inline:clamp(18px,4vw,64px)}
.landing-brand{color:#fff}
.landing-brand small{color:rgba(255,255,255,.92)}
.landing-actions .pill-btn.ghost{color:#0d6634;background:#eff8f1;border-color:#cce6d2}
.landing-actions .pill-btn.solid{background:#108542;border-color:#108542}
.hero{display:flex;align-items:stretch;position:relative;isolation:isolate;overflow:hidden;min-height:min(790px,calc(100vh - 88px));height:auto;padding:0;background:#eaf5ed url('modern%20university%20campus%20building%20green%20law') center center/cover no-repeat;filter:none;-webkit-filter:none}
.hero::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(255,255,255,.70) 0%,rgba(255,255,255,.52) 44%,rgba(255,255,255,.30) 100%)}
.hero::after{content:"";position:absolute;z-index:1;left:-5%;right:-5%;bottom:-54px;height:110px;border-radius:50% 50% 0 0/48% 48% 0 0;background:#f4faf5;pointer-events:none}
.hero-inner{width:100%;max-width:1440px;min-height:inherit;height:auto;margin:auto;padding:54px clamp(24px,5vw,84px) 82px;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,480px);gap:clamp(32px,6vw,96px);align-items:center;overflow:visible}
.hero-left{max-width:720px}
.hero-kicker{font-size:12px;letter-spacing:2px;font-weight:800;color:#138143;margin:0 0 14px}
.hero-left h1{margin:0 0 14px;font-size:clamp(42px,5vw,68px);line-height:1.04;letter-spacing:-1.8px;font-weight:850}
.t-dark{color:#083e22;text-shadow:none}
.t-green{color:#12934b;text-shadow:none}
.hero-sub{font-size:clamp(18px,2vw,23px);font-weight:700;color:#164a2c;margin:0 0 24px;line-height:1.45}
.hero-feats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:760px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.8);border-radius:20px;padding:16px 8px;box-shadow:0 14px 36px rgba(20,83,45,.12);backdrop-filter:blur(8px)}
.feat{padding:8px 12px;border-left:1px solid #d7e9db}
.feat-ico{width:58px;height:58px;border-radius:18px;background:#e7f7ec;color:#138143}
.feat strong{font-size:13px;line-height:1.35}
.feat small{font-size:11.5px}
.login-card{justify-self:end;align-self:center;width:100%;max-width:420px;padding:20px 24px 16px;border-radius:12px;background:#fff;box-shadow:0 10px 40px rgba(10,55,29,.15);border:1px solid #e2e8f0;overflow:visible}
.login-card::before{height:5px;border-radius:24px 24px 0 0}
.login-head{margin-bottom:8px}
.login-ico{width:54px;height:54px}
.login-head h2{font-size:22px}
.login-head small{font-size:12px}
.login-sub-badge{font-size:11px;margin:8px 0 6px}
.fld-label,.cap-label{font-size:12px;margin-top:8px}
.inp input{padding-top:11px;padding-bottom:11px;background:#f9fcfa}
.captcha-box{padding:10px;margin-bottom:3px}
.btn-login{padding:12px;margin-top:12px;font-size:14px}
.btn-reg{padding:12px}
.login-trust{justify-content:center;flex-wrap:wrap;gap:16px;margin-top:12px}
.login-trust span{font-size:11.5px}
.demo-box{margin-top:15px;padding:13px 14px;background:#f2faf4;border:1px solid #d9eddf;border-radius:14px;position:relative;z-index:1}
.demo-heading{display:flex;justify-content:space-between;align-items:center;color:#154b2b;font-size:13px;font-weight:800;margin-bottom:9px}
.demo-heading small{color:#588067;font-weight:600;font-size:11px}
.demo-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.demo-btn{border:1px solid #158343;background:#fff;color:#116b37;border-radius:9px;padding:9px 10px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:background .2s,transform .2s}
.demo-btn:hover{background:#e3f5e9;transform:translateY(-1px)}
.demo-btn.admin-demo{background:#118343;color:#fff}
.demo-btn.admin-demo:hover{background:#0c6d35}
.demo-box p{font-size:11px;color:#587067;line-height:1.6;margin:9px 0 4px}
.demo-box code{color:#0c6d35;font-weight:700;font-family:ui-monospace,Consolas,monospace}
.demo-note{display:block;color:#74877b;font-size:10px;line-height:1.4}
.landing-footer{background:#f4faf5}
.footer{background:#f4faf5;padding-top:8px}
@media(max-width:1020px){.hero{min-height:0}.hero-inner{grid-template-columns:minmax(0,1fr) minmax(340px,440px);gap:28px;padding:42px 28px 76px}.hero-left h1{font-size:clamp(38px,5vw,54px)}.hero-feats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.feat:nth-child(3){border-left:0}.login-card{justify-self:end;max-width:440px;padding:24px}}
@media(max-width:760px){.landing-nav{min-height:70px;padding:9px 14px}.landing-brand img.brand-lockup{max-width:190px;height:44px!important}.landing-actions{gap:6px}.landing-actions .pill-btn{padding:8px 10px;font-size:12px}.hero{min-height:0;background-position:58% center}.hero::before{background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.56))}.hero-inner{display:flex;flex-direction:column;align-items:stretch;gap:24px;padding:34px 18px 78px}.hero-left h1{font-size:clamp(36px,9vw,52px);letter-spacing:-1.2px}.hero-sub{font-size:18px}.desktop-break{display:none}.hero-feats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;padding:10px 5px}.feat{padding:8px 9px}.feat:nth-child(odd){border-left:0}.login-card{align-self:center;justify-self:center;max-width:520px;padding:24px 20px 18px}.hero::after{height:76px;bottom:-42px}}
@media(max-width:400px){.landing-brand img.brand-lockup{max-width:145px}.landing-actions .pill-btn{padding:7px 8px}.hero-inner{padding-inline:13px}.login-card{padding-inline:16px}.login-head h2{font-size:23px}}

/* Responsive dashboard navigation and content */
.menu-toggle{display:none}
.sidebar-backdrop{display:none}
@media(max-width:1100px){
  .g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .container table{display:block;max-width:100%;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
}
@media(max-width:900px){
  .dash{display:block;min-height:100vh}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(290px,86vw);height:100vh;height:100dvh;z-index:30;transform:translateX(-105%);transition:transform .22s ease;box-shadow:8px 0 28px rgba(0,0,0,.2)}
  .dash.nav-open .sidebar{transform:translateX(0)}
  .dash.nav-open .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:29;width:100%;height:100%;padding:0;border:0;background:rgba(7,25,14,.52)}
  .dash-main{width:100%;min-width:0}
  .menu-toggle{width:40px;height:40px;flex:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.48);border-radius:9px;background:rgba(255,255,255,.12);cursor:pointer}
  .menu-toggle span{width:18px;height:2px;border-radius:2px;background:#fff}
  .topbar{flex-direction:row;gap:12px;padding:10px 14px}
  .topbar .brand{min-width:0;flex:1;font-size:clamp(15px,2.4vw,18px)}
  .topbar .brand img{width:34px;height:34px;flex:none}
  .topbar .brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar .navlinks{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}
  .topbar a{margin:0}
  .container{width:100%;max-width:none;margin:16px auto;padding:0 14px}
  .container table{display:block;max-width:100%;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid{gap:12px}
}
@media(max-width:600px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  .dash,.dash-main,.container,.container .card,.container .grid{min-width:0}
  .topbar{gap:8px;padding:9px 10px}
  .topbar .brand{gap:7px}
  .topbar .brand img{width:30px;height:30px}
  .topbar .brand span{font-size:14px}
  .topbar .navlinks .userpill{display:none}
  .topbar .navlinks .btn{padding:7px 10px}
  .container{margin:12px auto;padding:0 10px}
  .card{padding:14px;margin-bottom:12px}
  .grid{gap:10px}
  .g4,.g3,.g2{grid-template-columns:minmax(0,1fr)}
  .stat{font-size:25px}
  .stat-label{font-size:12px}
  .container table{display:block;max-width:100%;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .container th,.container td{padding:8px}
  .container canvas{max-width:100%;height:auto}
  form.inline{flex-wrap:wrap}
  form.inline input{min-width:0}
  .searchbar input,.searchbar select,.report-filters input,.report-filters select{min-width:0}
}
@media(prefers-reduced-motion:reduce){
  .sidebar{transition:none}
}
