:root{--bg: #f7f6f3;--surface: #ffffff;--border: #e6e3dd;--text: #2c2a26;--muted: #8a857c;--primary: #c0566a;--primary-dark: #a6435a;--warn: #d98324;--danger: #c0392b;--success: #1f8f5f;--radius: 12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);overflow:hidden}h1,h2,h3,h4{margin:0 0 .5rem}code{background:#efece6;padding:.1rem .3rem;border-radius:4px}.muted{color:var(--muted)}.stat{font-size:2rem;font-weight:700;margin:0}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.45rem .85rem;border-radius:8px;cursor:pointer;font-size:.9rem}.btn:not(.btn--icon){display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.btn:hover{border-color:var(--muted)}.btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn--primary:hover{background:var(--primary-dark)}.btn--ghost{background:transparent}.btn.warn{color:var(--warn)}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.6;cursor:default}.btn--icon{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center}.btn--icon svg{display:block}.centered-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.auth-card{width:100%;max-width:360px}.auth-card h1{margin-bottom:.25rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;margin-bottom:1rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-bottom:1rem}.kv{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right;font-weight:600}.app-shell{display:grid;grid-template-columns:230px minmax(0,1fr);height:100vh;overflow:hidden}.app-shell--collapsed{grid-template-columns:64px minmax(0,1fr)}.app-sidebar{min-height:0;background:var(--surface);border-right:1px solid var(--border);padding:1rem .75rem;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.app-brand{min-height:38px;display:flex;align-items:center;gap:.55rem;font-weight:700;font-size:1.05rem;margin-bottom:.9rem;color:var(--primary);white-space:nowrap}.app-brand-mark{width:34px;height:34px;border-radius:9px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;font-size:.78rem;font-weight:800}.app-brand-text{overflow:hidden;text-overflow:ellipsis}.sidebar-toggle{margin-left:auto;width:30px;height:30px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--muted);cursor:pointer}.sidebar-toggle:hover{color:var(--text);border-color:var(--muted)}.app-sidebar nav{display:flex;flex-direction:column;gap:.25rem}.nav-link{display:flex;align-items:center;gap:.55rem;min-height:38px;padding:.5rem .55rem;border-radius:8px;color:var(--text);text-decoration:none;font-size:.9rem;white-space:nowrap}.nav-link-icon{width:24px;height:24px;flex-shrink:0;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg);color:var(--muted);font-size:.72rem;font-weight:700}.nav-link-icon svg{display:block}.nav-link-text{overflow:hidden;text-overflow:ellipsis}.nav-link:hover{background:var(--bg)}.nav-link--active{background:var(--primary);color:#fff}.nav-link--active:hover{background:var(--primary-dark);color:#fff}.nav-link--active .nav-link-icon{background:#ffffff2e;color:#fff}.nav-link--active:hover .nav-link-icon{background:#ffffff3d;color:#fff}.app-shell--collapsed .app-brand{justify-content:center}.app-shell--collapsed .app-brand-mark,.app-shell--collapsed .app-brand-text,.app-shell--collapsed .nav-link-text{display:none}.app-shell--collapsed .sidebar-toggle{margin-left:0}.app-shell--collapsed .nav-link{justify-content:center;padding-left:0;padding-right:0}.app-shell--collapsed .nav-link-icon{background:transparent;color:inherit}.app-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.app-header{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface)}.app-header-left{display:flex;align-items:center;gap:.75rem;min-width:0}.app-header-user{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.impersonation-banner{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:1rem;padding:.55rem 1rem;background:#fbe6e6;border-bottom:1px solid #f2c4c4;color:var(--danger);font-size:.9rem;font-weight:650}.impersonation-banner .muted{color:#8f2d24;font-weight:500}.impersonation-banner .btn{border-color:#e8aaa3;color:var(--danger)}.mobile-menu-toggle{display:none}.app-content{flex:1;min-height:0;padding:1.5rem;overflow:auto;overscroll-behavior:contain}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.toolbar{margin-bottom:1rem}.tabs,.page-tabs{display:flex;gap:.35rem;margin:0 0 1rem;border:0;border-bottom:1px solid var(--border);border-radius:0;overflow-x:auto;background:transparent}.tab,.page-tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-weight:650;padding:.7rem .85rem;white-space:nowrap}.tab:hover,.page-tabs button:hover{color:var(--text);background:#fff6f8}.tab--active,.page-tabs button.is-active{color:var(--primary);border-bottom-color:var(--primary);background:#fff6f8}.tab--active:hover,.page-tabs button.is-active:hover{color:var(--primary)}.field--wide{grid-column:1 / -1}.embedded-panel{min-width:0}.stocktake-summary{display:flex;flex-wrap:wrap;gap:.6rem;margin:.75rem 0}.stocktake-summary span{background:#f4f1ea;border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem}.stocktake-scan-box{border:1px solid var(--border);border-radius:8px;padding:.75rem;margin:.75rem 0;background:#fbfaf7}.scan-input-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center}.text-strong{font-weight:750;color:var(--primary)}.stocktake-modal{width:min(1280px,calc(100vw - 2rem));max-width:min(1280px,calc(100vw - 2rem));overflow:hidden}.stocktake-modal .filter-table{--filter-sticky-top: 0px;overflow:hidden;max-width:100%}.stocktake-modal .filter-table__scroll{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;max-width:100%}.stocktake-modal .filter-table__table{min-width:960px}.stocktake-modal .filter-table__table th:nth-child(1),.stocktake-modal .filter-table__table td:nth-child(1){width:84px}.stocktake-modal .filter-table__table th:nth-child(2),.stocktake-modal .filter-table__table td:nth-child(2){min-width:250px}.stocktake-modal .filter-table__table th:nth-child(3),.stocktake-modal .filter-table__table td:nth-child(3),.stocktake-modal .filter-table__table th:nth-child(4),.stocktake-modal .filter-table__table td:nth-child(4),.stocktake-modal .filter-table__table th:nth-child(5),.stocktake-modal .filter-table__table td:nth-child(5){width:118px}.stocktake-modal .filter-table__table th:nth-child(6),.stocktake-modal .filter-table__table td:nth-child(6){min-width:230px}.stocktake-modal .filter-table__table td{background:var(--surface)}.stocktake-modal .filter-table__table .input{max-width:100%}.stocktake-modal .filter-table__table .input--sm{width:6.25rem}.stocktake-modal--scan .filter-table__table{table-layout:fixed;min-width:800px}.stocktake-modal--scan .filter-table__table th,.stocktake-modal--scan .filter-table__table td{padding:.42rem .45rem}.stocktake-modal--scan .filter-table__table th:nth-child(n),.stocktake-modal--scan .filter-table__table td:nth-child(n){min-width:0}.stocktake-modal--scan .filter-table__table th:nth-child(1),.stocktake-modal--scan .filter-table__table td:nth-child(1){width:230px}.stocktake-modal--scan .filter-table__table th:nth-child(2),.stocktake-modal--scan .filter-table__table td:nth-child(2){width:78px}.stocktake-modal--scan .filter-table__table th:nth-child(3),.stocktake-modal--scan .filter-table__table td:nth-child(3){width:68px}.stocktake-modal--scan .filter-table__table th:nth-child(4),.stocktake-modal--scan .filter-table__table td:nth-child(4){width:86px}.stocktake-modal--scan .filter-table__table th:nth-child(5),.stocktake-modal--scan .filter-table__table td:nth-child(5){width:92px}.stocktake-modal--scan .filter-table__table th:nth-child(6),.stocktake-modal--scan .filter-table__table td:nth-child(6){width:78px}.stocktake-modal--scan .filter-table__table th:nth-child(7),.stocktake-modal--scan .filter-table__table td:nth-child(7){width:78px}.stocktake-modal--scan .filter-table__table th:nth-child(8),.stocktake-modal--scan .filter-table__table td:nth-child(8){width:190px}.stocktake-modal--scan .filter-table__summary:empty{display:none}.stocktake-correction-input{width:4.8rem!important}.page-tabs button:last-child{border-right:0}.dashboard-page .page-head{margin-bottom:1.1rem}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-bottom:1rem}.dashboard-stat{min-height:112px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:.9rem 1rem;display:flex;flex-direction:column;justify-content:space-between}.dashboard-stat span{color:var(--muted);font-size:.82rem}.dashboard-stat strong{font-size:1.65rem;line-height:1.05}.dashboard-stat small{color:var(--muted);font-size:.78rem}.dashboard-stat--primary{border-color:#e4bdc7;background:#fff7f9}.dashboard-stat--warn{border-color:#efd3a6;background:#fff9ed}.dashboard-stat--danger{border-color:#efc0bb;background:#fff5f4}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:1rem;align-items:start}.dashboard-layout--wide-left{grid-template-columns:minmax(0,1.15fr) minmax(340px,.7fr)}.dashboard-bottom-grid{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(420px,1.15fr);gap:1rem;align-items:start}.dashboard-panel{min-width:0}.dashboard-panel--compact,.dashboard-panel--quick{height:fit-content}.dashboard-panel--movement{max-height:420px;overflow:hidden}.dashboard-panel__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.7rem}.dashboard-panel__head h3{margin:0}.dashboard-panel__head span{font-size:.82rem;white-space:nowrap}.dashboard-buckets{display:grid;gap:.55rem}.dashboard-bucket{border:1px solid var(--border);border-radius:8px;padding:.7rem .8rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;background:#fbfaf7}.dashboard-bucket div{display:flex;flex-direction:column;gap:.15rem}.dashboard-bucket span{color:var(--muted);font-size:.8rem}.dashboard-bucket b{font-size:1.25rem}.dashboard-queue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.dashboard-queue__item{min-height:48px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.5rem;align-items:center;border:1px solid var(--border);border-radius:8px;padding:.55rem .65rem;color:var(--text);text-decoration:none;background:#fbfaf7}.dashboard-queue__item:hover{border-color:var(--muted)}.dashboard-queue__icon{width:28px;height:28px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:#efece6;color:var(--primary)}.dashboard-queue__item span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}.dashboard-watch-list,.dashboard-movements,.dashboard-table{display:grid;gap:.5rem}.dashboard-movements{max-height:332px;overflow:auto;padding-right:.25rem}.dashboard-watch{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:.65rem;align-items:center;border:1px solid var(--border);border-radius:8px;padding:.48rem .6rem;background:#fbfaf7}.dashboard-watch img,.dashboard-watch__empty{width:42px;height:42px;border-radius:6px;border:1px solid var(--border);object-fit:cover;background:#efece6}.dashboard-watch strong,.dashboard-table__row span,.dashboard-movement strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-watch span,.dashboard-movement small,.dashboard-table__row small{color:var(--muted);font-size:.78rem}.dashboard-watch b{font-size:1rem}.dashboard-bars{display:grid;gap:.6rem}.dashboard-bar{display:grid;grid-template-columns:54px minmax(0,1fr) 58px;gap:.55rem;align-items:center;font-size:.84rem}.dashboard-bar div{height:10px;border-radius:999px;overflow:hidden;background:#ece8df}.dashboard-bar i{display:block;height:100%;border-radius:inherit;background:var(--primary)}.dashboard-bar strong{text-align:right}.dashboard-table__row{min-height:40px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.65rem;align-items:center;border-bottom:1px solid var(--border);padding:.35rem 0}.dashboard-table__row:last-child{border-bottom:0}.dashboard-movement{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.6rem;align-items:center;border-bottom:1px solid var(--border);padding:.4rem 0}.dashboard-movement:last-child{border-bottom:0}.dashboard-movement>span{width:28px;height:28px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center}.dashboard-movement>span.is-in{background:#e4f5ec;color:var(--success)}.dashboard-movement>span.is-out{background:#fff3d2;color:#8a5c00}.dashboard-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}.dashboard-actions a{min-height:38px;display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border);border-radius:8px;color:var(--text);text-decoration:none;padding:.48rem .7rem;background:#fbfaf7}.dashboard-actions a:hover{border-color:var(--muted)}.notify-wrap{position:relative}.notify-dot{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;border-radius:999px;background:var(--danger);color:#fff;font-size:.65rem;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.notify-panel{position:absolute;right:0;top:calc(100% + .4rem);width:min(320px,80vw);max-height:360px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #2c2a261f;padding:.5rem;z-index:20}.notify-item{width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:.55rem .6rem;display:grid;gap:.15rem;cursor:pointer}.notify-item small{color:var(--muted)}.notify-item.is-unread{background:#fff6f8}.request-order-steps{display:flex;gap:.5rem;margin-bottom:.85rem}.request-order-steps span{font-size:.82rem;color:var(--muted)}.request-order-steps .is-active{color:var(--primary-dark);font-weight:700}.request-order-toolbar{display:grid;gap:.65rem;margin-bottom:.85rem}.request-order-page .category-tabs{display:flex}.request-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem;padding-bottom:5.5rem}.request-catalog-card{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden;display:flex;flex-direction:column}.request-catalog-card.is-picked{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.request-catalog-card.is-disabled{opacity:.72}.request-catalog-card img,.request-catalog-card__empty{width:100%;height:140px;object-fit:cover;background:#efece6;display:flex;align-items:center;justify-content:center;color:var(--muted)}.request-catalog-card__body{display:grid;gap:.25rem;padding:.75rem}.request-catalog-price{font-weight:700;color:var(--primary-dark)}.qty-stepper{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:.35rem;align-items:center}.qty-stepper .input{text-align:center}.request-cart-bar{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.75rem 1rem;margin-top:1rem}.request-cart-bar div{display:flex;flex-direction:column}.request-confirm-list{display:grid;gap:.55rem;margin:1rem 0}.request-confirm-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.75rem;align-items:center}.request-confirm-total{display:flex;justify-content:space-between;font-size:1.1rem;margin-bottom:.5rem}.request-order-list{display:grid;gap:.55rem}.request-order-item{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:.8rem .9rem;display:grid;gap:.2rem;cursor:pointer}.request-order-item small{color:var(--muted)}@media (max-width: 1180px){.dashboard-bottom-grid{grid-template-columns:minmax(0,1fr)}.dashboard-panel--movement{grid-column:auto}.dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.badge{display:inline-block;background:#eef0f2;color:#45525e;border-radius:999px;padding:.1rem .6rem;font-size:.75rem;margin-left:.35rem}.badge--warn{background:#fdf0dd;color:var(--warn)}.inline-badges{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap}.inline-badges .badge{display:inline-flex;align-items:center;gap:.25rem;margin-left:0;white-space:nowrap}.alert{background:#fbe6e6;color:var(--danger);border:1px solid #f2c4c4;padding:.6rem .85rem;border-radius:8px;margin-bottom:1rem}.alert--success{background:#e4f5ec;color:var(--success);border-color:#b8e5cc}.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem;font-size:.85rem}.field>span{color:var(--muted)}.field--full{grid-column:1 / -1}.field.checkbox{flex-direction:row;align-items:center;gap:.4rem}.input{padding:.5rem .6rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem;background:#fff}.input--sm{padding:.3rem .4rem;width:5rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0 1rem}.check-row{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:.5rem 0}.permission-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.25rem .9rem;margin:.5rem 0 1rem}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.75rem}.section-title-row--compact{margin:0 0 .75rem}.section-title-row h4{margin:0}.google-login-slot{min-height:42px;margin:.9rem 0 .7rem}.auth-divider{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.8rem;margin:.5rem 0 1rem}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--border);flex:1}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.table th,.table td{text-align:left;padding:.6rem .75rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);font-size:.9rem}.table th{background:var(--bg);color:var(--muted);font-weight:600}.table th:last-child,.table td:last-child{border-right:0}.table tr:last-child td{border-bottom:none}.table--compact th,.table--compact td{padding:.35rem .5rem}.row-actions{display:flex;gap:.35rem;justify-content:flex-end}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;overflow:auto;z-index:50}.modal{width:100%;max-width:520px;margin:0}.modal--wide{max-width:min(1280px,calc(100vw - 2rem))}.modal-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.modal-title-row h3{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.modal-table-scroll{width:100%;max-width:100%;overflow-x:auto;margin-bottom:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.modal-table-scroll .table{border:0;border-radius:0;margin:0}.modal-table-scroll .table th,.modal-table-scroll .table td{white-space:nowrap}.modal-item-table{min-width:760px}.modal-item-table--receipt{min-width:860px}.modal-item-table--event{min-width:1160px}.modal-item-table--event-edit{min-width:1180px}.modal-item-table .souvenir-select{min-width:220px}.receipt-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;margin:.75rem 0}.receipt-meta-grid div{border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;background:var(--bg)}.receipt-meta-grid span{display:block;color:var(--muted);font-size:.76rem;margin-bottom:.2rem}.receipt-meta-grid strong{display:block;font-size:.95rem}.box-breakdown-inputs{display:grid;grid-template-columns:repeat(5,minmax(54px,1fr));gap:.3rem;min-width:310px;margin-bottom:.3rem}.box-breakdown-input{display:grid;gap:.15rem;color:var(--muted);font-size:.72rem}.box-breakdown-input .input{width:100%;min-width:0;padding:.28rem .35rem}.return-label-input{width:14rem;min-height:3.25rem;resize:vertical;white-space:pre-wrap}.return-label-help{display:block;max-width:14rem;white-space:normal;line-height:1.35;margin-top:.25rem}.event-label-allocation{display:grid;gap:.35rem;min-width:24rem}.event-label-allocation__rows{display:grid;gap:.25rem;max-height:150px;overflow:auto}.event-label-allocation__row{display:grid;grid-template-columns:minmax(10rem,1fr) auto 5.5rem auto 6.5rem;align-items:center;gap:.4rem;font-size:.8rem}.event-label-allocation__row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-label-allocation__breakdown{grid-column:1 / -1;display:grid;grid-template-columns:repeat(5,minmax(4.8rem,1fr));gap:.35rem}.event-label-allocation__breakdown label{display:grid;gap:.15rem;color:var(--muted)}.event-item-meta{display:block;color:var(--muted);font-size:.76rem;margin-top:.2rem}.event-note-input{min-width:160px}.event-plan-row--filled{background:#fffdf4}.filter-table__table tbody tr.row--attention{background:#fff9ed;box-shadow:inset 3px 0 0 var(--warn)}.filter-table__table tbody tr.row--attention:hover{background:#fdf0dd}.event-planning-layout{display:grid;gap:1rem}.event-picker-panel,.event-sheet-panel{min-width:0}.event-sheet-scroll{max-height:calc(100vh - 300px);overflow:auto}.event-mobile-sort{display:none}.event-sheet-panel .section-title-row{align-items:flex-start}.event-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:1rem}.event-tab{border:1px solid var(--border);border-bottom:2px solid var(--border);background:#fff;color:var(--text);border-radius:8px;padding:.55rem .75rem;min-width:180px;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;cursor:pointer}.event-tab small{color:var(--muted)}.event-tab--active{border-color:var(--primary);border-bottom-color:var(--primary);background:#fff6f8;color:var(--primary-dark)}.segmented-control{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}.segmented-control button{border:0;border-right:1px solid var(--border);background:transparent;color:var(--text);padding:.45rem .7rem;cursor:pointer}.segmented-control button:last-child{border-right:0}.segmented-control button.is-active{background:#fff6f8;color:var(--primary);box-shadow:inset 0 -2px 0 var(--primary)}.category-tabs{display:none;gap:.5rem;overflow-x:auto;padding:.25rem 0 .7rem;margin:.25rem 0 .5rem}.category-tabs button{border:1px solid var(--border);border-bottom:2px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:.5rem .75rem;min-width:118px;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;cursor:pointer}.category-tabs button small{color:var(--muted);font-size:.74rem}.category-tabs button.is-active{border-color:var(--primary);border-bottom-color:var(--primary);background:#fff6f8;color:var(--primary)}.category-tabs button.is-active small{color:var(--primary-dark)}.event-category-row td{background:#ffe91f;color:#2c2a26;text-align:center;font-weight:800;text-transform:uppercase;padding:.25rem .5rem}.event-unit-header,.event-unit-cell{background:#8de7f0!important;color:#144b52;font-weight:700}.event-mobile-list{display:none}.event-desktop-grid{display:block}.filter-table{--filter-head-height: 42px;--filter-sticky-top: -1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:visible}.filter-table__scroll{width:100%;overflow:visible}.filter-table__table{width:100%;min-width:1060px;border-collapse:separate;border-spacing:0}.filter-table__table th,.filter-table__table td{text-align:left;padding:.55rem .65rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);font-size:.86rem;vertical-align:middle}.filter-table__table th{background:#f2efe8;color:#5f5a52;font-weight:700;text-transform:uppercase;white-space:nowrap}.filter-table__table th:last-child,.filter-table__table td:last-child{border-right:0}.filter-table__table thead tr:first-child th{position:sticky;top:var(--filter-sticky-top);z-index:5;height:var(--filter-head-height);box-shadow:0 1px 0 var(--border)}.filter-table__sort{width:100%;border:0;background:transparent;color:inherit;padding:0;display:inline-flex;align-items:center;justify-content:space-between;gap:.35rem;font:inherit;text-transform:inherit;cursor:pointer}.filter-table__sort-mark{color:#9a9287;font-size:.72rem}.filter-table__sort.is-active .filter-table__sort-mark{color:var(--primary)}.filter-table__table tbody tr:hover{background:#fbfaf7}.filter-table__filters th{position:sticky;top:calc(var(--filter-sticky-top) + var(--filter-head-height));z-index:4;background:#fff8df;padding:.35rem .45rem;box-shadow:0 1px 0 var(--border)}.filter-table__input{width:100%;min-width:90px;border:1px solid #d8d2c6;border-radius:6px;padding:.35rem .45rem;font-size:.8rem;background:#fff;color:var(--text)}.filter-table__input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #c0566a29}.filter-table__date-range{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;min-width:210px}.filter-table__dot{display:inline-block;width:6px;height:6px;margin-left:.3rem;border-radius:50%;background:var(--primary);vertical-align:middle}.filter-table__empty{text-align:center;color:var(--muted);padding:1rem}.filter-table__footer,.filter-table__summary{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .75rem;color:var(--muted);font-size:.84rem;background:#fbfaf7;border-top:1px solid var(--border)}.filter-table__pages{display:flex;gap:.25rem}.filter-table__pages button{min-width:30px;height:30px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text);cursor:pointer}.filter-table__pages button.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.filter-table__pages button:disabled{opacity:.45;cursor:default}.filter-table__summary{justify-content:flex-end;background:#fff;color:var(--text)}.cell-right{text-align:right!important;font-variant-numeric:tabular-nums}.report-item{display:flex;flex-direction:column;gap:.1rem;min-width:170px}.report-item span{color:var(--muted);font-size:.76rem}.movement-type{display:inline-flex;min-width:78px;justify-content:center;border-radius:6px;padding:.2rem .45rem;font-size:.78rem;font-weight:700}.tone-in{background:#d8edc7;color:#2f6c2f}.tone-out{background:#ffe7a6;color:#8a5c00}.tone-return{background:#be1515;color:#fff}.tone-damage{background:#d7d2cb;color:#4d453d}.tone-adjust{background:#e8eaf0;color:#485064}.qty-in{color:var(--success);font-weight:700}.qty-out,.text-danger{color:var(--danger);font-weight:700}.report-filter-card .field{margin-bottom:0}.report-filter-actions{justify-content:flex-end}.report-filter-actions__buttons{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.report-filter-actions__buttons .btn{min-height:38px}.report-summary{display:flex;gap:1.25rem;flex-wrap:wrap}.stat-card{margin-bottom:0}.souvenir-thumb-button{display:inline-flex;width:42px;height:42px;padding:0;border:0;background:transparent;cursor:zoom-in;vertical-align:middle}.souvenir-thumb-button:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:7px}.souvenir-thumb{width:42px;height:42px;object-fit:cover;border:1px solid var(--border);border-radius:6px;background:#f6f4ef;display:block}.souvenir-photo-preview{width:120px;height:120px;object-fit:cover;border:1px solid var(--border);border-radius:8px;background:#f6f4ef}.souvenir-photo-modal{max-width:min(860px,calc(100vw - 2rem))}.souvenir-photo-zoom-wrap{display:grid;place-items:center;min-height:220px;background:#f6f4ef;border:1px solid var(--border);border-radius:8px;overflow:hidden}.souvenir-photo-zoom{display:block;max-width:100%;max-height:min(72vh,720px);object-fit:contain}.barcode-print-panel{border:1px solid var(--border);border-radius:8px;margin-top:1rem;background:#fff;overflow:hidden}.barcode-print-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .75rem;border-bottom:1px solid var(--border);background:#fbfaf7}.barcode-label-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.55rem;padding:.65rem}.barcode-label{position:relative;min-height:220px;border:1px solid #1f1f1f;border-radius:4px;padding:.42rem .48rem .55rem;background:#fff;color:#111;display:flex;flex-direction:column;justify-content:space-between;break-inside:avoid;overflow:hidden}.barcode-label__watermark{position:absolute;inset:45% auto auto 27%;transform:translate(-50%,-50%) rotate(-22deg);color:#4646462e;font-size:2.1rem;font-weight:900;letter-spacing:.08em;pointer-events:none;z-index:2}.barcode-label__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.35rem;font-size:.72rem;line-height:1.15;position:relative;z-index:3}.barcode-label__head strong{max-width:160px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.barcode-label__meta{display:grid;justify-items:center;gap:.12rem;flex:0 0 auto}.barcode-label__meta span{border:1px solid #111;border-radius:3px;padding:.05rem .25rem;font-size:.62rem;font-weight:700;white-space:nowrap}.barcode-label__meta small{font-size:.56rem;line-height:1;color:#111}.barcode-label__body{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:start;gap:.6rem;margin:.4rem 0 0;position:relative;z-index:1}.barcode-label__photo-stack,.barcode-label__qr-stack{min-width:0;display:grid;justify-items:center}.barcode-label__photo{width:150px;height:150px;aspect-ratio:1 / 1;object-fit:cover;border:1px solid #111;border-radius:3px;background:#f6f4ef}.barcode-label__photo--empty{display:grid;place-items:center;color:#777;font-size:.45rem;text-align:center;line-height:1.1}.barcode-label__qr{width:86px;height:86px;justify-self:center;image-rendering:pixelated}.barcode-label__qr--loading{border:1px solid #ccc;background:#fff}.barcode-label__line{width:100%;min-width:0;margin-top:.18rem;padding-top:0}.barcode-label__code{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.58rem;text-align:center;letter-spacing:0;line-height:1.05}.barcode-label__qty{display:inline-flex;align-items:flex-end;gap:.12rem;background:#fff;line-height:.9;margin-top:.48rem}.barcode-label__qty strong{font-size:6.6rem;font-weight:900;line-height:.66;letter-spacing:0}.barcode-label__qty em{font-style:normal;font-size:.78rem;font-weight:800;line-height:1;margin-bottom:.56rem}.label-breakdown-grid{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:.75rem;margin:.75rem 0}.label-breakdown-grid .input{text-align:center}.label-reprint-panel{border:1px solid var(--border);border-radius:8px;margin:.8rem 0;padding:.75rem;background:#fbfaf7}.label-reprint-panel h4{margin-bottom:.5rem}.label-reprint-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.45rem;max-height:190px;overflow:auto}.label-reprint-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:.5rem;border:1px solid var(--border);border-radius:8px;padding:.35rem .45rem;background:#fff}.label-reprint-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}.label-reprint-row strong{font-size:.82rem;white-space:nowrap}.label-activation-panel{border:1px solid var(--border);border-radius:8px;background:#fff;padding:.75rem;margin-bottom:.75rem}.label-activation-main{display:block}.label-activation-main .field{margin:0}.label-activation-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;min-height:42px}.label-activation-log{display:grid;gap:.35rem;margin-top:.65rem;max-height:180px;overflow:auto}.label-activation-log__row{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(0,1fr);gap:.5rem;border:1px solid var(--border);border-radius:8px;padding:.35rem .5rem;font-size:.82rem}.label-activation-log__row strong{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label-activation-log__row.is-ok{background:#e4f5ec;border-color:#b8e5cc;color:var(--success)}.label-activation-log__row.is-error{background:#fbe6e6;border-color:#f2c4c4;color:var(--danger)}@media print{@page{size:A4;margin:0}html,body,#root{width:210mm;min-height:297mm;margin:0;background:#fff;overflow:visible}body *{visibility:hidden!important}.barcode-print-panel,.barcode-print-panel *{visibility:visible!important}.barcode-print-panel{position:absolute;inset:0 auto auto 0;width:210mm;border:0;margin:0;overflow:visible}.no-print{display:none!important}.barcode-label-sheet{box-sizing:border-box;display:grid;grid-template-columns:repeat(2,94mm);gap:5mm;padding:8mm;width:210mm}.barcode-label{box-sizing:border-box;width:94mm;min-height:70mm;padding:2mm 2.5mm 2.5mm;border-radius:2mm;page-break-inside:avoid;break-inside:avoid}.barcode-label__watermark{font-size:17mm}.barcode-label__body{grid-template-columns:46mm minmax(0,1fr);gap:3mm;margin:2mm 0 0}.barcode-label__photo{width:46mm;height:46mm;aspect-ratio:1 / 1}.barcode-label__qr{width:24mm;height:24mm}.barcode-label__line{margin-top:.8mm;padding-top:0}.barcode-label__code{font-size:2.6mm}.barcode-label__qty{margin-top:2.5mm}.barcode-label__qty strong{font-size:34mm}.barcode-label__qty em{font-size:3.4mm;margin-bottom:2.4mm}.barcode-label__meta small{font-size:2.3mm}}@media (max-width: 760px){.app-shell,.app-shell--collapsed{grid-template-columns:minmax(0,1fr)}.app-sidebar{position:fixed;z-index:60;inset:0 auto 0 0;width:230px;transform:translate(-100%);transition:transform .16s ease;box-shadow:0 16px 40px #0003}.app-shell--mobile-open .app-sidebar{transform:translate(0)}.app-shell--collapsed .app-brand{justify-content:flex-start}.app-shell--collapsed .app-brand-text,.app-shell--collapsed .nav-link-text{display:inline}.app-shell--collapsed .nav-link{justify-content:flex-start;padding:.5rem .55rem}.sidebar-toggle{display:none}.mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#fff;border-radius:8px;padding:.42rem .7rem;color:var(--text)}.app-header{padding:.7rem 1rem}.app-header-user{gap:.45rem}.app-header-user .muted{display:none}.app-content{padding:1rem}.filter-table{--filter-sticky-top: -1rem;overflow:hidden;max-width:100%}.filter-table__scroll{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.filter-table__footer,.filter-table__summary{align-items:flex-start;flex-direction:column}.filter-table__pages{max-width:100%;overflow-x:auto;padding-bottom:.1rem}.report-filter-actions__buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.report-filter-actions__buttons .btn{width:100%}.page-head{align-items:flex-start;gap:.75rem;flex-direction:column}.page-head h1{font-size:1.45rem}.page-head .btn{flex-shrink:0}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.dashboard-stat{min-height:98px;padding:.75rem}.dashboard-stat strong{font-size:1.25rem}.dashboard-layout,.dashboard-layout--wide-left,.dashboard-bottom-grid{grid-template-columns:minmax(0,1fr)}.dashboard-panel--movement{grid-column:auto;max-height:none}.dashboard-movements{max-height:none;overflow:visible;padding-right:0}.dashboard-panel__head{align-items:flex-start;flex-direction:column;gap:.15rem}.dashboard-panel__head span{white-space:normal}.dashboard-queue{grid-template-columns:minmax(0,1fr)}.dashboard-table__row{grid-template-columns:minmax(0,1fr) auto}.dashboard-table__row small{grid-column:1 / -1}.dashboard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-actions a{justify-content:center;text-align:center}.page-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.page-tabs button{padding:.7rem .5rem}.section-title-row{align-items:stretch;flex-direction:column}.section-title-row--compact{flex-direction:row;align-items:center}.section-title-row--compact .btn{flex-shrink:0}.event-planning-page .page-head .btn{width:100%}.event-tabs{margin-left:-1rem;margin-right:-1rem;padding:0 1rem .65rem}.event-tab{min-width:150px;padding:.5rem .6rem}.event-sheet-panel .section-title-row{gap:.65rem}.event-sheet-panel .report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.event-sheet-panel .report-summary span{margin:0}.event-sheet-panel .segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.event-sheet-panel .segmented-control button{padding:.65rem .4rem}.category-tabs{display:flex;margin-left:-1rem;margin-right:-1rem;padding:.25rem 1rem .7rem}.category-tabs button{min-width:116px;padding:.55rem .65rem}.event-mobile-sort{display:flex;align-items:center;gap:.45rem;margin:-.25rem 0 .7rem;overflow-x:auto}.event-mobile-sort span{color:var(--muted);font-size:.82rem;flex-shrink:0}.event-mobile-sort button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:.45rem .65rem;min-height:38px;white-space:nowrap}.event-mobile-sort button.is-active{border-color:var(--primary);background:#fff6f8;color:var(--primary-dark);box-shadow:inset 0 -2px 0 var(--primary)}.event-desktop-grid,.event-sheet-scroll{display:none}.event-mobile-list{display:flex;flex-direction:column;gap:.9rem}.event-mobile-category{display:flex;flex-direction:column;gap:.55rem}.event-mobile-category h4{margin:0;background:#ffe91f;color:#2c2a26;border-radius:8px;padding:.45rem .6rem;text-align:center;text-transform:uppercase}.event-mobile-card{border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:.75rem}.event-mobile-card--filled{background:#fffdf4;border-color:#eadf9d}.event-mobile-card__head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.5rem}.event-mobile-card__title{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem;min-width:0}.event-mobile-card__head strong{line-height:1.25}.event-mobile-card__head span{color:var(--muted);white-space:nowrap;font-size:.82rem}.event-mobile-meta{display:flex;flex-direction:column;gap:.25rem;color:var(--muted);font-size:.82rem;margin-bottom:.65rem}.event-unit-pill{display:inline-flex;width:fit-content;background:#8de7f0;color:#144b52;border-radius:999px;padding:.15rem .5rem;font-weight:700}.event-mobile-inputs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;align-items:end}.event-mobile-inputs .field{margin:0}.event-mobile-inputs .input{width:100%;text-align:center;font-size:1rem;padding:.55rem .35rem}.event-mobile-total{min-height:58px;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg)}.event-mobile-total span{color:var(--muted);font-size:.75rem}.event-mobile-total strong{font-size:1rem}.event-planning-page .modal-actions{display:grid;grid-template-columns:1fr}.event-planning-page .modal-actions .btn{width:100%}.modal-backdrop{padding:1rem .65rem}.modal{max-width:calc(100vw - 1.3rem)}.modal-actions{flex-wrap:wrap}.modal-table-scroll{overflow-x:auto}.scan-input-row{grid-template-columns:auto minmax(0,1fr)}.scan-input-row .btn{grid-column:1 / -1;width:100%}.barcode-print-toolbar{align-items:flex-start;flex-direction:column}.barcode-label-sheet{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.label-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.label-reprint-list{grid-template-columns:minmax(0,1fr);max-height:240px}.label-activation-log__row{grid-template-columns:minmax(0,1fr)}.stocktake-modal .filter-table{overflow:hidden}.stocktake-modal .filter-table__scroll{overflow-x:auto;overflow-y:visible}.request-catalog-grid{grid-template-columns:1fr}.request-catalog-card{flex-direction:row}.request-catalog-card img,.request-catalog-card__empty{width:92px;height:92px;flex-shrink:0}.request-catalog-card__body{padding:.65rem .7rem;flex:1}.request-confirm-row{grid-template-columns:minmax(0,1fr)}.request-cart-bar{position:sticky;bottom:.5rem}}
