:root{--ink:#1d2a33;--muted:#5d6b76;--line:#d9dfe4;--bg:#f2f5f7;--card:#fff;--amber:#f2b01e;--amber-dark:#c98b00;--ok:#1f8a4c;--warn:#c98b00;--bad:#c0392b;color:var(--ink);background:var(--bg);font-family:Public Sans,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;line-height:1.5}h1{letter-spacing:-.01em;margin:0 0 .25rem;font-size:1.6rem}.muted{color:var(--muted)}.small{margin:0;font-size:.85rem}.center{text-align:center;margin-top:4rem}.login{place-items:center;min-height:100vh;padding:1rem;display:grid}.panel{background:var(--card);border:1px solid var(--line);border-top:6px solid var(--amber);border-radius:6px;gap:1rem;width:100%;max-width:380px;padding:1.75rem;display:grid}label{gap:.3rem;font-size:.9rem;font-weight:600;display:grid}input,select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:4px;padding:.6rem .7rem}input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--amber);outline-offset:1px}.btn{font:inherit;background:var(--amber);color:var(--ink);cursor:pointer;border:0;border-radius:4px;padding:.7rem 1rem;font-weight:700}.btn:hover{background:var(--amber-dark);color:#fff}.btn:disabled{opacity:.6;cursor:wait}.btn.block{text-align:center;text-decoration:none;display:block}.link{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;text-decoration:underline}a.link{text-align:center;display:block}.error{color:var(--bad);margin:0;font-size:.9rem}.shell{max-width:1100px;margin:0 auto;padding:1rem 1.5rem}.shell header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.pw{position:relative}.pw input{width:100%;padding-right:2.7rem}.eye{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.35rem;display:grid;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.eye:hover{color:var(--ink)}.status{border:1px solid var(--line);border-left:6px solid var(--muted);border-radius:6px;padding:1rem}.status.ok{border-left-color:var(--ok)}.status.warn{border-left-color:var(--warn)}.status.bad{border-left-color:var(--bad)}.status-top{justify-content:space-between;align-items:center;font-size:1.1rem;display:flex}.status.ok strong{color:var(--ok)}.status.warn strong{color:var(--warn)}.status.bad strong{color:var(--bad)}.tag{background:var(--bad);color:#fff;border-radius:3px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.bar{background:var(--line);border-radius:5px;height:10px;margin:.6rem 0 .3rem;overflow:hidden}.bar span{background:var(--amber);height:100%;display:block}.pct{margin:0 0 .6rem;font-weight:700}dl{grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:0;font-size:.95rem;display:grid}dt{color:var(--muted)}dd{text-align:right;margin:0;font-weight:600}.banner{text-align:center;color:#fff;border-radius:6px;padding:1.1rem;font-size:1.6rem;font-weight:800}.banner.ok{background:var(--ok)}.banner.bad{background:var(--bad)}#reader{border-radius:6px;width:100%;overflow:hidden}h2{margin:0 0 .5rem;font-size:1.05rem}.upload{border-top:1px solid var(--line);gap:.8rem;padding-top:1rem;display:grid}.pay{gap:.4rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.pay li{border-bottom:1px solid var(--line);justify-content:space-between;gap:.5rem;padding-bottom:.4rem;display:flex}.pill{background:var(--line);text-transform:capitalize;border-radius:999px;padding:.1rem .55rem;font-size:.75rem;font-weight:700}.pill.approved{background:var(--ok);color:#fff}.pill.rejected{background:var(--bad);color:#fff}.pill.pending{background:var(--amber)}.shell{max-width:1280px}.fh{gap:1rem}.fh nav{flex:1;gap:.25rem;display:flex}.fh nav a{color:var(--muted);border-radius:4px;padding:.4rem .85rem;font-weight:600;text-decoration:none}.fh nav a.active{background:var(--amber);color:var(--ink)}.cards{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.8rem 1rem;display:grid}.card b{font-size:1.6rem}.card span{color:var(--muted);font-size:.85rem}.toolbar{flex-wrap:wrap;gap:.6rem;margin-bottom:.8rem;display:flex}.toolbar input{flex:1;min-width:220px}.tablewrap{background:var(--card);border:1px solid var(--line);border-radius:6px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:.6rem .75rem}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#eaeff2;font-size:.75rem}td a{color:var(--ink);font-weight:700}.pill.PAID{background:var(--ok);color:#fff}.pill.PARTIAL{background:var(--amber)}.pill.OWING,.pill.OVERDUE{background:var(--bad);color:#fff}.pill.NO_ACTIVE_PERIOD{background:var(--line)}.two{grid-template-columns:minmax(280px,380px) 1fr;align-items:start;gap:1.25rem;display:grid}.box{background:var(--card);border:1px solid var(--line);border-radius:6px;gap:.75rem;padding:1rem;display:grid}.cal-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.dow{color:var(--muted);font-size:.75rem;font-weight:700}.day{border-radius:4px;padding:.45rem 0;font-size:.9rem}.day.on{background:var(--ok);color:#fff;font-weight:700}.prow{background:var(--card);border:1px solid var(--line);border-radius:6px;grid-template-columns:1.2fr 1.2fr 1fr;align-items:start;gap:1rem;margin-bottom:.75rem;padding:1rem;display:grid}.late{color:var(--bad);font-weight:700}a.card{color:inherit;text-decoration:none}a.card:hover{border-color:var(--amber)}a.pill.pending{color:var(--ink);text-decoration:none}.subbox{border-top:1px solid var(--line);gap:.5rem;padding-top:.8rem;display:grid}.notice{border-left:4px solid var(--amber);background:#fff6db;margin:0;padding:.8rem}.passqr{justify-items:center;gap:.3rem;display:grid}.passqr img{width:220px;height:220px}.cap{text-transform:capitalize}.receipt{border:1px solid var(--line);border-radius:4px;max-width:100%;max-height:320px}.zoomable{cursor:zoom-in}.lightbox{z-index:100;background:#000000e6;grid-template-rows:auto 1fr;display:grid;position:fixed;inset:0}.lbbar{justify-content:flex-end;gap:.6rem;padding:.6rem 1rem;display:flex}.lbbar a,.lbbar button{font:inherit;color:#fff;cursor:pointer;background:#ffffff2e;border:0;border-radius:4px;padding:.45rem 1rem;text-decoration:none}.lbview{padding:0 1rem 1rem;display:flex;overflow:auto}.lbview img{cursor:zoom-in;max-width:100%;max-height:100%;margin:auto}.lbview img.zoomed{cursor:zoom-out;width:170%;max-width:none;max-height:none}.decide{gap:.5rem;display:grid}.row{gap:.5rem;display:flex}.btn.ghost{border:1px solid var(--line);color:var(--ink);background:#fff}.btn.ghost:hover{background:var(--line);color:var(--ink)}.formgrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem;display:grid}.check{align-items:center;gap:.5rem;font-weight:500;display:flex}.check input{width:auto}.tabs{gap:.5rem;margin-bottom:.8rem;display:flex}@media (width<=800px){.two,.prow{grid-template-columns:1fr}}.mono{word-break:break-all;margin:0;font-family:ui-monospace,Consolas,monospace;font-size:.85rem}.qrbox{justify-items:center;gap:.4rem;display:grid}.buscards{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem;margin-top:1rem;display:grid}.sheet{display:none}@media print{.fh,.noprint{display:none!important}.shell{max-width:none;padding:0}.sheet{display:block}.qcard{text-align:center;page-break-after:always;padding:2cm 1cm;display:none}.qcard.on{display:block}.qcard h2{margin-bottom:1cm;font-size:34pt}.qcard p{font-size:15pt}.qcard img{width:14cm!important;height:14cm!important}}
