:root{--navy:#17324d;--blue:#205c8a;--light:#f4f7fa;--border:#d8e0e7;--text:#24313d;--muted:#687785;--success:#1d7a4a;--warning:#a36300;--danger:#b52b35}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--light);font-size:14px}a{color:var(--blue);text-decoration:none}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--navy);color:white;padding:18px 14px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{padding:4px 8px 18px;border-bottom:1px solid #ffffff26;margin-bottom:12px}.brand strong{display:block;font-size:18px}.brand small{opacity:.75}.nav-title{opacity:.65;font-size:11px;text-transform:uppercase;padding:14px 10px 5px}.nav a{display:block;color:white;padding:9px 10px;border-radius:6px;margin:2px 0}.nav a:hover{background:#ffffff1f}.main{min-width:0}.topbar{background:white;border-bottom:1px solid var(--border);padding:12px 22px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}.content{padding:22px;max-width:1500px;margin:0 auto}h1{font-size:24px;margin:0 0 18px}h2{font-size:18px;margin:0 0 14px}h3{font-size:15px;margin:0 0 10px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:white;border:1px solid var(--border);border-radius:9px;padding:16px;box-shadow:0 1px 2px #00000008}.stat strong{font-size:25px;display:block;margin-top:6px}.stat span,.muted{color:var(--muted)}.table-wrap{overflow-x:auto;background:white;border:1px solid var(--border);border-radius:8px}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--border);padding:10px;text-align:left;vertical-align:top}th{background:#edf3f7;font-size:12px;text-transform:uppercase;color:#4e6170}tr:last-child td{border-bottom:0}label{display:block;font-weight:700;margin-bottom:5px}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #b9c6d0;border-radius:6px;background:white;color:var(--text)}textarea{min-height:80px;resize:vertical}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.form-row-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{display:inline-block;border:0;border-radius:6px;padding:9px 13px;cursor:pointer;font-weight:700;background:var(--blue);color:white}.btn-secondary{background:#5e6d79}.btn-success{background:var(--success)}.btn-warning{background:var(--warning)}.btn-danger{background:var(--danger)}.btn-light{background:#e8eef3;color:var(--text)}.btn-sm{padding:6px 9px;font-size:12px}.alert{padding:11px 14px;border-radius:7px;margin-bottom:15px;border:1px solid}.alert-success{color:#135f39;background:#e8f7ef;border-color:#a8dec1}.alert-warning{color:#704700;background:#fff6df;border-color:#e8ca7e}.alert-danger{color:#7a1d25;background:#fdecef;border-color:#e7aab1}.badge{display:inline-block;padding:4px 7px;border-radius:999px;background:#e8eef3;font-size:12px}.badge-success{background:#dff4e8;color:#116239}.money{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.progress{height:10px;border-radius:8px;background:#e5ecf1;overflow:hidden}.progress>span{display:block;height:100%;background:var(--blue)}.inline{display:inline}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#17324d,#205c8a);padding:20px}.login-card{width:100%;max-width:420px;background:white;padding:30px;border-radius:12px;box-shadow:0 18px 50px #00000040}details summary{cursor:pointer;font-weight:700}.public-header{background:var(--navy);color:white;padding:24px}.public-content{max-width:1100px;margin:0 auto;padding:24px}
@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid-4,.grid-3,.grid-2,.form-row,.form-row-3{grid-template-columns:1fr}.topbar{position:static}}
@media print{.sidebar,.topbar,.no-print{display:none!important}.app{display:block}.content{padding:0;max-width:none}.card,.table-wrap{border:0;box-shadow:none}}
