:root{color-scheme:light;--bg:#f6f7f9;--panel:#ffffff;--border:#d9dee7;--text:#17202a;--muted:#5b6675;--accent:#2563eb;--accent-dark:#1d4ed8;--danger:#b42318}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input{font:inherit}.button,button{border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text);cursor:pointer;min-height:34px;padding:0 12px}.button.primary,button.primary{border-color:var(--accent);background:var(--accent);color:#ffffff}.button:hover,button:hover{border-color:var(--accent)}.button.primary:hover,button.primary:hover{background:var(--accent-dark)}.button{align-items:center;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.55}input{min-height:36px;border:1px solid var(--border);border-radius:6px;padding:0 10px;background:#ffffff;color:var(--text)}.shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);background:#ffffff;padding:12px 24px}.brand{font-weight:700}.nav{display:flex;gap:8px}.nav a{border-radius:6px;color:var(--muted);padding:8px 10px}.nav a:hover{background:#eef2f7;color:var(--text)}.main{margin:0 auto;max-width:1120px;padding:24px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.page-header h1{margin:0 0 6px;font-size:24px}.muted,.page-header p{color:var(--muted);margin:0}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:16px}.form-row{grid-template-columns:minmax(180px,1fr) minmax(220px,2fr) auto}.form-row,.list{display:grid;grid-gap:10px;gap:10px}.item{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1.5fr) auto;align-items:center;grid-gap:12px;gap:12px;border:1px solid var(--border);border-radius:8px;padding:12px}.keyword-item{grid-template-columns:minmax(180px,1.2fr) 110px minmax(180px,1fr) auto}.actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.status{color:var(--muted)}.error,.status{margin:10px 0 0}.error{color:var(--danger)}@media (max-width:760px){.page-header,.topbar{align-items:flex-start;flex-direction:column}.main{padding:18px}.form-row,.item,.keyword-item{grid-template-columns:1fr}.actions{justify-content:flex-start}}