:root{--bg: #f4f5f7;--surface: #ffffff;--border: #e5e5ea;--text: #19191c;--text-muted: #73737a;--side-bg: #131313;--side-text: #cccccc;--side-muted: #8a8a8a;--side-border: #2a2a2a;--accent: #ffd500;--accent-soft: rgba(255, 213, 0, .09);--on-accent: #111111;--danger: #b3261e;--danger-soft: #fdecea;--ok: #1d7a4f;--ok-soft: #e7f5ee;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(16, 17, 20, .06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,Segoe UI,sans-serif;font-size:15px;line-height:1.5}h1{font-size:1.4rem;margin:0 0 4px}h2{font-size:1.1rem;margin:0 0 8px}h3{font-size:1rem;margin:0 0 6px}a{color:inherit}.layout{display:flex;min-height:100vh}.sidebar{width:230px;flex:none;background:var(--side-bg);color:var(--side-text);display:flex;flex-direction:column;padding:16px 0}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:0 18px 14px;border-bottom:1px solid var(--side-border);color:#fff;font-weight:600}.brand-badge{background:#111;color:var(--accent);border:1px solid #333;border-radius:8px;padding:4px 8px;font-size:13px}.nav-group{font-size:12px;color:var(--side-muted);text-transform:none;letter-spacing:.04em;padding:16px 18px 4px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:var(--side-text);font:inherit;font-size:14px;padding:8px 18px;cursor:pointer;border-left:3px solid transparent}.nav-item:hover{color:#fff}.nav-item.active{color:var(--accent);background:var(--accent-soft);border-left-color:var(--accent)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:12px 24px;background:var(--side-bg);color:#f0f0f0}.topbar select{background:#1d1d1d;color:#f0f0f0;border:1px solid #3a3a3a;border-radius:999px;padding:6px 12px;font:inherit;font-size:14px}.topbar .spacer{flex:1}.content{padding:24px;max-width:1100px;width:100%;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.crumbs{color:var(--text-muted);font-size:13px;margin-bottom:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.grid{display:grid;gap:14px}.grid.kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.kpi-label{color:var(--text-muted);font-size:13px}.kpi-value{font-size:1.7rem;font-weight:600}.field{margin-bottom:14px}.field label{display:block;font-weight:600;font-size:14px;margin-bottom:4px}.field .hint{color:var(--text-muted);font-size:13px;margin-top:4px}.field .error{color:var(--danger);font-size:13px;margin-top:4px}.field input[type=text],.field input[type=date],.field input[type=number],.field input[type=password],.field input[type=url],.field select,.field textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;background:#fff;color:var(--text)}.field textarea{min-height:90px;resize:vertical}.field :focus-visible{outline:2px solid var(--accent);outline-offset:1px}.req{color:var(--danger)}.btn{display:inline-flex;align-items:center;gap:7px;border-radius:var(--radius-sm);padding:9px 16px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;border:1px solid transparent}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.ghost{background:#fff;border-color:var(--border);color:var(--text)}.btn.danger{background:#fff;border-color:var(--danger);color:var(--danger)}.btn:disabled{opacity:.55;cursor:default}.btn:focus-visible,.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;color:var(--text-muted);font-size:13px;border-bottom:1px solid var(--border);padding:8px 10px}.table td{border-bottom:1px solid var(--border);padding:10px;vertical-align:top}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;background:var(--bg)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--accent-soft);color:#8a6d00}.badge.bad{background:var(--danger-soft);color:var(--danger)}.editor-cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:900px){.editor-cols{grid-template-columns:1fr}.sidebar{width:64px}.sidebar .label,.nav-group,.brand span{display:none}}.preview-box{position:sticky;top:16px}.preview-label{color:var(--text-muted);font-size:13px;display:flex;align-items:center;gap:6px;margin-bottom:8px}.site-card{background:#161616;border:1px solid #2c2c2c;border-radius:12px;overflow:hidden;color:#f2f2f2;max-width:360px}.site-card .img{height:140px;background:#222;display:flex;align-items:center;justify-content:center;color:#555;overflow:hidden}.site-card .img img{width:100%;height:100%;object-fit:cover}.site-card .body{padding:14px}.site-tag{display:inline-block;background:#ffd50024;color:var(--accent);border-radius:999px;padding:2px 10px;font-size:12px;margin-bottom:8px}.site-muted{color:#9d9d9d;font-size:14px}.site-btn{display:inline-block;background:var(--accent);color:#111;font-weight:600;border-radius:6px;padding:6px 12px;font-size:13px;margin-top:10px}.upload{border:1.5px dashed var(--border);border-radius:var(--radius-sm);padding:12px;display:flex;gap:12px;align-items:center;cursor:pointer}.upload.drag{border-color:var(--accent);background:var(--accent-soft)}.upload img{width:72px;height:52px;object-fit:cover;border-radius:4px}.upload .ph{width:72px;height:52px;border-radius:4px;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast{background:#1d1d1d;color:#fff;border-radius:var(--radius-sm);padding:10px 16px;box-shadow:0 4px 14px #00000040;font-size:14px}.toast.error{background:var(--danger)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:60}.dialog{background:#fff;border-radius:var(--radius);padding:22px;max-width:420px;width:calc(100% - 32px)}.dialog .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--side-bg)}.login-card{background:#1b1b1b;color:#f0f0f0;border:1px solid #2c2c2c;border-radius:14px;padding:32px;width:360px}.login-card .field label{color:#ddd}.login-card .field input{background:#111;border-color:#3a3a3a;color:#fff}.login-error{background:#b3261e2e;color:#ff9d96;border-radius:var(--radius-sm);padding:9px 12px;font-size:14px;margin-bottom:12px}.todo-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);cursor:pointer;background:none;border-left:0;border-right:0;border-top:0;width:100%;font:inherit;text-align:left}.todo-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}.empty{color:var(--text-muted);padding:18px 0}.searchbar{display:flex;gap:10px;margin-bottom:14px}.searchbar input{flex:1;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit}
