:root{--bg:#f9fafb;--surface:#fff;--border:#e5e7eb;--border-strong:#d1d5db;--divide:#f3f4f6;--text:#111827;--text-2:#374151;--muted:#6b7280;--faint:#9ca3af;--accent:#0891b2;--accent-hover:#0e7490;--accent-50:#ecfeff;--accent-100:#cffafe;--danger:#dc2626;--danger-hover:#b91c1c;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--radius:.375rem;--radius-lg:.5rem;--sidebar-w:18rem}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.875rem;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}code{background:var(--divide);color:var(--text-2);word-break:break-all;border-radius:4px;padding:.1rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem}.layout{min-height:100%}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;padding:1.5rem 1rem 1rem;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar .brand{color:var(--text);align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:0 .5rem;font-size:1rem;font-weight:700;display:flex}.sidebar .brand:hover{text-decoration:none}.sidebar .brand .logo{border-radius:var(--radius);background:var(--accent);color:#fff;justify-content:center;align-items:center;width:2rem;height:2rem;font-weight:700;display:inline-flex}.nav{flex-direction:column;gap:.125rem;display:flex}.nav a{border-radius:var(--radius);color:var(--text-2);align-items:center;gap:.75rem;padding:.5rem;font-weight:600;display:flex}.nav a:hover{background:var(--bg);color:var(--accent);text-decoration:none}.nav a.active{background:var(--accent-50);color:var(--accent)}.nav a svg{width:1.25rem;height:1.25rem;color:var(--faint);flex:none}.nav a:hover svg,.nav a.active svg{color:var(--accent)}.nav .section{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding:.85rem .5rem .25rem;font-size:.6875rem;font-weight:600}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:1rem;font-size:.8125rem}.sidebar-footer .who{color:var(--text);font-weight:600}.sidebar-footer .phone{color:var(--muted)}.sidebar-footer a{margin-top:.5rem;display:inline-block}.content{margin-left:var(--sidebar-w);max-width:80rem;padding:2rem 2.5rem 3rem}.auth{justify-content:center;align-items:center;min-height:100%;padding:3rem 1.25rem;display:flex}.auth .card{text-align:center;width:100%;max-width:26rem}.page-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.page-head h1{letter-spacing:-.015em;margin:0;font-size:1.5rem;font-weight:700}.page-head .sub{color:var(--muted);max-width:44rem;margin:.35rem 0 0}.page-head .actions{flex:none;gap:.75rem;display:flex}.stats{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:1fr;gap:1px;margin-bottom:1.5rem;display:grid;overflow:hidden}.stats .stat{background:var(--surface);padding:1rem 1.25rem}.stats .stat dt{color:var(--muted);margin:0;font-size:.8125rem;font-weight:500}.stats .stat dd{color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:.3rem 0 0;font-size:1.5rem;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);margin-bottom:1.5rem;padding:1.5rem}.card.error{border-color:var(--danger)}.card>h2{margin:0 0 .25rem;font-size:1rem;font-weight:600}.card>h2+.card-sub{margin-top:0}.card-sub{color:var(--muted);margin:0 0 1rem}.card-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.card-head h2{margin:0;font-size:1rem;font-weight:600}h1{font-size:1.5rem}.muted{color:var(--muted)}.badge{border-radius:var(--radius);background:var(--accent-50);color:var(--accent-hover);vertical-align:middle;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}.badge.gray{color:#4b5563;background:#f3f4f6}.badge.warn{color:#92400e;background:#fef3c7}.badge.green{color:#15803d;background:#dcfce7}.alert{border-radius:var(--radius);margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.875rem}.alert.info{background:var(--accent-50);color:var(--accent-hover);border:1px solid var(--accent-100)}.alert.warn{color:#92400e;background:#fffbeb;border:1px solid #fef3c7}.alert.error{color:#b91c1c;background:#fef2f2;border:1px solid #fee2e2}button,.btn{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow-xs);border:0;justify-content:center;align-items:center;gap:.4rem;padding:.5rem .85rem;font-family:inherit;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}button:hover,.btn:hover{background:var(--accent-hover);color:#fff;text-decoration:none}button.secondary,.btn.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}button.secondary:hover,.btn.secondary:hover{background:var(--bg);color:var(--text)}button.danger,.btn.danger{background:var(--danger)}button.danger:hover,.btn.danger:hover{background:var(--danger-hover)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.row{flex-wrap:wrap;gap:.5rem;display:flex}.form label{color:var(--text);margin-bottom:1rem;font-size:.875rem;font-weight:500;display:block}.form input,.form textarea{background:var(--surface);width:100%;color:var(--text);border-radius:var(--radius);outline:1px solid var(--border-strong);outline-offset:-1px;border:0;margin-top:.5rem;padding:.5rem .75rem;font-family:inherit;font-size:.875rem;font-weight:400;display:block}.form input::placeholder,.form textarea::placeholder{color:var(--faint)}.form input:focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.form textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5}.form .row{margin-top:.5rem}.form label.checkbox{align-items:center;gap:.5rem;display:flex}.form label.checkbox input{width:auto;margin:0;display:inline-block}dl.kv,table.kv{border-collapse:collapse;width:100%;margin:0}table.kv td{vertical-align:top;border-top:1px solid var(--divide);padding:.6rem 0;font-size:.875rem}table.kv tr:first-child td{border-top:0}table.kv td:first-child{color:var(--muted);width:11rem;padding-right:1rem;font-weight:500}.table-wrap{margin:0 -.25rem;overflow-x:auto}table.data{border-collapse:collapse;width:100%;min-width:32rem;font-size:.875rem}table.data thead th{text-align:left;color:var(--text);border-bottom:1px solid var(--border-strong);white-space:nowrap;padding:.75rem;font-weight:600}table.data tbody td{border-bottom:1px solid var(--border);color:var(--muted);white-space:nowrap;padding:.75rem}table.data tbody td.strong{color:var(--text);font-weight:500}table.data tbody tr:nth-child(2n){background:var(--bg)}table.data td.num{font-variant-numeric:tabular-nums}.empty{color:var(--muted);padding:.5rem 0}.pager{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;font-size:.8125rem;display:flex}.pager .links{gap:.5rem;display:flex}.pager .links .btn.secondary[aria-disabled=true]{opacity:.5;pointer-events:none}@media (width>=640px){.form{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.25rem;display:grid}.form>label{margin-bottom:.9rem}.form>label.checkbox,.form>label.full,.form>.row,.form>button,.form>.btn{grid-column:1/-1}.form>label:has(textarea){grid-column:1/-1}.dc-config{grid-template-columns:1fr 1fr;align-items:start;gap:1.25rem;display:grid}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1280px){.content{padding:2.5rem 3rem 4rem}}@media (width<=820px){.sidebar{border-right:0;border-bottom:1px solid var(--border);flex-direction:column;width:auto;padding:1rem;position:static}.sidebar .brand{margin-bottom:1rem}.nav{flex-flow:wrap;gap:.25rem}.nav .section{display:none}.sidebar-footer{margin-top:1rem}.content{margin-left:0;padding:1.5rem 1.25rem 2.5rem}}
