:root{--n:#0f172a;--b:#2563eb;--t:#1e293b;--m:#64748b;--r:#dc2626;--g:#059669;--l:#e2e8f0}*{box-sizing:border-box}body{margin:0;background:#f8fafc;color:var(--t);font:15px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif}a{text-decoration:none;color:inherit}.layout{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.side{background:var(--n);color:#cbd5e1;padding:22px 15px}.brand{font-weight:800;font-size:20px;color:#fff;padding:0 10px 22px}.nav a{display:block;padding:10px 12px;border-radius:9px;margin:3px 0}.nav a:hover,.nav .on{background:#1e293b;color:#fff}.main{padding:28px;max-width:1500px;width:100%;margin:auto}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.top h1{margin:0;font-size:26px}.muted{color:var(--m)}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.card{background:#fff;border:1px solid var(--l);border-radius:14px;padding:19px;box-shadow:0 3px 14px #0f172a0a;margin-bottom:16px}.metric b{display:block;font-size:23px;margin-top:7px}.green{color:var(--g)}.red{color:var(--r)}.span2{grid-column:span 2}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:11px;border-bottom:1px solid var(--l);white-space:nowrap}.table th{font-size:12px;text-transform:uppercase;color:var(--m)}.btn{border:0;border-radius:9px;padding:10px 15px;background:var(--b);color:#fff;font-weight:700;cursor:pointer}.btn.sec{background:#e2e8f0;color:var(--t)}.actions{display:flex;gap:8px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field label{display:block;font-weight:700;font-size:13px;margin-bottom:5px}.field input,.field select,.field textarea,.actions input,.actions select{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff}.field.full{grid-column:1/-1}.alert{padding:12px 15px;border-radius:9px;margin-bottom:16px;background:#dbeafe}.alert.error{background:#fee2e2;color:#991b1b}.badge{font-size:12px;padding:4px 8px;border-radius:999px;background:#e2e8f0}.badge.late{background:#fee2e2;color:#991b1b}.badge.projection{background:#fef3c7;color:#92400e}.projection-row{background:#fffbeb}.period-card h3{margin:0 0 13px}.period-card>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0}.period-card>div span{color:var(--m)}.period-balance{border-top:1px solid var(--l);margin-top:5px;padding-top:12px!important}.overdue-card{display:flex;flex-direction:column;align-items:flex-start}.overdue-total{font-size:23px;margin:14px 0}.admin-list{padding-bottom:10px}.admin-list>h3{margin-bottom:3px}.edit-item{border-top:1px solid var(--l)}.edit-item:first-of-type{margin-top:14px}.edit-item summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 2px;cursor:pointer;list-style:none}.edit-item summary::-webkit-details-marker{display:none}.edit-item summary span:first-child{display:flex;flex-direction:column}.edit-item summary small{color:var(--m);font-weight:400}.edit-item form{border-top:1px dashed var(--l);padding:16px 2px 18px}.check-field label{display:flex;align-items:center;gap:8px;margin-top:8px}.check-field input[type=checkbox]{width:auto}.check-field input[type=hidden]{display:none}.check-field small{display:block;margin-top:6px}.color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}.favicon-row{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.favicon-row img{width:48px;height:48px;object-fit:contain;border:1px solid var(--l);border-radius:9px;padding:5px}.favicon-row .field{flex:1;min-width:220px}.favicon-placeholder{display:grid;place-items:center;width:72px;height:48px;border:1px dashed #94a3b8;border-radius:9px;color:var(--m);font-size:11px}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0f172a,#1d4ed8)}.login .card{width:min(420px,92vw);padding:30px}.login .field{margin:13px 0}@media(max-width:900px){.layout{display:block}.side{padding:10px}.brand{padding:5px 8px 10px}.nav{display:flex;overflow:auto}.nav a{white-space:nowrap}.main{padding:16px}.grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.grid,.form-grid{grid-template-columns:1fr}.span2,.field.full{grid-column:1}.top{align-items:flex-start;gap:10px;flex-direction:column}.card{padding:14px}.edit-item summary{align-items:flex-start}.favicon-row{align-items:stretch}.favicon-row .btn{width:100%}}
