:root{color-scheme:light;--bg:#f3f7f4;--paper:#fff;--ink:#18382e;--muted:#60736b;--line:#dce8e0;--brand:#17684d;--brand-2:#0e4c39;--soft:#e5f3ec;--danger:#b52a2a;--shadow:0 14px 36px #154b3512;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100vh;display:grid;grid-template-columns:252px 1fr}.sidebar{background:var(--brand-2);color:#ecf8f1;padding:24px 16px;display:flex;flex-direction:column;gap:26px}.logo{display:flex;gap:12px;align-items:center;padding:4px 8px}.logo-mark,.brand-mark{display:grid;place-items:center;background:#a9e3c4;color:var(--brand-2);font-weight:800;border-radius:13px;width:42px;height:42px}.logo h1{font-size:16px;line-height:1.3;margin:0}.logo small{display:block;color:#b8d7c7;font-size:11px;margin-top:2px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:#c5e0d3;text-align:left;border-radius:10px;padding:11px 12px;display:flex;gap:10px;align-items:center}.nav button:hover,.nav button.active{background:#ffffff18;color:#fff}.nav button.active{box-shadow:inset 3px 0 #a9e3c4}.side-foot{margin-top:auto;color:#afd0c0;font-size:12px;padding:8px}.main{min-width:0}.topbar{height:72px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 32px;position:sticky;top:0;z-index:2}.crumb{font-weight:650}.user-menu{display:flex;gap:12px;align-items:center}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--soft);color:var(--brand);font-weight:750}.content{max-width:1200px;margin:auto;padding:32px}.eyebrow{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--brand);font-weight:750}.title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:24px}.title-row h2{font-size:28px;line-height:1.2;margin:5px 0}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.stat .num{font-size:30px;font-weight:750;margin:5px 0}.stat .label{color:var(--muted);font-size:13px}.stat .hint{font-size:12px;color:var(--brand)}.layout-2{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin-top:18px}.card h3{font-size:16px;margin:0 0 12px}.actions{display:flex;gap:9px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:10px 14px;border-radius:10px;min-height:42px;font-weight:650}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.ghost{background:transparent}.btn.danger{color:var(--danger);border-color:#eccaca}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #68c599;outline-offset:2px}.list{display:grid;gap:10px}.list-row{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid var(--line);padding:11px 0}.list-row:last-child{border-bottom:0}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:var(--soft);color:var(--brand);font-size:12px;font-weight:700}.badge.warn{background:#fff2d6;color:#8b5d00}.badge.bad{background:#fde5e5;color:var(--danger)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.table th{font-size:12px;color:var(--muted);font-weight:650}.form{max-width:680px;display:grid;gap:14px}.field{display:grid;gap:6px}.field label{font-weight:650}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:var(--paper);color:var(--ink);width:100%;min-height:44px}.field textarea{min-height:130px;resize:vertical}.notice{padding:12px 14px;border-radius:10px;background:#fff4dd;color:#805b17;font-size:13px}.error{color:var(--danger);font-size:13px}.success{color:var(--brand);font-size:13px}.mobile-nav{display:none}.empty{text-align:center;padding:30px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:#0b211b66;display:grid;place-items:center;padding:18px;z-index:10}.modal{background:var(--paper);border-radius:18px;max-width:560px;width:100%;padding:22px;box-shadow:0 24px 70px #092a1c55}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.icon-btn{border:0;background:transparent;color:var(--muted);font-size:22px;min-width:40px;min-height:40px}
@media(max-width:760px){body{font-size:15px}.shell{display:block}.sidebar{display:none}.topbar{height:62px;padding:0 16px}.content{padding:20px 16px 88px}.title-row{display:block;margin-bottom:18px}.title-row .actions{margin-top:14px}.title-row h2{font-size:24px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.layout-2{display:block;margin-top:14px}.layout-2>.card+ .card{margin-top:14px}.card{padding:15px;border-radius:14px}.stat .num{font-size:25px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);bottom:0;left:0;right:0;background:#fffffff2;backdrop-filter:blur(12px);border-top:1px solid var(--line);z-index:4;padding:6px 4px max(6px,env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:transparent;color:var(--muted);font-size:11px;padding:5px 1px;display:grid;gap:3px;justify-items:center}.mobile-nav button.active{color:var(--brand);font-weight:750}.table th,.table td{padding:10px 8px}.topbar .crumb{max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu .role-label{display:none}}
@media(prefers-reduced-motion:no-preference){.card{animation:in .18s ease-out}@keyframes in{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}}
.spaced{margin-top:18px}.entity-list{display:grid;gap:12px}.entity{display:flex;justify-content:space-between;align-items:center;gap:18px}.entity h3{margin:8px 0}.entity p{margin:6px 0}.entity>div{min-width:0;overflow-wrap:anywhere}.entity>.btn{flex-shrink:0}.welcome{padding:28px;border-radius:20px;background:linear-gradient(120deg,#0e4c39,#237c57);color:#fff;margin-bottom:22px}.welcome .eyebrow{color:#b9dfca}.welcome h2{font-size:27px;margin:14px 0;line-height:1.4}.btn.light{background:#effaf3;color:#12563d}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;text-align:left;display:grid;gap:12px;color:var(--ink)}.module-symbol{font-size:28px;color:var(--brand)}.modal{max-height:calc(100dvh - 32px);overflow-y:auto;overflow-wrap:anywhere}.modal h2{font-size:22px;margin:8px 0 20px}.modal .form{margin-top:16px}.field{font-weight:600}.field input,.field select,.field textarea{font-size:16px;font-weight:400;min-width:0}.details{display:grid;grid-template-columns:140px 1fr;gap:14px}.details dt{color:var(--muted)}.details dd{margin:0;overflow-wrap:anywhere}fieldset{border:1px solid var(--line);border-radius:12px;padding:14px;min-width:0}legend{font-weight:650}.check{display:flex;align-items:center;gap:10px;padding:8px 0;min-height:44px}.check input{width:20px;height:20px;accent-color:var(--brand)}.record-body{white-space:pre-wrap;overflow-wrap:anywhere}.file-link{color:var(--brand);overflow-wrap:anywhere;padding:10px 0;min-height:44px}.toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);max-width:90vw;background:#153d30;color:#fff;padding:14px 22px;border-radius:12px;z-index:30;box-shadow:var(--shadow)}.toast.error{background:#8f2222;color:#fff}.auth-shell{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.auth-intro{padding:48px;background:linear-gradient(150deg,#0c3f30,#1a6247);color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:42px}.auth-intro .logo{padding:0}.auth-intro .logo h1{font-size:22px}.auth-intro .logo small{max-width:350px;font-size:13px}.auth-message h2{font-size:44px;line-height:1.3;font-weight:650;margin:20px 0}.auth-message p{max-width:420px;color:#c2ddcd;font-size:17px}.auth-message .eyebrow{color:#a9d6bc}.auth-intro>small{color:#b5d5c2}.auth-panel{display:flex;align-items:center;justify-content:center;padding:40px 28px;background:#fff}.auth-form{max-width:440px;width:100%}.auth-form h2{font-size:29px;margin:0 0 12px}.auth-form>.muted{margin:0 0 28px}.auth-form>.btn{margin-top:14px}.auth-form .form>.btn{width:100%}.auth-form .notice{margin:18px 0}.boot{padding:50px;display:grid;place-items:center}.side-foot{overflow-wrap:anywhere}.field input[type=file]{padding:10px;font-size:14px}.btn:disabled{opacity:.55;cursor:wait}.form-error:empty{display:none}
@media(max-width:760px){.auth-shell{display:block}.auth-intro{padding:24px;gap:20px}.auth-intro .logo h1{font-size:19px}.auth-message{display:none}.auth-intro>small{font-size:12px}.auth-panel{padding:30px 22px;min-height:60vh}.auth-form h2{font-size:25px}.welcome{padding:22px}.welcome h2{font-size:23px}.entity{align-items:flex-start;flex-direction:column}.entity>.btn{width:100%}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.module-card{padding:16px}.details{grid-template-columns:1fr;gap:6px}.details dd{margin-bottom:12px}.modal-backdrop{padding:10px}.modal{padding:18px;max-height:calc(100dvh - 20px)}.btn{min-height:44px}.mobile-nav{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:1fr}.sidebar small{font-size:12px}}
