:root{--navy:#092F4B;--navy2:#061A2E;--teal:#0A8FA3;--teal2:#00D3BA;--bg:#F3F6F8;--card:#fff;--ink:#132A3F;--soft:#5A6E80;--line:#D8E1E8;--red:#B3261E;--green:#1B7F4C;--amber:#9A6700}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 "Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--navy)}
.top{background:var(--navy2);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.5rem;gap:1rem;flex-wrap:wrap}
.brand{color:#fff;text-decoration:none;font-weight:800;font-size:1.2rem;letter-spacing:-.01em}.brand span{color:var(--teal2)}.brand small{font-weight:500;opacity:.6;margin-left:.4rem;font-size:.8rem}
.top nav{display:flex;gap:1.2rem;flex-wrap:wrap}.top nav a{color:#C9D6E2;text-decoration:none;font-weight:600;font-size:.92rem}.top nav a:hover{color:#fff}.top nav .me{opacity:.7}
.wrap{max-width:1180px;margin:0 auto;padding:1.5rem}
h1{font-size:1.6rem;margin:.2rem 0 1rem;letter-spacing:-.01em}h2{font-size:1.15rem;margin:1.6rem 0 .6rem}
.head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:1.2rem 1.4rem;margin-bottom:1.2rem}
.grid{display:grid;gap:1.2rem}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.g2,.g3,.g4{grid-template-columns:1fr}}
.kpi b{display:block;font-size:1.6rem;letter-spacing:-.02em}.kpi span{color:var(--soft);font-size:.9rem}
table{width:100%;border-collapse:collapse;font-size:.93rem}th,td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--soft);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
td.r,th.r{text-align:right;white-space:nowrap}tr:hover td{background:#F8FAFC}
.btn{display:inline-block;background:var(--navy);color:#fff;border:0;border-radius:5px;padding:.55rem 1rem;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.btn:hover{background:#0B3D62}
.btn.sec{background:#fff;color:var(--navy);border:1px solid var(--line)}.btn.sec:hover{border-color:var(--navy)}.btn.danger{background:var(--red)}.btn.sm{padding:.35rem .7rem;font-size:.85rem}.btn.teal{background:var(--teal)}
label{display:block;font-size:.85rem;font-weight:600;color:var(--soft);margin:.7rem 0 .25rem}
input,select,textarea{width:100%;padding:.55rem .65rem;border:1px solid var(--line);border-radius:5px;font:inherit;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);border-color:transparent}
textarea{min-height:90px}.inline{display:flex;gap:.8rem;align-items:end;flex-wrap:wrap}.inline>*{flex:1;min-width:140px}.inline>.auto{flex:0}
.tag{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;background:#E7EEF3;color:var(--navy)}
.tag.draft{background:#EEF0F3;color:#5A6E80}.tag.open{background:#FFF3D6;color:var(--amber)}.tag.partial{background:#FFE8CC;color:#8A4B00}.tag.paid{background:#DDF3E6;color:var(--green)}.tag.cancelled{background:#F8DEDC;color:var(--red)}.tag.overdue{background:#F8DEDC;color:var(--red)}
.flash{padding:.7rem 1rem;border-radius:6px;margin-bottom:1rem;font-weight:600}.flash.ok{background:#DDF3E6;color:var(--green)}.flash.err{background:#F8DEDC;color:var(--red)}
.muted{color:var(--soft)}.small{font-size:.86rem}.right{text-align:right}.mt{margin-top:1rem}
.login{max-width:380px;margin:8vh auto}.login .brand{color:var(--navy);font-size:1.8rem;display:block;margin-bottom:1rem}
.brandchip{display:inline-block;width:.75rem;height:.75rem;border-radius:3px;vertical-align:-1px;margin-right:.35rem}
.items td{padding:.3rem .3rem}.items input{padding:.4rem .5rem}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line)}
.cal .d{min-height:110px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.3rem;background:#fff;font-size:.85rem}
.cal .d.out{background:#F8FAFC;color:#AAB7C4}.cal .d.today .n{background:var(--teal);color:#fff}.cal .n{display:inline-block;padding:0 .35rem;border-radius:3px;font-weight:700;margin-bottom:.2rem}
.cal .ev{display:block;color:#fff;border-radius:3px;padding:.1rem .35rem;margin:.15rem 0;text-decoration:none;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal .dow{background:#fff;font-weight:700;color:var(--soft);font-size:.8rem;text-transform:uppercase;padding:.4rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
code{background:#EEF2F5;padding:.1rem .35rem;border-radius:3px;font-size:.88em}
@media print{.top,.flash,.noprint{display:none}}
.testbar{background:#FFD23F;color:#061A2E;text-align:center;font-weight:700;font-size:.85rem;padding:.4rem 1rem}.testbar a{color:#061A2E}
.tabs{display:flex;gap:.3rem;margin-bottom:1rem;flex-wrap:wrap}.tabs a{padding:.45rem .9rem;border-radius:5px;text-decoration:none;font-weight:600;background:#fff;border:1px solid var(--line)}.tabs a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.danger-zone{border-color:#B3261E}
