:root{--paper: #f6f5f0;--surface: #ffffff;--line: #dcdad0;--ink: #111512;--ink-muted: #5b615a;--signal: #7ac29b;--signal-soft: #e2f2e9;--signal-ink: #197442;--deep: #141a16;--on-deep: #f6f5f0;--on-deep-muted: #a3aba2;--deep-line: #2c3530;--coral: #ff6b4a;--coral-soft: #ffe4dc;--coral-ink: #b3371c;--amber: #f2b233;--amber-soft: #fdf0cf;--amber-ink: #7a5200;--sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-lg: 0 2px 6px #1115120f, 0 16px 40px -8px #11151229;--focus: 0 0 0 2px #f6f5f0, 0 0 0 4px #111512}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}body{font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--signal);text-decoration-thickness:2px;text-underline-offset:4px}a:hover{color:var(--signal-ink)}h1{margin:0;font-size:30px;line-height:36px;font-weight:600;letter-spacing:-.03em}h2{margin:0;font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.015em}.eyebrow{font-family:var(--mono);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.mono{font-family:var(--mono);font-size:13px}.muted{color:var(--ink-muted)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:28px}.page-head .title{display:flex;flex-direction:column;gap:8px}button{cursor:pointer}.btn{font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;font-size:15px;line-height:1;border-radius:9999px;border:1px solid var(--line);background:transparent;color:var(--ink);text-decoration:none;white-space:nowrap;transition:transform .15s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.btn:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.btn.primary{background:var(--signal);border-color:transparent}.btn.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn.secondary{background:var(--ink);border-color:transparent;color:var(--paper)}.btn.secondary:hover:not(:disabled){transform:translateY(-1px);color:var(--paper)}.btn.danger{color:var(--coral-ink)}.btn.danger:hover:not(:disabled){border-color:var(--coral-ink);color:var(--coral-ink)}.btn.sm{height:32px;padding:0 12px;font-size:13px}.btn.lg{height:52px;padding:0 24px;font-size:16px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:var(--focus)}.btn .arrow{font-family:var(--mono);transition:transform .15s ease}.btn:hover:not(:disabled) .arrow{transform:translate(3px)}.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.04em;padding:6px 12px;border-radius:9999px;background:var(--surface);color:var(--ink);border:1px solid var(--line);white-space:nowrap}table.data .badge{padding:4px 10px}.badge.signal{background:var(--signal-soft);color:var(--signal-ink);border-color:transparent}.badge.coral{background:var(--coral-soft);color:var(--coral-ink);border-color:transparent}.badge.amber{background:var(--amber-soft);color:var(--amber-ink);border-color:transparent}.badge.dark{background:var(--ink);color:var(--paper);border-color:transparent}.badge .dot{width:8px;height:8px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 3px var(--signal-soft),0 0 0 4px var(--signal-ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th{text-align:left;font-family:var(--mono);font-size:11px;line-height:16px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:14px 16px;border-bottom:1px solid var(--line);background:var(--paper);white-space:nowrap}table.data th:first-child{border-top-left-radius:var(--radius-lg)}table.data th:last-child{border-top-right-radius:var(--radius-lg)}table.data td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr:hover td{background:#fbfaf7}table.data .r{text-align:right}table.data td.num{white-space:nowrap}table.data .strong{font-weight:500}.field{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.field>span:first-child{font-size:14px;font-weight:500}.field .hint{font-size:13px;line-height:18px;color:var(--ink-muted)}.input,.field input:not([type=checkbox]),.field select{width:100%;height:40px;padding:0 12px;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);outline:none}.field select,select.input{appearance:none;-webkit-appearance:none;padding-right:32px;background:var(--surface) 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.5l3.5 3.5 3.5-3.5' fill='none' stroke='%235b615a' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center}.input:focus,.field input:focus,.field select:focus{border-color:var(--ink);box-shadow:var(--focus)}.field input.ng-invalid.ng-touched{border-color:var(--coral);background:var(--coral-soft)}.check{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}.check input{width:16px;height:16px;margin:0;accent-color:var(--signal-ink)}.notice{padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;line-height:20px;margin:0}.notice.err{background:var(--coral-soft);color:var(--coral-ink)}.notice.warn{background:var(--amber-soft);color:var(--amber-ink)}.notice.ok{background:var(--signal-soft);color:var(--signal-ink)}.empty{padding:48px 24px;text-align:center;color:var(--ink-muted)}.empty .btn{margin-top:16px}
