:root,[data-theme=midnight]{--bg: #0f172a;--panel: #1e293b;--panel-2: #334155;--border: #334155;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--accent-2: #0ea5e9;--accent-tint: rgba(56, 189, 248, .14);--hover-bg: #475569;--danger: #ef4444;--ok: #22c55e;--shadow: 0 4px 12px rgba(0, 0, 0, .35)}[data-theme=light]{--bg: #f8fafc;--panel: #ffffff;--panel-2: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--accent: #0284c7;--accent-2: #0369a1;--accent-tint: rgba(2, 132, 199, .12);--hover-bg: #e2e8f0;--danger: #dc2626;--ok: #16a34a;--shadow: 0 4px 12px rgba(15, 23, 42, .1)}[data-theme=silver]{--bg: #d1d5db;--panel: #f3f4f6;--panel-2: #e5e7eb;--border: #9ca3af;--text: #111827;--muted: #4b5563;--accent: #1f2937;--accent-2: #111827;--accent-tint: rgba(31, 41, 55, .12);--hover-bg: #d1d5db;--danger: #b91c1c;--ok: #15803d;--shadow: 0 4px 12px rgba(17, 24, 39, .15)}[data-theme=forest]{--bg: #0d1f17;--panel: #14321f;--panel-2: #1e4a2e;--border: #2d6a41;--text: #dcfce7;--muted: #86efac;--accent: #4ade80;--accent-2: #22c55e;--accent-tint: rgba(74, 222, 128, .14);--hover-bg: #2d6a41;--danger: #f87171;--ok: #4ade80;--shadow: 0 4px 12px rgba(0, 0, 0, .4)}[data-theme=sunset]{--bg: #1a0f0f;--panel: #2b1510;--panel-2: #4a241a;--border: #6b3626;--text: #fed7aa;--muted: #fb923c;--accent: #f97316;--accent-2: #ea580c;--accent-tint: rgba(249, 115, 22, .16);--hover-bg: #6b3626;--danger: #f87171;--ok: #fbbf24;--shadow: 0 4px 12px rgba(0, 0, 0, .4)}[data-theme=purple]{--bg: #1a0b2e;--panel: #2d1649;--panel-2: #4c1d95;--border: #6d28d9;--text: #ede9fe;--muted: #c4b5fd;--accent: #a78bfa;--accent-2: #8b5cf6;--accent-tint: rgba(167, 139, 250, .14);--hover-bg: #6d28d9;--danger: #f87171;--ok: #34d399;--shadow: 0 4px 12px rgba(0, 0, 0, .4)}[data-theme=teal]{--bg: #042f2e;--panel: #134e4a;--panel-2: #115e59;--border: #0f766e;--text: #ccfbf1;--muted: #5eead4;--accent: #2dd4bf;--accent-2: #14b8a6;--accent-tint: rgba(45, 212, 191, .14);--hover-bg: #0f766e;--danger: #f87171;--ok: #4ade80;--shadow: 0 4px 12px rgba(0, 0, 0, .4)}[data-theme=ocean]{--bg: #0c1429;--panel: #162449;--panel-2: #1e3a8a;--border: #1d4ed8;--text: #dbeafe;--muted: #93c5fd;--accent: #60a5fa;--accent-2: #3b82f6;--accent-tint: rgba(96, 165, 250, .14);--hover-bg: #1d4ed8;--danger: #f87171;--ok: #34d399;--shadow: 0 4px 12px rgba(0, 0, 0, .4)}:root{--radius: 12px}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;max-width:100%;overflow-x:hidden}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--border);padding:8px 14px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .1s,border-color .1s}button:hover:not(:disabled){background:var(--hover-bg)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent-2);border-color:var(--accent-2);color:#fff}button.primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}button.danger{background:transparent;color:var(--danger);border-color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger);color:#fff}input,textarea{font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;width:100%}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.muted{color:var(--muted);font-weight:400}.error{color:var(--danger);background:var(--accent-tint);padding:8px 12px;border-radius:6px;font-size:14px}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:32px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow)}.login-card h1{margin:0 0 8px;font-size:22px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:14px}.login-card button{justify-content:center}.app{display:flex;flex-direction:column;width:100%;max-width:100%;height:100vh;height:100dvh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--panel);border-bottom:1px solid var(--border);gap:8px;min-width:0;width:100%}.app-header h1{margin:0;font-size:16px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.header-right{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;flex-shrink:0}@media (min-width: 600px){.app-header{padding:12px 16px;gap:12px}.app-header h1{font-size:18px}.header-right{gap:8px}}@media (max-width: 480px){.header-right .new-item-label{display:none}}.conn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--panel-2);flex-shrink:0}.conn.online{color:var(--ok)}.conn.offline{color:var(--muted)}main{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0;width:100%}.app-footer{text-align:center;padding:10px 8px;font-size:10px;color:var(--muted);opacity:.6;line-height:1.4;flex-shrink:0}.board{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:1fr;gap:8px;padding:8px;min-width:0}@media (min-width: 900px){.board{gap:12px;padding:12px}}.location{background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;min-width:0;transition:border-color .1s,background .1s}.location.is-over{border-color:var(--accent);background:var(--accent-tint)}.location>header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.location>header h2{margin:0;font-size:15px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.location>header .count{background:var(--panel-2);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:13px;flex-shrink:0}.location-body{flex:1;padding:6px;display:flex;flex-direction:column;gap:6px}.empty{color:var(--muted);text-align:center;padding:32px 12px;font-size:14px;border:2px dashed var(--border);border-radius:8px;margin:8px}.item-card{display:flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;min-width:0}.item-card:active{cursor:grabbing}.item-card.overlay{box-shadow:var(--shadow);transform:rotate(1deg) scale(1.02)}.item-icon{width:24px;height:24px;display:grid;place-items:center;background:var(--bg);border-radius:5px;color:var(--accent);flex-shrink:0;line-height:0;overflow:hidden}.item-icon svg{display:block;width:14px!important;height:14px!important;margin:0;padding:0}.item-card.out-of-stock{background:#991b1b;border-color:#dc2626;color:#fecaca}.item-card.out-of-stock .item-icon{color:#fca5a5;background:#00000040}.item-card.out-of-stock .item-name{color:#fef2f2}.item-card.out-of-stock .item-desc{color:#fca5a5}.item-body{flex:1;min-width:0;overflow:hidden}.item-name,.item-desc{white-space:nowrap;overflow:hidden;-webkit-mask-image:linear-gradient(to right,black calc(100% - 16px),transparent 100%);mask-image:linear-gradient(to right,black calc(100% - 16px),transparent 100%)}.item-name{font-weight:600;font-size:14px;line-height:1.2}.item-desc{color:var(--muted);font-size:12px;line-height:1.2}@media (min-width: 600px){.item-name{font-size:15px}.item-desc{font-size:13px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--panel);color:var(--text);border-radius:var(--radius);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}.modal label{display:flex;flex-direction:column;gap:6px;font-size:14px;flex-shrink:0}.modal footer{display:flex;gap:8px;margin-top:4px;flex-shrink:0}.modal footer .spacer{flex:1}.form-top{display:flex;align-items:center;gap:12px;flex-shrink:0}.icon-preview-btn{width:64px;height:64px;background:var(--bg);border:2px solid var(--border);border-radius:12px;color:var(--accent);padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer}.icon-preview-btn:hover{border-color:var(--accent);background:var(--panel-2)}.name-input{flex:1;min-width:0;font-size:20px;font-weight:700;background:transparent;border:none;border-bottom:2px solid var(--border);border-radius:0;padding:6px 2px;color:var(--text)}.name-input:focus{outline:none;border-bottom-color:var(--accent)}.name-input::placeholder{color:var(--muted);font-weight:400}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;font-size:15px;flex-shrink:0}.toggle-switch{position:relative;width:48px;height:28px;background:var(--panel-2);border:2px solid var(--border);border-radius:999px;padding:0;cursor:pointer;transition:background .15s,border-color .15s;flex-shrink:0}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--muted);border-radius:50%;transition:transform .15s,background .15s}.toggle-switch.on{background:var(--danger);border-color:var(--danger)}.toggle-switch.on:after{transform:translate(20px);background:#fff}.icon-picker-view{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.icon-picker-view-header{display:flex;align-items:center;gap:10px;flex-shrink:0}.icon-picker-view-header h2{margin:0;font-size:18px}.icon-picker-view .icon-picker{flex:1;min-height:0;display:flex;flex-direction:column}.icon-picker-view .icon-grid{flex:1;min-height:0;max-height:none}@media (max-width: 600px){.modal-backdrop{padding:0;align-items:stretch;justify-content:stretch}.modal{width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:0;padding:16px;overflow:hidden}.modal .icon-picker{flex:1;min-height:0;display:flex;flex-direction:column}.modal .icon-grid{flex:1;min-height:0;max-height:none}}.icon-picker{background:var(--bg);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.icon-picker-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 8px 8px}.icon-section{margin-top:4px}.icon-section-header{margin:0 0 6px;padding:10px 4px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);position:sticky;top:0;background:var(--bg);z-index:1}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.icon-tile{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:0;color:var(--text)}.icon-tile:hover{background:var(--panel-2);color:var(--accent)}.icon-tile.selected{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}.backup-panel{display:flex;align-items:center;gap:6px;border-left:1px solid var(--border);padding:4px 8px 4px 12px}.backup-panel button{font-size:13px;padding:6px 10px}.backup-msg{color:var(--muted);font-size:13px}.theme-picker{position:relative}.theme-picker>button{padding:6px 10px}.theme-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:2px;z-index:30}.theme-option{display:flex;align-items:center;gap:10px;padding:6px 8px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);text-align:left;width:100%;font-size:14px}.theme-option:hover{background:var(--panel-2)}.theme-option .theme-label{flex:1;min-width:0}.theme-swatch{width:22px;height:22px;border-radius:6px;border:1px solid var(--border);position:relative;overflow:hidden;flex-shrink:0}.theme-swatch:after{content:"";position:absolute;right:0;top:0;bottom:0;width:50%;background:var(--swatch-accent)}.theme-option .check{color:var(--accent);flex-shrink:0}
