:root{--color-bg:#f4efe4;--color-bg-warm:#fbf7ef;--color-bg-soft:#efe9dd;--color-bg-dark:#0f0f0f;--color-surface:#ffffff;--color-surface-warm:#fbf7ef;--color-border:rgba(15,15,15,0.12);--color-border-strong:#0f0f0f;--color-border-soft:rgba(15,15,15,0.06);--color-text:#0f0f0f;--color-muted:#6b6459;--color-inverse:#ffffff;--color-accent:#0f0f0f;--color-accent-hover:#2b2b2b;--color-accent-soft:#e8e3f1;--color-accent-lavender:#bde0db;--color-rust:#e75c0d;--color-good:#1d6d5c;--color-good-soft:#bde0db;--color-bad:#b3411f;--color-bad-soft:#ffbfae;--radius-lg:20px;--radius-md:14px;--radius-sm:12px;--radius-pill:999px;--font-display:var(--font-bricolage),"Helvetica Neue",system-ui,sans-serif;--font-sans:var(--font-noto),"Helvetica Neue",system-ui,sans-serif;--font-mono:var(--font-geist-mono),ui-monospace,monospace;--ease-in:cubic-bezier(0.22,1,0.36,1);--ease-color:cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-weight:400;line-height:1.55;-webkit-font-smoothing:antialiased}::selection{background:var(--color-accent-soft)}a{color:var(--color-text);text-decoration:underline;text-underline-offset:2px}a:hover{color:var(--color-accent-hover)}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:pretty;margin:0}h1{font-size:30px}h2{font-size:20px;margin:26px 0 12px}.muted{color:var(--color-muted)}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.eyebrow{font-family:var(--font-sans);font-weight:600;font-size:13px;line-height:16px;text-transform:uppercase;letter-spacing:.12em;color:var(--color-muted);margin:0 0 6px}.admin-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 24px;background:color-mix(in srgb,var(--color-bg-warm) 88%,transparent);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--color-border)}.admin-header-left,.admin-header-right{display:flex;align-items:center;gap:14px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--color-text);font-family:var(--font-display);font-weight:700}.brand:hover{text-decoration:none}.brand-mark{width:22px;height:22px;border-radius:7px;background:var(--color-accent)}.brand-name{font-size:17px;letter-spacing:-.01em}.admin-nav{display:flex;gap:4px}.nav-link{padding:8px 14px;border-radius:var(--radius-pill);font-size:14px;font-weight:600;color:var(--color-muted);text-decoration:none;transition:background-color .22s var(--ease-color),color .22s var(--ease-color)}.nav-link:hover{color:var(--color-text);background:var(--color-bg-soft);text-decoration:none}.nav-link.active{color:var(--color-inverse);background:var(--color-accent)}.user-chip{font-size:13px;color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);padding:6px 12px;border-radius:var(--radius-pill)}.admin-wrap{max-width:1080px;margin:0 auto;padding:32px 24px 80px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;margin-bottom:18px;transition:transform .22s var(--ease-in),box-shadow .22s var(--ease-in)}.card>h1:first-child,.card>h2:first-child{margin-top:0}.card-hover:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(34,37,47,.1)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}label{display:block;font-size:13px;font-weight:600;color:var(--color-text);margin:12px 0 5px}input,select,textarea{width:100%;font:inherit;font-family:var(--font-sans);font-size:14px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color .16s var(--ease-color)}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--color-muted) 75%,transparent)}textarea{font-family:var(--font-mono);font-size:12.5px;min-height:320px;line-height:1.5;resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-color:var(--color-accent)}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:var(--font-sans);font-weight:700;font-size:14px;line-height:1;min-height:40px;padding:10px 22px;border-radius:28px;border:1.5px solid var(--color-accent);background:var(--color-accent);cursor:pointer;transition:background-color .22s var(--ease-color),color .22s var(--ease-color),border-color .22s var(--ease-color),transform 80ms var(--ease-color)}.btn,.btn:hover,button,button:hover{color:var(--color-inverse);text-decoration:none}.btn:hover,button:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn:active,button:active{transform:translateY(1px)}.btn.secondary,button.secondary{background:transparent;color:var(--color-text);border-color:var(--color-accent)}.btn.secondary:hover,button.secondary:hover{background:var(--color-accent);color:var(--color-inverse)}.btn.ghost,button.ghost{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn.ghost:hover,button.ghost:hover{background:var(--color-bg-soft);color:var(--color-text);border-color:var(--color-border)}.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-sm{font-size:13px;min-height:34px;padding:7px 14px}.btn-danger{background:transparent}.btn-danger,.btn-danger:hover{color:var(--color-bad);border-color:var(--color-bad-soft)}.btn-danger:hover{background:var(--color-bad-soft)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}table{width:100%;border-collapse:collapse;font-size:14px}thead th{color:var(--color-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.08em}td,th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--color-border);vertical-align:middle}tbody tr{transition:background-color .12s var(--ease-color)}tbody tr:hover{background:var(--color-bg-warm)}tbody tr:last-child td{border-bottom:none}.pill{display:inline-flex;align-items:center;gap:.35rem;font-size:11px;font-weight:700;padding:3px 11px;border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.03em}.pill.active,.pill.published{background:var(--color-good-soft);color:var(--color-good)}.pill.draft{background:var(--color-accent-soft);color:var(--color-muted)}.pill.archived,.pill.paused{background:var(--color-bad-soft);color:var(--color-bad)}.snippet{font-family:var(--font-mono);font-size:12px;white-space:pre-wrap;word-break:break-word;background:var(--color-bg-dark);color:#ece7dc;padding:16px;border-radius:var(--radius-md);overflow-x:auto;border:1px solid var(--color-bg-dark)}.notice{padding:11px 14px;border-radius:var(--radius-sm);font-size:13.5px;margin:10px 0;border:1px solid transparent}.notice.ok{background:var(--color-good-soft);color:var(--color-good)}.notice.err{background:var(--color-bad-soft);color:var(--color-bad)}.grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.stat{background:var(--color-surface-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px}.stat .n{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.01em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}code.inline{font-family:var(--font-mono);background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:7px;padding:1px 7px;font-size:12px}.btn-google{width:100%;gap:.6rem}.sep{display:flex;align-items:center;gap:12px;margin:4px 0 12px;color:var(--color-muted);font-size:12px}.sep:after,.sep:before{content:"";flex:1 1;height:1px;background:var(--color-border)}.login-screen{min-height:calc(100vh - 60px);display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:400px}.login-card .card{padding:26px}.login-logo{display:flex;align-items:center;gap:10px;margin-bottom:8px}.login-logo .brand-mark{width:30px;height:30px;border-radius:9px}.editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}@media (max-width:900px){.editor{grid-template-columns:1fr}}.editor-preview{position:-webkit-sticky;position:sticky;top:82px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--color-border);margin-bottom:16px;flex-wrap:wrap}.tab{background:none;border-radius:0;border:none;border-bottom:2px solid transparent;color:var(--color-muted);font:inherit;font-family:var(--font-sans);font-weight:600;font-size:14px;min-height:auto;padding:9px 12px;cursor:pointer}.tab:hover{background:none}.tab.active,.tab:hover{color:var(--color-text)}.tab.active{border-bottom-color:var(--color-accent)}.field{margin-bottom:13px}.field>label{margin-top:0}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.color-row{display:flex;align-items:center;gap:8px}.color-row input[type=color]{width:44px;height:40px;min-height:40px;padding:3px;border-radius:10px;flex:none;cursor:pointer}.color-row input[type=text]{flex:1 1}.help{color:var(--color-muted);margin:3px 0 0}.help,.warn{font-size:12px}.warn{color:var(--color-bad);background:var(--color-bad-soft);border-radius:8px;padding:7px 10px;margin-top:7px}.cat-block{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:15px;margin-bottom:12px;background:var(--color-bg-warm)}.cat-block>.cat-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.cat-title{font-weight:700;font-size:14px}.svc-block{border:1px dashed var(--color-border);border-radius:10px;padding:11px;margin-top:8px;background:var(--color-surface)}.gcm-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:5px 12px;gap:5px 12px;font-size:12px;margin-top:4px}.gcm-grid label{display:flex;align-items:center;gap:6px;font-weight:400;margin:0}.gcm-grid input{width:auto}.inline-actions{gap:8px;flex-wrap:wrap;margin-top:8px}.device-bar,.inline-actions{display:flex;align-items:center}.device-bar{gap:6px;margin-bottom:9px}.device-bar .seg{display:inline-flex;border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.device-bar .seg button{border:none;border-radius:0;min-height:32px;background:var(--color-surface);color:var(--color-muted);font-size:12px;font-weight:600;padding:6px 14px}.device-bar .seg button:hover{background:var(--color-bg-soft)}.device-bar .seg button.on{background:var(--color-accent);color:var(--color-inverse)}.preview-shell{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:#0f0f0f}.preview-shell.mobile{max-width:390px;margin:0 auto}.preview-frame{width:100%;height:540px;border:0;background:#0f0f0f;display:block}.lang-tabs{display:flex;gap:6px;align-items:center;margin-bottom:12px}.diag-card{border-color:var(--color-bad);background:color-mix(in srgb,var(--color-bad-soft) 35%,var(--color-surface))}.diag-row{padding:10px 0;border-top:1px solid var(--color-border)}.diag-row:first-of-type{border-top:none}.logo-field{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.logo-preview{display:inline-flex;align-items:center;justify-content:center;width:92px;height:56px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-warm);overflow:hidden;flex:none}.logo-preview img{max-width:84px;max-height:48px;object-fit:contain}.logo-empty{font-size:12px;color:var(--color-muted)}.scan-panel{border:1px solid var(--color-border);background:var(--color-bg-warm);border-radius:var(--radius-md);padding:14px;margin-bottom:14px}.scan-item{display:flex;align-items:center;gap:8px;font-weight:400;font-size:13px;padding:5px 0;margin:0}.scan-item input{width:auto}.iwl-link-btn,.link-btn{background:none;border:none;min-height:auto;padding:2px;color:var(--color-text);text-decoration:underline;font-size:12px;cursor:pointer}.link-btn:hover{background:none;color:var(--color-accent-hover)}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{.admin-header,.no-print{display:none!important}body{background:#fff!important}.card{page-break-inside:avoid;break-inside:avoid;box-shadow:none!important}@page{margin:1.4cm}}