:root{--bg:#faf9f5;--bg-tint:#f5f4ed;--panel:#fff;--panel-elevated:#fff;--border:#3c321e1a;--border-strong:#3c321e2e;--divider:#3c321e12;--text:#3d3929;--text-secondary:#5c5644;--muted:#807767;--muted-light:#a6a09a;--primary:#c8362d;--primary-hover:#b22f28;--primary-active:#9c2922;--primary-light:#c8362d12;--primary-tint:#c8362d29;--primary-fg:#fff;--sage:#7c957c;--sage-bg:#7c957c1a;--sage-border:#7c957c3d;--danger:#c8362d;--danger-bg:#c8362d12;--danger-border:#c8362d33;--ok:#4d8b5c;--ok-bg:#4d8b5c17;--ok-border:#4d8b5c38;--warn:#a8771a;--warn-bg:#a8771a17;--warn-border:#a8771a38;--info:#4f7cc4;--info-bg:#4f7cc417;--info-border:#4f7cc438;--accent:#f0eee6;--hover-bg:#3c321e0a;--header-text:#6b6353;--surface:#f5f4ed;--surface-soft:#f0eee6;--surface-warn:var(--warn-bg);--surface-error:var(--danger-bg);--bg-ok:var(--ok-bg);--bd-ok:var(--ok-border);--bg-warn:var(--warn-bg);--bd-warn:var(--warn-border);--bg-danger:var(--danger-bg);--bd-danger:var(--danger-border);--bg-info:var(--info-bg);--bd-info:var(--info-border);--input-bg:#fff;--focus-ring:#c8362d2e;--sidebar-bg:#f0eee6;--sidebar-text:#5c5644;--sidebar-text-strong:#3d3929;--sidebar-border:#3c321e14;--sidebar-hover:#3c321e0a;--sidebar-section:#948b7c;--sidebar-active-bg:#ffffffd9;--sidebar-active-fg:#3d3929;--sidebar-active-bar:var(--primary);--shadow-sm:0 1px 2px #3c321e0a;--shadow:0 1px 3px #3c321e0d, 0 6px 16px #3c321e0a;--shadow-md:0 2px 6px #3c321e0f, 0 12px 28px #3c321e0f;--shadow-lg:0 8px 24px #3c321e1a, 0 24px 56px #3c321e14;--tooltip-bg:#2d2a24;--tooltip-fg:#faf9f5;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-pill:999px;--ease:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--t-fast:.12s;--t-base:.2s;--t-slow:.32s;--font-size:14px;--table-font-size:13px;--row-padding-y:10px;--row-padding-x:14px;--panel-pad-y:22px;--panel-pad-x:24px;--panel-mb:20px;--field-mb:14px;--section-gap:28px;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Meiryo", "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Menlo", "Consolas", monospace;font-family:var(--font-sans);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01", "cv11", "tnum";text-rendering:optimizelegibility}[data-theme=dark]{--bg:#1f1e1b;--bg-tint:#262522;--panel:#2a2825;--panel-elevated:#322f2b;--border:#fffaeb1a;--border-strong:#fffaeb2e;--divider:#fffaeb0f;--text:#ece7da;--text-secondary:#c8c1b0;--muted:#978f7e;--muted-light:#6f6859;--primary:#e5685b;--primary-hover:#ed7c70;--primary-active:#d45448;--primary-light:#e5685b1f;--primary-tint:#e5685b38;--primary-fg:#fff;--sage:#9db59e;--sage-bg:#9db59e1f;--sage-border:#9db59e3d;--danger:#e5685b;--danger-bg:#e5685b1f;--danger-border:#e5685b3d;--ok:#7bb58a;--ok-bg:#7bb58a1a;--ok-border:#7bb58a38;--warn:#d9a540;--warn-bg:#d9a5401a;--warn-border:#d9a54038;--info:#7aa0e0;--info-bg:#7aa0e01a;--info-border:#7aa0e038;--accent:#322f2b;--hover-bg:#fffaeb0a;--header-text:#978f7e;--surface:#262522;--surface-soft:#322f2b;--surface-warn:var(--warn-bg);--surface-error:var(--danger-bg);--input-bg:#2a2825;--focus-ring:#e5685b4d;--sidebar-bg:#181715;--sidebar-text:#b5ae9f;--sidebar-text-strong:#ece7da;--sidebar-border:#fffaeb0f;--sidebar-hover:#fffaeb0a;--sidebar-section:#7f7768;--sidebar-active-bg:#fffaeb14;--sidebar-active-fg:#ece7da;--sidebar-active-bar:var(--primary);--tooltip-bg:#0f0e0d;--tooltip-fg:#ece7da}[data-density=compact]{--font-size:12.5px;--table-font-size:12px;--row-padding-y:5px;--row-padding-x:8px;--panel-pad-y:14px;--panel-pad-x:16px;--panel-mb:14px;--field-mb:10px;--section-gap:16px}[data-density=comfortable]{--font-size:15px;--table-font-size:14px;--row-padding-y:14px;--row-padding-x:16px;--panel-pad-y:28px;--panel-pad-x:32px;--panel-mb:28px;--field-mb:18px;--section-gap:32px}*{box-sizing:border-box}html,body{height:100%}*{scrollbar-width:thin;scrollbar-color:#3c321e2e transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#3c321e2e padding-box content-box;border:2px solid #0000;border-radius:999px;transition:background-color .15s}::-webkit-scrollbar-thumb:hover{background-color:#3c321e52;background-clip:content-box}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-button{display:none}[data-theme=dark] *{scrollbar-color:#fffaeb29 transparent}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#fffaeb29 padding-box content-box}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background-color:#fffaeb47;background-clip:content-box}@keyframes tooltipFadeIn{0%{opacity:0;transform:var(--tt-tx,translate(-50%, -2px))}to{opacity:1}}body{background:var(--bg);font-size:var(--font-size);color:var(--text);margin:0;line-height:1.55;overflow:hidden}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--sidebar-bg);width:232px;color:var(--sidebar-text);height:100vh;transition:margin-left var(--t-base) var(--ease), width var(--t-base) var(--ease);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar.closed{margin-left:-232px}.sidebar h1{color:var(--sidebar-text-strong);border-bottom:1px solid var(--sidebar-border);letter-spacing:-.005em;margin:0;padding:22px 56px 18px 22px;font-size:14px;font-weight:600}.sidebar nav{flex:1;padding:10px;overflow-y:auto}.sidebar nav a{color:var(--sidebar-text);letter-spacing:-.003em;transition:background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);border-radius:7px;align-items:center;gap:10px;margin:1px 0;padding:8px 12px;font-size:13px;text-decoration:none;display:flex;position:relative}.sidebar nav a>svg{opacity:.78;transition:opacity var(--t-fast) var(--ease);flex-shrink:0}.sidebar nav a:hover>svg,.sidebar nav a.active>svg{opacity:1}.sidebar nav a>span{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar nav a:hover{background:var(--sidebar-hover);color:var(--sidebar-text-strong)}.sidebar nav a.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-fg);box-shadow:0 1px 2px #3c321e0a, 0 0 0 1px var(--sidebar-border);font-weight:600}.sidebar .nav-section{color:var(--sidebar-section);text-transform:uppercase;letter-spacing:.1em;padding:18px 14px 6px;font-size:10.5px;font-weight:600}.sidebar .userbox{border-top:1px solid var(--sidebar-border);padding:14px 18px;font-size:12.5px}.sidebar .userbox .role{background:var(--sidebar-border);letter-spacing:.05em;border-radius:10px;margin-left:6px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-block}.sidebar .userbox button{width:100%;margin-top:10px;font-size:12px}.sidebar-toggle{z-index:100;width:28px;height:28px;color:var(--muted);cursor:pointer;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0;line-height:1;transition:left .22s,background-color .15s,color .15s;display:flex;position:fixed;top:16px;left:200px}.sidebar-toggle.closed{left:12px}.sidebar-toggle:hover{background:var(--hover-bg);color:var(--text)}.app-fabnav{height:100vh;display:block;overflow:hidden}.main-fabnav{min-width:0;height:100vh;padding:72px 24px 32px 72px;overflow:auto}.user-pill-avatar{z-index:999;position:fixed;top:14px;right:14px}.user-pill-avatar .avatar-circle{background:var(--primary,#1f4e79);color:#fff;border:1px solid var(--border-strong,#999);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:14px;font-weight:700;transition:transform .12s,box-shadow .12s;display:flex;box-shadow:0 2px 6px #0000001f}.user-pill-avatar .avatar-circle:hover{transform:scale(1.05);box-shadow:0 3px 10px #0000002e}.user-pill-avatar .avatar-popover{background:var(--panel);border:1px solid var(--border,#d7d3c4);border-radius:8px;min-width:180px;padding:10px 12px;font-size:12px;animation:.14s ease-out avatarPopover;position:absolute;top:44px;right:0;box-shadow:0 6px 20px #00000024}@keyframes avatarPopover{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-pill-avatar .avatar-name{color:var(--text);margin-bottom:2px;font-size:13px;font-weight:600}.user-pill-avatar .avatar-role{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:var(--surface,#f5f4ed);border-radius:6px;margin-bottom:10px;padding:1px 6px;font-size:10px;display:inline-block}.user-pill-avatar .avatar-logout{border:1px solid var(--border);width:100%;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:6px 8px;font-size:11px;display:block}.user-pill-avatar .avatar-logout:hover{background:var(--hover-bg);color:var(--text)}.main{flex:1;min-width:0;height:100vh;padding:0 32px 32px;overflow:auto}.tabbar{background:var(--bg);border-bottom:1px solid var(--border);z-index:10;gap:2px;margin:0 -32px 24px;padding:10px 32px 0 60px;display:flex;position:sticky;top:0}.tab-button{color:var(--muted);cursor:pointer;letter-spacing:-.003em;box-shadow:none;transition:color var(--t-fast) var(--ease);background:0 0;border:none;border-radius:0;padding:10px 14px 12px;font-size:13px;font-weight:500;text-decoration:none;position:relative}.tab-button:hover{color:var(--text);background:0 0}.tab-button.active{color:var(--text);font-weight:600}.tab-button.active:after{content:"";background:var(--text);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:8px;right:8px}.main h2{letter-spacing:-.02em;color:var(--text);margin:4px 0 6px;font-size:26px;font-weight:700;line-height:1.2}.main .subtitle{color:var(--muted);margin:0 0 var(--section-gap);max-width:72ch;font-size:13.5px;line-height:1.6}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--panel-pad-y) var(--panel-pad-x);margin-bottom:var(--panel-mb);box-shadow:var(--shadow-sm)}.panel h3{letter-spacing:-.005em;color:var(--text);margin:0 0 14px;font-size:15px;font-weight:600}.cards{flex-wrap:wrap;gap:14px;margin-bottom:22px;display:flex}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:184px;box-shadow:var(--shadow-sm);transition:box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);padding:18px 22px}.card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.card .label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;font-weight:500}.card .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);margin-top:6px;font-size:28px;font-weight:600}.card .value .unit{color:var(--muted);letter-spacing:0;margin-left:2px;font-size:14px;font-weight:500}.card.card-accent{background:var(--primary-light);border-color:var(--primary-tint);position:relative}.card.card-accent:before{content:"";background:var(--primary);border-radius:var(--radius) var(--radius) 0 0;height:2px;position:absolute;top:0;left:0;right:0}table{border-collapse:collapse;width:100%;font-size:var(--table-font-size)}th,td{text-align:left;padding:var(--row-padding-y) var(--row-padding-x);border-bottom:1px solid var(--divider)}th{color:var(--header-text);white-space:nowrap;letter-spacing:.01em;border-bottom:1px solid var(--border);background:0 0;padding-top:10px;padding-bottom:10px;font-size:12px;font-weight:500}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr{transition:background-color var(--t-fast) var(--ease)}tbody tr:hover{background:var(--hover-bg)}tbody tr:last-child td{border-bottom:none}label{color:var(--text-secondary);letter-spacing:-.003em;margin-bottom:6px;font-size:12px;font-weight:500;display:block}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--input-bg);color:var(--text);width:100%;transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);border-radius:7px;padding:8px 12px}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--focus-ring);outline:none}textarea{resize:vertical}.field{margin-bottom:var(--field-mb)}.row{flex-wrap:wrap;gap:14px;display:flex}.row .field{flex:1;min-width:130px}button{font:inherit;border:1px solid var(--primary);background:var(--primary);color:var(--primary-fg);cursor:pointer;letter-spacing:-.003em;transition:background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);box-shadow:var(--shadow-sm);border-radius:7px;padding:7px 14px;font-size:13px;font-weight:500}button:hover{background:var(--primary-hover);border-color:var(--primary-hover)}button:active{box-shadow:none;transform:scale(.98)}button:focus-visible{box-shadow:0 0 0 4px var(--focus-ring);outline:none}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button.secondary{background:var(--panel);color:var(--text);border-color:var(--border-strong)}button.secondary:hover{background:var(--accent);border-color:var(--border-strong);color:var(--text)}button.ghost{color:var(--text-secondary);box-shadow:none;background:0 0;border-color:#0000}button.ghost:hover{background:var(--hover-bg);color:var(--text);border-color:#0000}button.danger{background:var(--danger);border-color:var(--danger)}button.danger:hover{filter:brightness(.94)}button.small{border-radius:6px;padding:4px 10px;font-size:11.5px}button.icon{min-width:30px;padding:6px 8px}.badge{border-radius:var(--radius-pill);letter-spacing:.01em;align-items:center;padding:2px 9px;font-size:11px;font-weight:600;line-height:1.5;display:inline-flex}.badge.available{background:var(--ok-bg);color:var(--ok)}.badge.low{background:var(--warn-bg);color:var(--warn)}.badge.depleted{background:var(--danger-bg);color:var(--danger)}.badge.pending{background:var(--warn-bg);color:var(--warn)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.alert{border-radius:var(--radius-sm);letter-spacing:-.003em;border:1px solid;margin-bottom:14px;padding:11px 14px;font-size:13px;line-height:1.55}.alert.error{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.alert.success{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-border)}.alert.info{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}.alert.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-border)}.muted{color:var(--muted)}.spacer{height:14px}.inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}code,.mono{font-family:var(--font-mono);letter-spacing:0;font-variant-numeric:tabular-nums;font-size:.92em}kbd{font-size:.85em;font-family:var(--font-sans);background:var(--panel-elevated);color:var(--text);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-weight:500;line-height:1.3;display:inline-block}td code{background:var(--hover-bg);color:var(--text);border-radius:4px;padding:1px 6px;font-weight:500}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--primary);cursor:pointer}::selection{background:var(--primary-tint);color:var(--text)}td.discr-mid{color:var(--warn);background:#d495331a}td.discr-large{color:var(--danger);background:#c8362d1a;font-weight:600}.table-scroll{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel);scrollbar-gutter:stable;max-height:70vh;overflow:auto}.table-scroll>table{min-width:max-content}.table-scroll>table th,.table-scroll>table td{white-space:nowrap}.table-scroll::-webkit-scrollbar{width:12px;height:12px}.table-scroll::-webkit-scrollbar-track{background:var(--surface)}.table-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--surface);border-radius:6px}.table-scroll::-webkit-scrollbar-thumb:hover{background:var(--muted)}.calendar-wrap{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel);scrollbar-gutter:stable;max-height:75vh;overflow:auto}.calendar-wrap::-webkit-scrollbar{width:12px;height:12px}.calendar-wrap::-webkit-scrollbar-track{background:var(--surface-soft,#f0f4f8)}.calendar-wrap::-webkit-scrollbar-thumb{background:var(--muted,#aab);border:2px solid var(--surface-soft,#f0f4f8);border-radius:6px}.calendar-wrap::-webkit-scrollbar-thumb:hover{background:var(--text,#555)}table.calendar{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12.5px}table.calendar th,table.calendar td{white-space:nowrap;border-bottom:1px solid var(--divider);border-right:1px solid var(--divider);padding:7px 10px}table.calendar th{background:var(--accent);letter-spacing:.01em;color:var(--header-text);border-bottom:1px solid var(--border);z-index:4;font-size:11.5px;font-weight:500;position:sticky;top:0}table.calendar td.day,table.calendar th.daycol{text-align:right;min-width:46px}table.calendar td.day{color:var(--muted)}table.calendar .pos{color:var(--ok);font-weight:500}table.calendar .neg{color:var(--text);font-weight:500}table.calendar th.today,table.calendar td.today{background:var(--primary-light);color:var(--primary-active);font-weight:600}table.calendar td.emphasize-blue,table.calendar th.emphasize-blue{background:var(--info-bg);color:var(--info)}table.calendar td.emphasize-green,table.calendar th.emphasize-green{background:var(--ok-bg);color:var(--ok)}table.calendar td.emphasize-orange,table.calendar th.emphasize-orange{background:var(--warn-bg);color:var(--warn)}table.calendar td.emphasize-red,table.calendar th.emphasize-red{background:var(--danger-bg);color:var(--danger)}table.calendar td.emphasize-bold,table.calendar th.emphasize-bold{font-weight:700}table.calendar .sticky-col{background:var(--panel);z-index:2;position:sticky}table.calendar thead .sticky-col{background:var(--accent);z-index:10}table.calendar tbody tr:hover .sticky-col{background:var(--hover-bg)}table.calendar tfoot td{background:var(--accent);border-top:1px solid var(--border-strong);z-index:3;font-weight:600;position:sticky;bottom:0}table.calendar tfoot td.sticky-col{z-index:5}table.sticky-head thead th{z-index:2;background:var(--accent);position:sticky;top:0}table.calendar tbody tr.selected td{background:#1a73e80f!important}table.calendar tbody tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--primary,#1a73e8)}table.calendar tbody tr{transition:background .1s}table.calendar tbody tr:hover td{background:#00000005}.print-latest-row,.print-latest-row td,.print-latest-row th,.print-latest-col,.print-latest-col td,.print-latest-col th{color:var(--danger,#c0392b)!important}@media print{.no-print,nav{display:none!important}.panel>.inline:has(select,input[type=date],button.ghost){display:none!important}.calendar-wrap{border:none!important;max-height:none!important;overflow:visible!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:10px}table.calendar th,table.calendar td{font-size:9.5px;padding:3px 5px!important}table.calendar th,table.calendar td.sticky-col,table.calendar th.sticky-col,table.calendar tfoot td{position:static!important}@page{margin:8mm;size:landscape}.print-only{display:revert!important}}body.print-mode .print-only{display:revert}.main.storage-editor-active{padding-bottom:8px;overflow:hidden}.storage-editor{flex-direction:column;height:100%;min-height:0;display:flex}.storage-editor .storage-alerts{flex-shrink:0;margin-bottom:8px}.storage-editor .storage-alerts .alert{margin-bottom:6px}.storage-layout-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:stretch;gap:16px;display:grid}.storage-editor .storage-layout-grid{flex:1;grid-template-columns:minmax(0,1fr) 320px;gap:12px;min-height:0}@media (width<=1100px){.storage-layout-grid{grid-template-columns:1fr}}.storage-top-toolbar{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;margin-bottom:8px;padding:8px 12px;font-size:12px;display:flex}.storage-top-toolbar .toolbar-title{flex-direction:column;flex-shrink:0;min-width:0;display:flex}.storage-top-toolbar .toolbar-title-name{white-space:nowrap;text-overflow:ellipsis;max-width:280px;font-size:14px;font-weight:700;line-height:1.2;overflow:hidden}.storage-top-toolbar .toolbar-title-meta{color:var(--muted);font-size:11px}.storage-top-toolbar .toolbar-spacer{flex:1}.segmented-control{border:1px solid var(--border);background:var(--panel-elevated);border-radius:6px;display:inline-flex;overflow:hidden}.segmented-control button{color:var(--text);border:none;border-right:1px solid var(--border);cursor:pointer;white-space:nowrap;box-shadow:none;background:0 0;padding:6px 12px;font-size:12px;font-weight:500}.segmented-control button:last-child{border-right:none}.segmented-control button.active{background:var(--primary,#1a73e8);color:#fff}.segmented-control button:hover:not(.active):not(:disabled){background:var(--hover-bg)}.segmented-control button:disabled{opacity:.4;cursor:not-allowed}.storage-top-toolbar .toolbar-search{align-items:center;display:inline-flex;position:relative}.storage-top-toolbar .toolbar-search input{border:1px solid var(--border);border-radius:6px;width:200px;height:30px;padding:0 28px;font-size:12px}.storage-top-toolbar .toolbar-search .search-icon{pointer-events:none;opacity:.6;position:absolute;left:8px}.storage-top-toolbar .toolbar-search .search-clear{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:2px 6px;font-size:11px;position:absolute;right:4px}.storage-top-toolbar .toolbar-icon-btn{border:1px solid var(--border);cursor:pointer;width:32px;height:30px;color:var(--text);box-shadow:none;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:16px;display:inline-flex}.storage-top-toolbar .segmented-control button{align-items:center;gap:4px;display:inline-flex}.storage-top-toolbar .toolbar-icon-btn:hover{background:var(--hover-bg)}.storage-top-toolbar .toolbar-icon-btn.active{background:var(--primary,#1a73e8);color:#fff;border-color:var(--primary,#1a73e8)}@media (pointer:coarse){.storage-top-toolbar .toolbar-icon-btn{min-width:40px;height:38px}}.storage-popover{z-index:100;background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:220px;padding:12px 14px;font-size:12px;position:absolute;box-shadow:0 8px 24px #00000026}.storage-popover .popover-title{text-transform:uppercase;color:var(--muted);letter-spacing:.5px;margin-bottom:6px;font-size:11px;font-weight:600}.storage-canvas-wrap{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:repeating-linear-gradient(45deg,#00000006 0 7px,#00000012 7px 14px);flex-direction:column;min-height:520px;display:flex;overflow:hidden}.storage-editor .storage-canvas-wrap{height:100%;min-height:0}.storage-canvas-toolbar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 10px;font-size:12px;display:flex}.canvas-tool-palette{background:var(--accent);border-radius:8px;align-items:center;gap:4px;padding:3px;display:inline-flex}.canvas-tool-palette .tool-btn{min-width:36px;height:32px;color:var(--text);cursor:pointer;box-shadow:none;transition:background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:1px solid #0000;border-radius:6px;padding:0 8px;font-size:16px;font-weight:500}.canvas-tool-palette .tool-btn:hover{background:var(--hover-bg)}.canvas-tool-palette .tool-btn.active{background:var(--panel-elevated);color:var(--primary);box-shadow:var(--shadow-sm)}@media (pointer:coarse){.canvas-tool-palette .tool-btn{min-width:44px;height:40px;font-size:18px}}.storage-canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;flex:1;width:100%;height:100%;min-height:480px}.storage-canvas:active{cursor:grabbing}.storage-side-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:75vh;padding:14px 16px;font-size:13px;overflow-y:auto}.storage-editor .storage-side-panel{height:100%;max-height:100%;box-shadow:var(--shadow-sm);flex-direction:column;padding:0;font-size:12.5px;display:flex}.storage-editor .side-section{border-bottom:1px solid var(--border);padding:12px 14px}.storage-editor .side-section:last-child{border-bottom:none}.storage-editor .side-section-head{background:var(--accent);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.storage-editor .side-section-flex{flex:1;min-height:0;overflow-y:auto}.storage-editor .side-section-bottom{background:var(--accent);border-top:1px solid var(--border-strong);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.storage-editor .side-section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:10.5px;font-weight:700}.storage-editor .side-section .field{margin-bottom:6px}.storage-editor .side-section label{margin-bottom:3px;font-size:11px}.storage-editor .item-row{border-bottom:1px dashed var(--border);align-items:flex-start;gap:6px;padding:8px 0;display:flex}.storage-editor .item-row:last-child{border-bottom:none}.storage-side-panel h4{margin:0 0 10px;font-size:14px;font-weight:600}.storage-side-panel .legend{margin:0 0 12px;padding:0;font-size:12px;list-style:none}.storage-side-panel .legend li{align-items:center;gap:8px;padding:3px 0;display:flex}.storage-side-panel .legend .sw{border:1px solid var(--border-strong);border-radius:2px;width:18px;height:12px;display:inline-block}.storage-side-panel .item-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:6px;padding:8px 0;display:flex}.storage-side-panel .item-row:last-child{border-bottom:none}.storage-side-panel.pinned{position:relative}.storage-side-panel.overlay{z-index:20;border-left:1px solid var(--border-strong);background:var(--panel);width:320px;animation:.18s ease-out side-panel-slide-in;position:absolute;top:0;bottom:0;right:0;box-shadow:-4px 0 12px #00000014}@keyframes side-panel-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.storage-side-grip{background:var(--panel);border:1px solid var(--border-strong);cursor:pointer;z-index:18;border-right:none;border-radius:6px 0 0 6px;justify-content:center;align-items:center;width:14px;height:80px;padding:0;transition:background .12s,width .12s;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%);box-shadow:-2px 0 6px #0000000f}.storage-side-grip:before{content:"";background:var(--muted,#5c5644);opacity:.5;border-radius:2px;width:3px;height:28px;transition:opacity .12s;display:block}.storage-side-grip:hover{background:var(--hover-bg);width:18px}.storage-side-grip:hover:before{opacity:.9}.storage-side-panel-header{justify-content:flex-end;gap:4px;padding:6px 8px 0;display:flex}.side-pin-btn,.side-close-btn{cursor:pointer;width:28px;height:28px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:14px;display:inline-flex}.side-pin-btn:hover,.side-close-btn:hover{background:var(--hover-bg);border-color:var(--border);color:var(--text)}.side-pin-btn.active{background:var(--primary,#1f4e79);color:#fff;border-color:var(--primary,#1f4e79)}:is(.storage-layout-grid:has(.storage-side-panel.overlay),.storage-layout-grid:not(:has(.storage-side-panel))),:is(.storage-editor .storage-layout-grid:has(.storage-side-panel.overlay),.storage-editor .storage-layout-grid:not(:has(.storage-side-panel))){grid-template-columns:minmax(0,1fr)}.storage-layout-grid,.storage-editor .storage-layout-grid{position:relative}.auth-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:400px;box-shadow:var(--shadow-md);padding:36px 40px}.auth-card h1{margin:0 0 8px;font-size:19px;font-weight:700}.option-card{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);align-items:flex-start;gap:12px;min-width:180px;padding:14px 16px;transition:all .15s;display:flex}.option-card:hover{border-color:var(--border-strong)}.option-card.selected{border-color:var(--primary);background:var(--primary-light);box-shadow:0 0 0 1px var(--primary)}.option-card input[type=radio]{flex-shrink:0;width:auto;margin:2px 0 0}.option-card .opt-body{flex:1}.option-card .opt-title{font-size:13.5px;font-weight:600}.option-card .opt-desc{color:var(--muted);margin-top:2px;font-size:12px}.combobox{font-size:inherit}.combobox-trigger:hover:not(:disabled){border-color:var(--primary)!important}.combobox-dropdown{z-index:60;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);max-height:280px;box-shadow:var(--shadow-md);padding:4px 0;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.combobox-option{cursor:pointer;color:var(--text);border-radius:4px;margin:0 4px;padding:7px 12px;font-size:13px}.combobox-option.highlight{background:var(--primary-light);color:var(--primary-active)}.combobox-empty{text-align:center;color:var(--muted);padding:12px;font-size:12px}.combobox-more{color:var(--muted-light);border-top:1px solid var(--border);margin-top:4px;padding:6px 12px;font-size:11px}.popover{z-index:50;background:var(--panel-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:260px;max-height:70vh;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:saturate(180%)blur(20px);animation:popover-in var(--t-base) var(--ease-out);transform-origin:100% 0;padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}@keyframes popover-in{0%{opacity:0;transform:scale(.96)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.popover-header{color:var(--text);letter-spacing:-.003em;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.popover-section{padding:2px 0}.popover-section+.popover-section{border-top:1px solid var(--divider);margin-top:4px;padding-top:6px}.popover-section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:6px 10px 4px;font-size:10.5px;font-weight:600}.popover-item{cursor:pointer;color:var(--text);transition:background-color var(--t-fast) var(--ease);border-radius:6px;align-items:center;gap:8px;margin:0;padding:6px 10px;font-size:13px;font-weight:400;display:flex}.popover-item:hover{background:var(--hover-bg)}.popover-item input{margin:0}.column-list{flex-direction:column;gap:6px;display:flex}.column-row{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 10px;transition:border-color .15s,box-shadow .15s;display:flex}.column-row.disabled{opacity:.55}.column-row .drag-handle{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;padding:0 4px;font-size:14px}.column-row .col-label{flex:1;font-size:13px;font-weight:500}.column-row select.emphasis{width:auto;min-width:120px;padding:4px 8px;font-size:12px}.column-row .order-btns{flex-direction:column;gap:1px;display:flex}.column-row .order-btns button{min-width:22px;padding:2px 6px;font-size:10px;line-height:1}@media print{@page{size:A3 landscape;margin:12mm}body{background:#fff;overflow:visible}.sidebar,.sidebar-toggle,.tabbar,.user-pill,.user-pill-avatar,.panel>.inline:first-child{display:none!important}.main-fabnav{padding:0!important}.app,.main{height:auto!important;overflow:visible!important}.main{padding:0!important}.panel{box-shadow:none;break-inside:avoid;page-break-inside:avoid;border:none;margin:0;padding:0}.calendar-wrap{border:1px solid #000!important;overflow:visible!important}table.calendar{width:100%!important;font-size:9px!important}table.calendar th,table.calendar td{border-bottom:1px solid #ccc!important;border-right:1px solid #ccc!important;padding:3px 5px!important}table.calendar .sticky-col,table.calendar tfoot td{position:static!important}.print-only{display:block!important}.no-print{display:none!important}.storage-layout-grid{display:block!important}.storage-side-panel,.storage-canvas-toolbar{display:none!important}.storage-canvas-wrap{page-break-inside:avoid;border:1px solid #000!important;min-height:0!important}.storage-canvas{aspect-ratio:var(--print-aspect,auto);background:#fff!important;width:100%!important;height:auto!important;min-height:0!important}}.print-only{display:none}.recipe-product-block .recipe-edit-link{opacity:0;transition:opacity .12s}.recipe-product-block:hover .recipe-edit-link{opacity:1}.recipe-edit-link:hover{text-decoration:underline}
