:root{--bg:#f4f7f5;--card:#fff;--line:#dce6df;--text:#173128;--muted:#6c7f76;--primary:#13795b;--primary2:#0c5c45;--danger:#a33d3d;--success:#176f53;--shadow:0 12px 30px rgba(21,56,44,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:#12372d;color:#eaf5ef;padding:24px 18px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin-bottom:26px}.brand.center{justify-content:center}.brand-mark{width:42px;height:42px;border-radius:12px;background:#1a8d6b;display:grid;place-items:center;font-size:21px}.brand small{display:block;color:#a9c8bc;font-size:11px;margin-top:3px}.sidebar nav{display:grid;gap:6px}.sidebar nav a,.logout{padding:11px 12px;border-radius:10px;color:#d9e9e2;background:transparent;border:0;text-align:left;font:inherit;cursor:pointer}.sidebar nav a:hover,.logout:hover{background:rgba(255,255,255,.08)}.sidebar>form{margin-top:22px}.logout{width:100%;border-top:1px solid rgba(255,255,255,.08);padding-top:14px}.main{min-width:0}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px;gap:18px}.topbar strong{display:block;font-size:16px}.muted{color:var(--muted);font-size:13px}.user-chip{font-size:12px;background:#eff7f3;border:1px solid #d5e9df;padding:8px 10px;border-radius:999px;white-space:nowrap}.content{padding:28px;max-width:1500px;margin:auto}.hero{background:linear-gradient(135deg,#e8f7f0,#fff);border:1px solid #d7e9df;border-radius:20px;padding:24px 26px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--primary)}h1{font-size:30px;margin:5px 0 8px}h2{font-size:19px;margin:0 0 14px}p{line-height:1.65;margin:0 0 12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.stat{padding:18px}.stat span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.stat b{font-size:25px}.card{padding:20px;margin-bottom:18px}.linkcard{display:grid;gap:8px;transition:.15s}.linkcard:hover{transform:translateY(-1px)}.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quick .card{margin:0}.quick span{font-size:12px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:#fff;color:var(--text);padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.danger{background:#fff3f3;color:var(--danger);border-color:#efcccc}.btn.small{padding:7px 9px;font-size:12px}.btn.full{width:100%}.actions{display:flex;gap:7px;flex-wrap:wrap}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:14px;flex-wrap:wrap}.filters{display:flex;gap:8px;flex-wrap:wrap}.field{display:grid;gap:7px;margin-bottom:13px}.field label{font-size:12px;font-weight:750}.field input,.field select,.field textarea{width:100%;border:1px solid #ccd9d2;border-radius:10px;background:#fff;padding:10px 11px;font:inherit;color:var(--text)}.field textarea{min-height:100px;resize:vertical}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.check{display:flex;gap:7px;align-items:center;font-size:13px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid #e8eee9;padding:10px 9px;vertical-align:top;text-align:left}th{background:#f7faf8;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#597067;position:sticky;top:0}tr:hover td{background:#fcfefd}.empty{text-align:center;color:var(--muted);padding:30px}.alert{padding:12px 14px;border-radius:12px;margin-bottom:15px;font-size:13px}.alert.success{background:#eaf7f0;border:1px solid #cfe8da;color:#176f53}.alert.danger{background:#fff0f0;border:1px solid #efcccc;color:#943c3c}.pager{display:flex;justify-content:center;gap:6px;margin-top:14px}.pager a,.pager span{padding:8px 11px;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:12px}.section-title{margin:26px 0 10px;font-size:14px;font-weight:800;color:var(--primary2)}.photo{width:72px;height:92px;border-radius:8px;object-fit:cover;background:#eef3f0}.avatar{width:52px;height:52px;border-radius:12px;object-fit:cover;background:#eef3f0}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf7f2;border:1px solid #d1e6dc;font-size:11px;font-weight:800}.badge.warn{background:#fff7e6;border-color:#f1dfaf;color:#845d00}.badge.red{background:#fff0f0;border-color:#efcccc;color:#943c3c}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#e7f5ef,#f8fbf9)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.login-card h1{font-size:28px}.login-note{font-size:11px;color:var(--muted);text-align:center;margin-top:15px}.signbox{border:1px dashed #becfc6;border-radius:12px;min-height:90px;padding:12px;background:#fbfcfb}.signbox img{max-width:130px;max-height:50px}.table-input{min-width:90px}.number{text-align:right;white-space:nowrap}@media(max-width:1000px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.sidebar nav{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.quick{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.content{padding:16px}.topbar{padding:0 16px}.hero{display:block}.hero .btn{margin-top:14px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.stats,.quick{grid-template-columns:1fr 1fr}.sidebar nav{grid-template-columns:1fr 1fr}.user-chip{display:none}}@media print{.sidebar,.topbar,.no-print{display:none!important}.shell{display:block}.content{padding:0}.card{box-shadow:none;border:0}}
