:root{--purple:#7037b8;--purple2:#59239f;--yellow:#ffd400;--bg:#f6f5f8;--text:#1c2120;--muted:#717776;--border:#e7e3ec;--white:#fff;--red:#d93636;--orange:#e9891b;--green:#249a57}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:245px;background:linear-gradient(180deg,var(--purple),var(--purple2));color:#fff;padding:20px 14px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{padding:2px 12px 20px}.brand img{width:150px;max-width:100%;border-radius:12px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{padding:11px 13px;border-radius:12px;text-decoration:none;display:flex;gap:10px;align-items:center;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:var(--yellow);color:#2c2240;font-weight:800}.sidebar-user{margin-top:auto;background:#ffffff14;border:1px solid #ffffff26;border-radius:14px;padding:12px;display:grid;gap:4px}.sidebar-user small{opacity:.8}.sidebar-user a{font-size:12px;margin-top:5px}.main{margin-left:245px;padding:28px;width:calc(100% - 245px)}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.topbar h1{margin:0;color:var(--purple2);font-size:28px}.topbar p{margin:5px 0 0;color:var(--muted)}.grid{display:grid;gap:16px}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:0 3px 18px #2a16330b}.metric .label{color:var(--muted);font-size:13px}.metric .value{font-size:30px;font-weight:900;margin-top:5px}.metric .note{font-size:12px;color:var(--muted)}.purple{color:var(--purple)}.yellow{color:#ad8e00}.red{color:var(--red)}.green{color:var(--green)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.btn{border:0;border-radius:11px;padding:10px 14px;font-weight:750;text-decoration:none;display:inline-block;cursor:pointer;background:#eee}.btn.primary{background:var(--purple);color:#fff}.btn.yellow{background:var(--yellow);color:#2d2340}.btn.danger{background:#ffe6e6;color:#9d2020}.btn.small{padding:7px 10px;font-size:12px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:16px}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 13px;border-bottom:1px solid #eee;text-align:left;white-space:nowrap;font-size:13px}.table th{background:#faf9fc;color:#625d6a;font-size:12px}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;background:#eee}.badge.green{background:#e7f7ee;color:#167844}.badge.yellow{background:#fff5bf;color:#8e7100}.badge.orange{background:#fff0dc;color:#a65a00}.badge.red{background:#ffe7e7;color:#a92626}.badge.black{background:#222;color:#fff}.badge.gray{background:#eee;color:#666}.form-card{max-width:900px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:750}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #d9d5df;border-radius:11px;font:inherit;background:#fff}.field textarea{min-height:90px;resize:vertical}.alert{padding:12px 14px;border-radius:12px;margin:0 0 15px}.alert.success{background:#e8f8ee;color:#176d3d}.alert.error{background:#ffe8e8;color:#9e2424}.split{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.section-title{margin:0 0 12px;font-size:18px}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#f3eff9,#fff9d8)}.login-box{width:min(920px,94vw);display:grid;grid-template-columns:1fr 1fr;background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 24px 80px #3e24642c}.login-brand{background:linear-gradient(160deg,var(--purple),var(--purple2));color:#fff;padding:50px;display:flex;flex-direction:column;justify-content:center}.login-brand img{width:250px;max-width:100%;border-radius:16px}.login-brand h2{font-size:34px;margin:24px 0 8px}.login-brand p{opacity:.85;line-height:1.5}.login-form{padding:50px;display:flex;flex-direction:column;justify-content:center}.login-form h1{margin:0 0 8px}.login-form>p{color:var(--muted);margin:0 0 24px}.login-form .field{margin-bottom:14px}.login-form button{width:100%;margin-top:6px}.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.empty{padding:30px;text-align:center;color:var(--muted)}.recommend{border-left:5px solid var(--purple)}.recommend strong.big{font-size:26px;display:block;margin:6px 0}.muted{color:var(--muted)}@media(max-width:1000px){.grid.cards{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.sidebar{width:78px;padding:15px 8px}.brand img{width:55px;height:55px;object-fit:cover}.sidebar nav a{justify-content:center;font-size:0}.sidebar nav a span{font-size:18px}.sidebar-user b,.sidebar-user small,.sidebar-user a{font-size:0}.main{margin-left:78px;width:calc(100% - 78px);padding:18px}}@media(max-width:650px){.grid.cards,.form-grid,.kpi-row{grid-template-columns:1fr}.main{padding:14px}.login-box{grid-template-columns:1fr}.login-brand{padding:28px}.login-form{padding:28px}.topbar h1{font-size:23px}}
