:root{--bg: #f5f6f8;--surface: #ffffff;--ink: #18202b;--muted: #687384;--line: #e3e6eb;--accent: #1f6feb;--accent-ink: #ffffff;--good: #1a7f37;--good-bg: #e6f4ea;--warn: #9a6700;--warn-bg: #fff4d6;--bad: #c62828;--bad-bg: #fdecec;--info: #0b5cad;--info-bg: #e6f0fb;--neutral-bg: #eef0f3;--sidebar: #111827;--sidebar-ink: #d1d5db;--radius: 10px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0d1117;--surface: #161b22;--ink: #e6edf3;--muted: #8b949e;--line: #30363d;--accent: #388bfd;--good: #3fb950;--good-bg: #12261a;--warn: #d29922;--warn-bg: #2b2111;--bad: #f85149;--bad-bg: #2d1416;--info: #58a6ff;--info-bg: #0f2135;--neutral-bg: #21262d;--sidebar: #010409;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:0}h2{font-size:15px;margin:0 0 12px}code{font-size:12px;background:var(--neutral-bg);padding:1px 5px;border-radius:4px}.shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--sidebar);color:var(--sidebar-ink);display:flex;flex-direction:column;padding:18px 12px;position:sticky;top:0;height:100vh}.sidebar nav{display:flex;flex-direction:column;gap:2px;margin-top:24px;flex:1}.sidebar nav a{color:var(--sidebar-ink);padding:8px 12px;border-radius:8px}.sidebar nav a:hover{background:#ffffff0f;text-decoration:none}.sidebar nav a.active{background:#ffffff1f;color:#fff;font-weight:600}.sidebar-foot{border-top:1px solid rgba(255,255,255,.1);padding-top:12px;display:flex;flex-direction:column;gap:8px}.sidebar-foot .who{display:flex;flex-direction:column;padding:0 4px}.sidebar-foot .who strong{color:#fff;font-size:13px;overflow:hidden;text-overflow:ellipsis}.sidebar .button.ghost{color:var(--sidebar-ink);border-color:#fff3}.brand{display:flex;align-items:center;gap:10px;font-size:16px;color:#fff;padding:0 4px}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700}.content{flex:1;padding:28px 32px 48px;min-width:0;max-width:1280px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.page-header p{margin:4px 0 0}.actions{display:flex;gap:8px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px}.card.flush{padding:0;overflow-x:auto}.pad-h{padding:16px 18px 0}.pad{padding:20px}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.tight{gap:8px}.grid .card{margin-bottom:0}.grid.two+.card,.grid.two+section{margin-top:16px}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.stat{display:flex;flex-direction:column;gap:4px;margin:0;color:var(--ink)}.stat strong{font-size:24px}.stat.link:hover{border-color:var(--accent);text-decoration:none}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:600}tbody tr:last-child td{border-bottom:none}tr.group td{background:var(--neutral-bg);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:6px 14px}.num{text-align:right}.center{text-align:center}.nowrap{white-space:nowrap}.muted{color:var(--muted)}.small{font-size:12px}.warn{color:var(--warn)}.bad{color:var(--bad)}.good{color:var(--good)}.lead{font-size:18px;font-weight:600;margin:0 0 12px}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--neutral-bg);color:var(--muted);text-transform:capitalize}.badge.good{background:var(--good-bg);color:var(--good)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.info{background:var(--info-bg);color:var(--info);text-transform:none}.value{font-weight:500}.value.muted{font-weight:400}.alert{padding:10px 14px;border-radius:8px;margin-bottom:14px}.alert.error{background:var(--bad-bg);color:var(--bad)}.button{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:7px 14px;border-radius:8px;font:inherit;font-weight:500;cursor:pointer;white-space:nowrap}.button:hover:not(:disabled){border-color:var(--muted)}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.button.danger{background:var(--bad);border-color:var(--bad);color:#fff}.button.ghost{background:transparent}.button.small{padding:4px 10px;font-size:12px}.button.block{width:100%}.icon-button{background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--muted)}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 10px;min-width:0}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23878f9b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;background-size:12px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}input:disabled{background:var(--neutral-bg);color:var(--muted)}textarea{resize:vertical;width:100%}.narrow{width:90px}.field{display:flex;flex-direction:column;gap:4px}.field>span{font-weight:600;font-size:13px}.field input,.field select{width:100%}.check{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.form{display:flex;flex-direction:column;gap:14px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}.toolbar input[type=search]{width:260px}.row{display:flex;align-items:center;gap:8px;margin-top:10px}.row.spread{justify-content:space-between;margin-top:0}.row.tight{margin-top:0}.row.wrap{flex-wrap:wrap;gap:14px;margin-top:0}.row input:not([type=checkbox]){flex:1}.field .row select{width:auto;flex:0 0 auto}dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}dt{color:var(--muted)}dd{margin:0}.request{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px}.request.pending{border-color:var(--warn);background:var(--warn-bg)}.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.plan{display:flex;flex-direction:column;margin:0}.plan.inactive{opacity:.7}.plan h2{margin:0;font-size:18px}.plan .price{font-size:26px;font-weight:700;margin:8px 0 4px}.plan .price span{font-size:14px;font-weight:400}.plan ul{padding-left:18px;margin:8px 0 16px;flex:1}.plan-foot{border-top:1px solid var(--line);padding-top:12px}.plan-foot .row{margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:16px;z-index:10}.modal{background:var(--surface);border-radius:12px;width:min(680px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:20px 22px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h2{margin:0;font-size:18px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:14px}.login{min-height:100vh;display:grid;place-items:center;padding:16px;background:var(--sidebar)}.login-card{width:min(380px,100%);display:flex;flex-direction:column;gap:14px;padding:28px}.login-card .brand{color:var(--ink);justify-content:center}.login-card p{margin:0}@media (max-width: 860px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;padding:12px 16px}.sidebar nav{flex-direction:row;overflow-x:auto;margin-top:12px}.sidebar nav a{white-space:nowrap}.sidebar-foot{flex-direction:row;justify-content:space-between;align-items:center}.content{padding:20px 16px 40px}.grid.two{grid-template-columns:1fr}.page-header{flex-direction:column}.toolbar input[type=search]{width:100%}}ul.plain{list-style:none;padding:0}ul.plain li{padding:4px 0;border-bottom:1px solid var(--line)}ul.plain li:last-child{border-bottom:none}.template-head .row.spread{margin-top:14px}.savebar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg);padding:10px 0;margin-bottom:8px;border-bottom:1px solid var(--line)}.matrix-wrap{max-height:calc(100vh - 140px);overflow:auto}.matrix{border-collapse:separate;border-spacing:0}.matrix th,.matrix td{border-bottom:1px solid var(--line)}.matrix thead{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--line)}.matrix thead th,.matrix thead td{background:var(--surface)}.matrix .sticky{position:sticky;left:0;background:var(--surface);z-index:1;min-width:260px;max-width:360px}.matrix thead .sticky{z-index:3}.matrix tr.group td,.matrix tr.group td.sticky{background:var(--neutral-bg)}.matrix .plan-col{min-width:170px;text-align:center;vertical-align:top;text-transform:none;letter-spacing:0;color:var(--ink);font-size:14px}.matrix .plan-name{font-weight:700;font-size:15px}.matrix tr.meta td{font-size:13px}.matrix tr.meta td.sticky{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.matrix select{width:100%;max-width:180px;font-size:12px;padding:4px 26px 4px 8px;background-position:right 8px center;background-size:10px}.matrix input[type=checkbox]{width:17px;height:17px;cursor:pointer;accent-color:var(--accent)}.matrix tbody tr:not(.group):hover td{background:var(--neutral-bg)}.center-row{justify-content:center;margin-top:6px}.small-icon{font-size:18px;padding:0 4px}.small-icon:disabled{opacity:.3;cursor:not-allowed}.control{display:flex;flex-direction:column;gap:6px;margin-top:14px}.control-label{font-weight:600;font-size:13px}.control-row{display:flex;gap:8px;align-items:stretch}.control-row select{flex:1;min-width:0}.control-row .button{flex-shrink:0}.bill-actions{display:inline-flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.alert.info{background:var(--info-bg);color:var(--info)}.modal.wide{width:min(900px,100%)}.pdf-frame{width:100%;height:min(75vh,1000px);border:1px solid var(--line);border-radius:8px;background:#fff;margin-bottom:14px}
