:root{--bg: #14161a;--bg-panel: #1a1d23;--bg-input: #10131a;--bg-hover: #22262f;--border: #2b303b;--text: #dfe3ea;--text-dim: #8d95a6;--accent: #5b9dd9;--accent-dim: #2f5a7d;--error: #e26d6d;--warn: #d9a95b;--ok: #6dbd8a;--sidebar-width: 232px;--radius: 5px;color-scheme:dark}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 Segoe UI,system-ui,-apple-system,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;height:100%}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.brand{padding:14px 16px;font-weight:600;letter-spacing:.02em;border-bottom:1px solid var(--border)}.brand small{display:block;font-weight:400;color:var(--text-dim);font-size:11px}.nav{padding:8px 0;flex:1}.nav-group{padding:10px 16px 4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.nav-item{display:flex;align-items:center;gap:8px;padding:7px 16px;color:var(--text);cursor:pointer;border-left:2px solid transparent;font-size:13.5px}.nav-item:hover{background:var(--bg-hover);text-decoration:none}.nav-item.active{background:var(--bg-hover);border-left-color:var(--accent)}.nav-count{margin-left:auto;color:var(--text-dim);font-size:11px;font-variant-numeric:tabular-nums}.nav-count.bad{color:var(--error);font-weight:600}.sidebar-foot{border-top:1px solid var(--border);padding:10px 16px;font-size:12px;color:var(--text-dim)}.content{overflow-y:auto;padding:20px 24px 60px}.page-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;flex-wrap:wrap}.page-head h1{font-size:19px;margin:0;font-weight:600}.page-head .spacer{flex:1}button{font:inherit;background:var(--bg-hover);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent-dim)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent-dim);border-color:var(--accent)}button.danger:hover:not(:disabled){border-color:var(--error);color:var(--error)}button.small{padding:3px 8px;font-size:12px}input,select,textarea{font:inherit;background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}textarea{resize:vertical;min-height:72px;font-family:inherit}input[type=checkbox]{width:auto}.form{max-width:780px}.field{margin-bottom:14px}.field>label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:4px}.field .hint{font-size:11.5px;color:var(--text-dim);margin-top:3px}.field.inline{display:flex;align-items:center;gap:8px}.field.inline>label{margin:0}.locale-tag{font-size:10px;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-dim);border-radius:3px;padding:0 4px;margin-left:6px}.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-weight:500}tbody tr:hover{background:var(--bg-panel)}td.id code{color:var(--accent)}code{font-family:Consolas,Cascadia Mono,monospace;font-size:12.5px}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:16px}.banner{border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;border:1px solid var(--border)}.banner.error{border-color:var(--error);background:#2a1a1c}.banner.warn{border-color:var(--warn);background:#2a2318}.banner.info{border-color:var(--accent-dim);background:#17222c}.pill{display:inline-block;font-size:11px;padding:1px 7px;border-radius:10px;border:1px solid var(--border);color:var(--text-dim)}.pill.error{color:var(--error);border-color:var(--error)}.pill.warning{color:var(--warn);border-color:var(--warn)}.pill.ok{color:var(--ok);border-color:var(--ok)}.dim{color:var(--text-dim)}.empty{color:var(--text-dim);padding:28px 0;text-align:center}.presence{display:flex;gap:4px;align-items:center}.avatar{width:22px;height:22px;border-radius:50%;background:var(--accent-dim);color:var(--text);font-size:11px;display:grid;place-items:center;border:1px solid var(--accent);cursor:default}.save-state{font-size:12px;color:var(--text-dim)}.save-state.dirty{color:var(--warn)}.save-state.saved{color:var(--ok)}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:50;max-width:380px}.toast{background:var(--bg-panel);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:9px 12px;font-size:13px;box-shadow:0 6px 18px #0006}.toast.error{border-left-color:var(--error)}.login-wrap{height:100%;display:grid;place-items:center}.login{width:320px}.login h1{font-size:18px;margin:0 0 4px}.login p.dim{margin:0 0 18px;font-size:12.5px}.node{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px}.node.is-root{border-color:var(--accent-dim)}.node-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.node-head code{color:var(--accent)}.node-sub{border-left:2px solid var(--border);padding-left:10px;margin:8px 0 8px 4px}.choice{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:9px 10px;margin-bottom:8px}.cond{display:grid;grid-template-columns:110px 1fr 90px 1fr auto;gap:6px;margin-bottom:6px;align-items:center}.diff{font-family:Consolas,Cascadia Mono,monospace;font-size:12px;white-space:pre;overflow-x:auto;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;max-height:60vh;overflow-y:auto}.diff .add{color:var(--ok)}.diff .del{color:var(--error)}.diff .meta{color:var(--text-dim)}@media(max-width:800px){.shell{grid-template-columns:1fr}.sidebar{display:none}.sidebar.open{display:flex;position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);z-index:40}}
