:root{--bg: #f4f1ea;--canvas: #e9e5dc;--surface: #ffffff;--surface-2: #faf8f3;--text: #1e2a28;--muted: #6d7671;--border: #e4dfd4;--border-strong: #cfc8b9;--ink: #17332f;--primary: #1d5c57;--primary-hover: #164a46;--primary-soft: #e2eeeb;--accent: #d1663f;--accent-soft: #fbece5;--danger: #b42318;--ok: #2f7d4f;--radius: 10px;font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg)}a{color:var(--primary)}h1{font-size:24px;font-weight:700;letter-spacing:-.01em}h2{font-size:16px;font-weight:650}.page{padding:28px 32px;max-width:1180px}.page h1{margin:0 0 4px}.page .lead{color:var(--muted);margin:0 0 22px;font-size:14px;max-width:760px;line-height:1.5}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.spacer{flex:1}button,.btn{font:inherit;font-size:14px;font-weight:500;padding:7px 14px;border-radius:8px;cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:background .12s,border-color .12s,color .12s}button:hover,.btn:hover{border-color:var(--primary);color:var(--primary)}button.primary,.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover,.btn.primary:hover{background:var(--primary-hover);color:#fff}button.ghost,.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover,.btn.ghost:hover{background:var(--surface-2);color:var(--text)}button.danger{color:var(--danger)}button.danger:hover{border-color:var(--danger);color:var(--danger)}button.icon{padding:4px 9px}button:disabled{opacity:.45;cursor:default;pointer-events:none}input,select,textarea{font:inherit;font-size:14px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);width:100%}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}textarea{resize:vertical;line-height:1.4}input:focus,select:focus,textarea:focus{outline:3px solid var(--primary-soft);border-color:var(--primary)}label.field{display:block;margin-bottom:12px}label.field>span{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:5px}.row{display:flex;gap:10px}.row>*{flex:1;min-width:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:18px;box-shadow:0 1px 2px #1e2a280a}.card h2{margin:0 0 14px}table.grid{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}table.grid th,table.grid td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:left;font-size:14px;vertical-align:middle}table.grid th{background:var(--surface-2);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}table.grid tr:last-child td{border-bottom:none}table.grid tbody tr:hover td{background:#fcfbf8}table.grid tr.inactive td{color:var(--muted)}table.grid td.actions{white-space:nowrap;text-align:right;width:1%}.badge{font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px}.badge.ok{background:#e3f1e8;color:var(--ok)}.badge.warn{background:var(--accent-soft);color:#a34a27}.error{background:#fdecea;color:var(--danger);border:1px solid #f5c2bd;padding:9px 12px;border-radius:8px;margin:10px 0;font-size:14px}.ok{color:var(--ok);font-size:13px}.muted{color:var(--muted);font-size:13px}
