:root{--bg: oklch(98% .005 100);--surface: #ffffff;--text: oklch(20% .02 280);--muted: oklch(50% .02 280);--accent: oklch(60% .13 340);--accent-bg: oklch(96% .04 340);--border: oklch(90% .01 280);--error-bg: oklch(95% .05 25);--error-fg: oklch(40% .15 25);--radius: 10px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,system-ui,sans-serif;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.container{max-width:1100px;margin:0 auto;padding:24px}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.top-bar .brand a{font-weight:600;color:var(--text)}.top-bar nav{display:flex;align-items:center;gap:16px}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font:inherit}.link-btn:hover{text-decoration:underline}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 3px #0000000a}.login-card h1{font-size:20px;margin:0}.login-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.login-card input{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.login-card input:focus{outline:none;border-color:var(--accent);background:var(--surface)}.login-card button[type=submit]{font:inherit;padding:10px 14px;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;margin-top:6px}.login-card button[type=submit]:disabled{opacity:.6;cursor:progress}.error{background:var(--error-bg);color:var(--error-fg);padding:8px 12px;border-radius:8px;font-size:13px}.top-bar nav.tabs{display:flex;gap:4px;flex:1;margin-left:24px}.top-bar nav.tabs a{padding:6px 12px;border-radius:8px;color:var(--muted);font-weight:500}.top-bar nav.tabs a.active{background:var(--accent-bg);color:var(--accent)}.user-pill{display:flex;align-items:center;gap:12px}.container.narrow{max-width:640px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.page-head h2{margin:0}.btn{font:inherit;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{color:#fff;opacity:.9}.btn:disabled{opacity:.6;cursor:progress}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ok-msg{color:#21763c;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.card.sub{background:var(--bg);padding:14px}.card h3{margin:0 0 12px;font-size:16px}.card h4{margin:0 0 10px;font-size:14px}.form{display:flex;flex-direction:column;gap:12px}.form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.form label>span{color:var(--text);font-weight:500}.form input,.form textarea,.form select{font:inherit;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--accent);background:var(--surface)}.form textarea{font-family:ui-monospace,Menlo,Consolas,monospace;resize:vertical}.grid{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.grid th,.grid td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:14px}.grid th{background:var(--bg);font-weight:500;color:var(--muted)}.grid tbody tr:hover{background:var(--accent-bg)}.grid tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500}.badge.ok{background:#d0f7d6;color:#09672e}.badge.warn{background:#ffe8c2;background:oklch(94% .06 80);color:#774a00;color:oklch(45% .1 70)}.shop-picker{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.raw{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;background:var(--bg);padding:10px;border-radius:6px;border:1px solid var(--border);max-height:280px;overflow:auto}.fieldset{border:1px solid var(--border);border-radius:8px;padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px;margin:0}.fieldset legend{padding:0 6px;font-weight:500;font-size:13px;color:var(--accent)}.weekday-row{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px}.chip input{display:none}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.grid.compact th,.grid.compact td{padding:6px 10px;font-size:13px}.thumb{display:inline-block;width:44px;height:44px;object-fit:cover;border-radius:6px;border:1px solid var(--border);background:var(--bg)}.thumb.empty{background:repeating-linear-gradient(45deg,var(--bg),var(--bg) 4px,var(--surface) 4px,var(--surface) 8px)}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:12px}.image-tile{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg);display:flex;flex-direction:column}.image-tile img{width:100%;aspect-ratio:1 / 1;object-fit:cover}.image-tile-tools{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;background:var(--surface);gap:4px}.image-tile-tools .btn{padding:2px 8px;font-size:13px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:14px}.kv>span:nth-child(odd){color:var(--muted)}.map-grid{display:grid;grid-template-columns:1fr;gap:6px 12px}@media (min-width: 700px){.map-grid{grid-template-columns:repeat(2,1fr)}}.map-row{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:8px}.map-field{font-size:13px;color:var(--text)}.map-row input{font:inherit;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}
