:root{--navy:#1b3a6b;--navy-dark:#0e2244;--sky:#4a9fd4;--sky-light:#7bbfe6;--ice:#ebf5fc;--off:#f7fafd;--text:#0d1f3c;--mid:#3a5478;--muted:#6882a0;--line:#dce6f0;--green:#1d7a4a;--green-bg:#e6f5ec;--red:#b3261e;--red-bg:#fbeae9;--amber:#8a6100;--amber-bg:#fff4d6;--radius:12px;--font-sans:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-serif:"Cormorant Garamond",Georgia,serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--text);background:var(--off);line-height:1.5}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}img{display:block;max-width:100%}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--navy-dark);color:#fff;padding:0 1.5rem;height:60px;justify-content:space-between;gap:1rem}.topbar,.topbar .brand{display:flex;align-items:center}.topbar .brand{font-family:var(--font-serif);font-size:1.35rem;font-weight:600;letter-spacing:.02em;gap:.6rem;text-decoration:none}.topbar .brand em{font-style:italic;color:var(--sky-light)}.topbar nav{display:flex;gap:1.2rem;align-items:center;font-size:.85rem}.topbar nav a{color:hsla(0,0%,100%,.8);text-decoration:none}.topbar nav a:hover{color:#fff}.main{flex:1 1;width:100%;max-width:1180px;margin:0 auto;padding:1.6rem 1.25rem 4rem}h1.page{font-size:2rem;line-height:1.1}h1.page,h2.sec{font-family:var(--font-serif);font-weight:600}h2.sec{font-size:1.4rem;margin-bottom:.6rem}.sub{color:var(--muted);font-size:.9rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:1rem}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.card+.card{margin-top:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.1rem;border-radius:8px;border:1px solid transparent;background:var(--navy);color:#fff;font-weight:500;font-size:.9rem;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,transform .1s}.btn:hover{background:#234880}.btn:active{transform:translateY(1px)}.btn.secondary{background:#fff;color:var(--navy);border-color:var(--line)}.btn.secondary:hover{background:var(--ice)}.btn.sky{background:var(--sky)}.btn.sky:hover{background:#3a8fc4}.btn.wa{background:#25d366;color:#073b1c}.btn.wa:hover{background:#1fc15a}.btn.danger{background:#fff;color:var(--red);border-color:#f0c7c4}.btn.danger:hover{background:var(--red-bg)}.btn.sm{padding:.35rem .7rem;font-size:.8rem;border-radius:6px}.btn:disabled{opacity:.5;cursor:not-allowed}label.f{display:block;font-size:.8rem;font-weight:500;color:var(--mid);margin-bottom:.3rem}.input,select.input,textarea.input{width:100%;padding:.6rem .75rem;border:1px solid var(--line);border-radius:8px;background:#fff;outline:none}.input:focus{border-color:var(--sky);box-shadow:0 0 0 3px rgba(74,159,212,.18)}textarea.input{min-height:90px;resize:vertical}.grid2{grid-template-columns:1fr 1fr;grid-gap:1rem}.grid2,.grid3{display:grid;gap:1rem}.grid3{grid-template-columns:repeat(3,1fr);grid-gap:1rem}.grid4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem}.field{margin-bottom:1rem}.hint{font-size:.78rem;color:var(--muted);margin-top:.3rem}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem}.stat .n{font-family:var(--font-serif);font-size:2.2rem;font-weight:600;line-height:1}.stat .l{font-size:.8rem;color:var(--muted);margin-top:.25rem;text-transform:uppercase;letter-spacing:.08em}.stat.yes .n{color:var(--green)}.stat.no .n{color:var(--red)}.stat.maybe .n{color:var(--amber)}.bar{height:8px;border-radius:99px;background:var(--ice);overflow:hidden;display:flex}.bar>span{display:block;height:100%}.pill{display:inline-block;padding:.2rem .6rem;border-radius:99px;font-size:.75rem;font-weight:500}.pill.yes{background:var(--green-bg);color:var(--green)}.pill.no{background:var(--red-bg);color:var(--red)}.pill.maybe{background:var(--amber-bg);color:var(--amber)}.pill.pending{background:#eef2f7;color:var(--muted)}.pill.open{background:var(--ice);color:var(--navy)}table.t{width:100%;border-collapse:collapse;font-size:.88rem}table.t th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:.5rem .6rem;border-bottom:1px solid var(--line)}table.t td{padding:.6rem;border-bottom:1px solid #eef2f7;vertical-align:middle}table.t tr:hover td{background:#fafcfe}.tiny{font-size:.75rem;color:var(--muted)}.mono{font-family:ui-monospace,Menlo,monospace;font-size:.8rem}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:1.2rem;overflow-x:auto}.tabs a{padding:.6rem .9rem;font-size:.9rem;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap}.tabs a.on{color:var(--navy);border-bottom-color:var(--navy);font-weight:500}.alert{padding:.75rem 1rem;border-radius:8px;font-size:.88rem}.alert.ok{background:var(--green-bg);color:var(--green)}.alert.err{background:var(--red-bg);color:var(--red)}.alert.info{background:var(--ice);color:var(--navy)}.filters{display:flex;gap:.4rem;flex-wrap:wrap}.filters a{padding:.35rem .75rem;border-radius:99px;border:1px solid var(--line);background:#fff;font-size:.8rem;text-decoration:none;color:var(--mid)}.filters a.on{background:var(--navy);color:#fff;border-color:var(--navy)}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--navy-dark),var(--navy) 60%,var(--sky));padding:1rem}.login .box{border-radius:16px;padding:2.2rem;max-width:380px;box-shadow:0 30px 60px rgba(0,0,0,.25)}.login .box,.swatch{background:#fff;width:100%}.swatch{height:42px;border:1px solid var(--line);padding:2px;cursor:pointer}.swatch,.thumb{border-radius:8px}.thumb{width:72px;height:72px;object-fit:cover;border:1px solid var(--line)}.logo-prev{height:56px;width:auto;object-fit:contain}@media (max-width:760px){.grid2,.grid3,.grid4{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.main{padding:1rem .9rem 3rem}.topbar{padding:0 1rem}.topbar nav{gap:.8rem}table.t{display:block;overflow-x:auto;white-space:nowrap}}