:root{--bg:#d9d9dc;--app-bg:#f0f0ef;--panel:#ffffff;--ink:#171717;--muted:#777375;--line:#ece9e8;--primary:#952423;--primary-strong:#761a19;--primary-soft:#f7eaea;--warning:#a45d16;--danger:#952423;--ok:#2f7d52;--shadow:0 18px 44px rgba(35,31,32,0.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{display:block;min-height:100vh;padding:28px 20px}.app-frame{background:var(--app-bg);border-radius:14px;box-shadow:var(--shadow);min-height:calc(100vh - 56px);overflow:hidden}.sidebar{align-items:center;display:flex;flex-direction:column;gap:12px;padding:148px 0 20px}.sidebar a,.sidebar button{align-items:center;background:#fff;border:0;border-radius:999px;color:#373233;cursor:pointer;display:inline-flex;font-size:18px;font-weight:800;height:42px;justify-content:center;position:relative;width:42px}.sidebar a:hover,.sidebar button:hover,.sidebar-mark{background:var(--primary)!important;color:#fff!important;transform:translateY(-1px)}.sidebar-bottom{margin-top:auto}.sidebar [data-tooltip]:after{background:var(--ink);border-radius:9px;color:#fff;content:attr(data-tooltip);font-size:12px;font-weight:800;left:calc(100% + 10px);padding:7px 9px;white-space:nowrap;z-index:90}.sidebar [data-tooltip]:after,.sidebar [data-tooltip]:before{opacity:0;pointer-events:none;position:absolute;top:50%;transform:translate(-4px,-50%);transition:opacity .16s ease,transform .16s ease}.sidebar [data-tooltip]:before{border-bottom:5px solid transparent;border-right:6px solid var(--ink);border-top:5px solid transparent;content:"";left:calc(100% + 4px);z-index:91}.sidebar [data-tooltip]:focus-visible:after,.sidebar [data-tooltip]:focus-visible:before,.sidebar [data-tooltip]:hover:after,.sidebar [data-tooltip]:hover:before{opacity:1;transform:translateY(-50%)}.topbar{background:rgba(255,255,255,.86);border-bottom:1px solid rgba(255,255,255,.9);gap:20px;justify-content:space-between;padding:16px 24px}.topbar,.topbar-start{align-items:center;display:flex}.topbar-start{gap:12px}.mobile-user-greeting{display:none}.menu-close,.menu-trigger{align-items:center;background:#fff;border:1px solid #e8e2e0;border-radius:999px;color:var(--primary);cursor:pointer;display:inline-flex;flex:0 0 auto;height:42px;justify-content:center;padding:0;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;width:42px}.menu-close:hover,.menu-trigger:hover{background:var(--primary);border-color:var(--primary);color:#fff;transform:translateY(-1px)}.drawer-nav a:focus-visible,.drawer-nav button:focus-visible,.menu-account-link:focus-visible,.menu-close:focus-visible,.menu-signout:focus-visible,.menu-trigger:focus-visible{outline:3px solid rgba(149,36,35,.2);outline-offset:2px}.menu-layer{inset:0;pointer-events:none;position:fixed;transition:visibility 0s linear .24s;visibility:hidden;z-index:200}.menu-layer.open{pointer-events:auto;transition-delay:0s;visibility:visible}.menu-backdrop{background:rgba(22,20,20,.52);border:0;cursor:pointer;inset:0;opacity:0;padding:0;position:absolute;transition:opacity .22s ease;width:100%}.menu-layer.open .menu-backdrop{opacity:1}.menu-drawer{background:#fff;box-shadow:18px 0 55px rgba(35,31,32,.2);display:flex;flex-direction:column;height:100%;left:0;max-width:calc(100vw - 24px);overflow:hidden;position:absolute;top:0;transform:translateX(-104%);transition:transform .24s cubic-bezier(.22,1,.36,1);width:390px}.menu-layer.open .menu-drawer{transform:translateX(0)}.menu-drawer-head{align-items:center;border-bottom:1px solid var(--line);display:flex;flex:0 0 auto;justify-content:space-between;padding:22px 22px 18px}.menu-drawer-head h2{font-size:24px;margin:3px 0 0}.menu-kicker{color:var(--primary);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.menu-user{align-items:center;background:var(--primary-soft);border:1px solid #edd2d1;border-radius:14px;display:flex;flex:0 0 auto;gap:12px;margin:16px 18px 8px;padding:12px}.menu-user-avatar{align-items:center;background:var(--primary);border-radius:12px;color:#fff;display:inline-flex;flex:0 0 42px;font-size:18px;font-weight:900;height:42px;justify-content:center}.menu-user div{display:grid;grid-gap:3px;gap:3px;min-width:0}.menu-user strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-user small{color:var(--muted)}.drawer-nav{display:grid;grid-gap:4px;gap:4px;overflow-y:auto;overscroll-behavior:contain;padding:10px 14px 22px}.drawer-group>button,.drawer-nav>a{align-items:center;background:transparent;border:0;border-radius:12px;color:#373233;cursor:pointer;display:flex;font-weight:750;gap:12px;min-height:50px;padding:9px 12px;text-align:left;transition:background .16s ease,color .16s ease;width:100%}.drawer-group>button:hover,.drawer-nav>a:hover{background:#faf4f4;color:var(--primary)}.drawer-group>button.active,.drawer-nav>a.active{background:var(--primary-soft);color:var(--primary)}.drawer-nav-icon{align-items:center;background:#f4efee;border-radius:10px;color:var(--primary);display:inline-flex;flex:0 0 34px;height:34px;justify-content:center}.drawer-group>button.active .drawer-nav-icon,.drawer-nav a.active .drawer-nav-icon{background:var(--primary);color:#fff}.drawer-chevron,.drawer-nav-icon svg{height:20px;width:20px}.drawer-chevron{margin-left:auto;transition:transform .18s ease}.drawer-chevron.open{transform:rotate(180deg)}.drawer-submenu{display:grid;max-height:0;opacity:0;overflow:hidden;transition:max-height .24s ease,opacity .18s ease}.drawer-group.open .drawer-submenu{max-height:420px;opacity:1}.drawer-submenu>a:first-child{margin-top:4px}.drawer-submenu>a{align-items:center;border-left:1px solid #eadfdd;color:var(--muted);display:flex;font-size:14px;gap:10px;margin-left:29px;min-height:39px;overflow:hidden;padding:8px 12px 8px 21px}.drawer-submenu>a.active,.drawer-submenu>a:hover{color:var(--primary);font-weight:800}.drawer-submenu-dot{background:#d8cdcb;border-radius:999px;flex:0 0 6px;height:6px}.drawer-submenu>a.active .drawer-submenu-dot{background:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.menu-drawer-footer{align-items:center;background:#fff;border-top:1px solid var(--line);display:grid;flex:0 0 auto;grid-gap:8px;gap:8px;grid-template-columns:1fr auto;margin-top:auto;padding:14px 18px max(14px,env(safe-area-inset-bottom))}.menu-account-link,.menu-signout{align-items:center;background:#f8f5f4;border:1px solid #ebe3e1;border-radius:11px;color:var(--primary);cursor:pointer;display:inline-flex;font-weight:750;gap:8px;justify-content:center;min-height:42px;padding:9px 12px;transition:background .16s ease,color .16s ease}.menu-account-link:hover,.menu-signout:hover{background:var(--primary);color:#fff}.brand{color:var(--primary);gap:9px;font-size:18px;font-weight:800;white-space:nowrap}.brand,.brand-mark{align-items:center;display:inline-flex}.brand-mark{background:var(--primary);border-radius:999px;color:#fff;font-size:16px;height:28px;justify-content:center;width:28px}.nav{align-items:center;background:#f7f7f6;border:1px solid #e8e5e4;border-radius:999px;display:flex;flex-wrap:wrap;gap:4px;padding:5px}.button,.nav a,.nav button{background:#fff;border:1px solid transparent;border-radius:999px;color:var(--ink);cursor:pointer;display:inline-flex;min-height:38px;align-items:center;justify-content:center;padding:8px 14px;transition:border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease,background .16s ease}.button:hover,.nav a:hover,.nav button:hover{border-color:var(--primary);transform:translateY(-1px)}.button:hover,.nav a.active,.nav a:hover,.nav button.active,.nav button:hover{background:var(--primary);box-shadow:0 10px 22px rgba(149,36,35,.18);color:#fff}.nav a.active:hover,.nav button.active:hover{border-color:transparent;color:#fff}.nav-dropdown{position:relative}.nav-dropdown>a{display:inline-flex}.nav-dropdown-menu{background:#fffafa;border:1px solid #efe0df;border-radius:14px;box-shadow:0 18px 40px rgba(35,31,32,.12);display:grid;grid-gap:4px;gap:4px;left:0;min-width:190px;opacity:0;padding:8px;pointer-events:none;position:absolute;top:100%;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease;z-index:60}.nav-dropdown:after{content:"";height:12px;left:0;position:absolute;right:0;top:100%}.nav-dropdown.open .nav-dropdown-menu,.nav-dropdown:hover .nav-dropdown-menu{opacity:1;pointer-events:auto;transform:translateY(0)}.nav .nav-dropdown-menu a{background:#fff;border:1px solid #f0e5e4;border-radius:10px;color:var(--ink);justify-content:flex-start;width:100%}.nav .nav-dropdown-menu a.active,.nav .nav-dropdown-menu a:hover{background:var(--primary);border-color:var(--primary);color:#fff}.button.primary{background:var(--primary);box-shadow:0 10px 22px rgba(149,36,35,.2);color:white}.button.primary:hover{background:var(--primary-strong);border-color:var(--primary-strong);color:#fff}.button.primary.saving,.button.primary:disabled{background:#d9aaa9;border-color:#d9aaa9;box-shadow:none;color:#fff}.button.outline.saving{background:#f3dfde;border-color:#e2b9b8;color:var(--primary)}.button.danger.saving{background:#f0caca;border-color:#e1aaaa;color:var(--danger)}.button.danger{background:var(--primary-soft);color:var(--danger)}.button.danger:hover{background:var(--danger);border-color:var(--danger);color:#fff}.button.outline{background:#fff;border-color:var(--primary);color:var(--primary)}.button.outline.active,.button.outline:hover{background:var(--primary);border-color:var(--primary);color:#fff}.button.soft-primary{background:var(--primary-soft);border-color:#e6c3c2;color:var(--primary)}.button.soft-primary:hover{background:var(--primary);border-color:var(--primary);color:#fff}.user-chip{align-items:center;display:flex;gap:8px}.user-chip span{background:#fff;border-radius:999px;color:var(--primary);display:inline-flex;font-family:Trebuchet MS,Avenir Next,Inter,sans-serif;font-size:15px;font-weight:900;letter-spacing:0;min-height:38px;align-items:center;padding:8px 14px;box-shadow:inset 0 0 0 1px rgba(149,36,35,.12)}.user-chip button{padding:8px 12px}.icon-button,.user-chip button{background:#fff;border:0;border-radius:999px;cursor:pointer;min-height:38px;transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}.icon-button{align-items:center;color:var(--primary);display:inline-flex;justify-content:center;min-width:38px;padding:8px 10px;position:relative}.icon-button svg{display:block;flex:0 0 auto}.icon-button:hover,.user-chip button:hover{background:var(--primary);box-shadow:0 10px 22px rgba(149,36,35,.18);color:#fff;transform:translateY(-1px)}.tooltip-button:after{background:var(--ink);border-radius:8px;color:#fff;content:attr(data-tooltip);font-size:12px;font-weight:700;opacity:0;padding:6px 8px;pointer-events:none;position:absolute;right:0;top:calc(100% + 8px);transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease;white-space:nowrap;z-index:70}.tooltip-button:hover:after{opacity:1;transform:translateY(0)}.content{margin:0 auto;max-width:1240px;padding:28px 28px 56px}.page-head{align-items:flex-end;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.eyebrow{color:var(--muted);font-size:13px;margin:0 0 6px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-size:34px;font-weight:500;line-height:1.1;margin-bottom:6px}.muted{color:var(--muted)}.grid{display:grid;grid-gap:14px;gap:14px}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.panel{background:var(--panel);border:1px solid rgba(255,255,255,.86);border-radius:16px;box-shadow:0 12px 30px rgba(35,31,32,.04);padding:18px}.modal-backdrop{align-items:center;background:rgba(24,19,20,.48);display:flex;inset:0;justify-content:center;padding:18px;position:fixed;z-index:120}.modal-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 70px rgba(24,19,20,.22);max-height:min(86vh,720px);overflow:auto;padding:18px;width:min(560px,100%)}.modal-head{align-items:flex-start;display:flex;gap:14px;justify-content:space-between;margin-bottom:14px}.modal-head h2{font-size:20px;margin:0}.sales-detail-modal,.shopping-detail-modal{display:grid;grid-gap:12px;gap:12px}.detail-block{background:#fffafa;border:1px solid #efe7e6;border-radius:12px;padding:12px}.detail-block span{color:var(--primary);display:block;font-size:12px;font-weight:900;margin-bottom:6px;text-transform:uppercase}.detail-block p{color:var(--ink);margin:0;white-space:pre-wrap}.stat{display:flex;flex-direction:column;gap:8px;min-height:116px;position:relative}.stat:after{align-items:center;background:var(--primary-soft);border-radius:999px;color:var(--primary);content:"↗";display:inline-flex;height:32px;justify-content:center;position:absolute;right:16px;top:16px;width:32px}.stat strong{font-size:34px;font-weight:500}.stat-primary{background:var(--primary);color:#fff}.stat-primary .muted{color:rgba(255,255,255,.78)}.stat-primary:after{background:rgba(255,255,255,.14);color:#fff}.form{display:grid;grid-gap:14px;gap:14px}.field{display:grid;grid-gap:6px;gap:6px}.field label{color:var(--muted);font-size:13px;font-weight:700}.field input,.field select,.field textarea{background:#fbfbfa;border:1px solid #e0dcda;border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);color:var(--ink);min-height:46px;min-width:0;outline:none;padding:11px 14px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;width:100%}.date-range-field{position:relative}.date-range-trigger{background:#fbfbfa;border:1px solid #e0dcda;border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);color:var(--ink);cursor:pointer;min-height:46px;padding:11px 14px;text-align:left;width:100%}.date-range-popover{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 45px rgba(24,19,20,.18);display:grid;grid-gap:10px;gap:10px;padding:14px;position:absolute;top:calc(100% + 6px);left:0;width:max-content;z-index:20}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--primary) 50%),linear-gradient(135deg,var(--primary) 50%,transparent 50%),linear-gradient(to right,#eee9e8,#eee9e8);background-position:calc(100% - 21px) 20px,calc(100% - 15px) 20px,calc(100% - 42px) 50%;background-repeat:no-repeat;background-size:6px 6px,6px 6px,1px 24px;padding-right:52px}.field select option,.field select option:disabled,.field select:invalid{color:var(--ink)}.field input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;color-scheme:light;max-width:100%;min-width:0}.field input:hover,.field select:hover,.field textarea:hover{background:#fff;border-color:#d5caca}.field input:focus,.field select:focus,.field textarea:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 4px rgba(149,36,35,.1)}.month-picker-input{color:var(--primary);font-weight:900}.month-picker-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.8}.field input:disabled,.field select:disabled,.field textarea:disabled,button:disabled{cursor:not-allowed;opacity:.58}.table-wrap{overflow-x:auto}.table-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.request-items-table{overflow:visible;padding-bottom:260px}.request-items-table table{table-layout:fixed;min-width:0}.request-items-table td:first-child,.request-items-table th:first-child{width:42%}.request-items-table td:nth-child(2),.request-items-table th:nth-child(2){width:12%}.request-items-table td:nth-child(3),.request-items-table th:nth-child(3){width:28%}.request-items-table td:nth-child(4),.request-items-table th:nth-child(4){width:18%}table{border-collapse:collapse;min-width:760px;width:100%}td input,td select{background:#fbfbfa;border:1px solid #e0dcda;border-radius:12px;min-height:40px;outline:none;padding:9px 12px;width:100%}.checkbox-line input[type=checkbox],td input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#e8e2e1;border:1px solid #d8ccca;border-radius:999px;box-shadow:inset 0 1px 2px rgba(35,31,32,.08);cursor:pointer;height:24px;min-height:24px;padding:0;position:relative;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;width:44px}.checkbox-line input[type=checkbox]:after,td input[type=checkbox]:after{background:#fff;border-radius:999px;box-shadow:0 2px 5px rgba(35,31,32,.18);content:"";height:18px;left:2px;position:absolute;top:2px;transition:transform .16s ease;width:18px}.checkbox-line input[type=checkbox]:checked,td input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 4px rgba(149,36,35,.1)}.checkbox-line input[type=checkbox]:checked:after,td input[type=checkbox]:checked:after{transform:translateX(20px)}.checkbox-line input[type=checkbox]:hover,td input[type=checkbox]:hover{border-color:var(--primary)}td select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--primary) 50%),linear-gradient(135deg,var(--primary) 50%,transparent 50%);background-position:calc(100% - 18px) 17px,calc(100% - 12px) 17px;background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:36px}td input:focus,td select:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 4px rgba(149,36,35,.1)}td .button{min-height:34px;padding:6px 12px}.combo{position:relative;width:100%}.combo-trigger{align-items:center;background:#fbfbfa;border:1px solid #e0dcda;border-radius:12px;color:var(--ink);cursor:pointer;display:flex;gap:12px;justify-content:space-between;min-height:44px;padding:9px 12px;text-align:left;width:100%}.combo-trigger:focus,.combo-trigger:hover{background:#fff;border-color:var(--primary);box-shadow:0 0 0 4px rgba(149,36,35,.1);outline:none}.combo-trigger span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-menu{background:#fff;border:1px solid #e0dcda;border-radius:14px;box-shadow:0 18px 40px rgba(35,31,32,.12);left:0;padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:30}.combo-menu input{background:#fbfbfa;border:1px solid #e0dcda;border-radius:12px;min-height:40px;outline:none;padding:9px 12px;width:100%}.combo-menu input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(149,36,35,.1)}.combo-options{display:grid;grid-gap:4px;gap:4px;margin-top:8px;max-height:240px;overflow:auto}.combo-empty,.combo-options button{background:transparent;border:0;border-radius:10px;color:var(--ink);cursor:pointer;padding:10px;text-align:left}.combo-options button:hover{background:var(--primary);color:#fff}.combo-empty{color:var(--muted);cursor:default}td,th{border-bottom:1px solid var(--line);padding:12px 10px;text-align:left;vertical-align:top}tbody tr{transition:background .16s ease,box-shadow .16s ease,transform .16s ease}tbody tr:hover{background:#fffafa}th{color:var(--muted);font-size:13px;white-space:nowrap}.badge{border-radius:999px;display:inline-flex;font-size:12px;font-weight:700;padding:5px 8px}.badge.requested{background:#f0eeee}.badge.confirmed,.badge.fulfilled{background:#eef8f1;color:var(--ok)}.badge.cancelled,.badge.unavailable{background:var(--primary-soft);color:var(--danger)}.badge.partially_available{background:#fff7e8;color:var(--warning)}.daily-report-group{margin-bottom:16px}.dashboard-batch-group{background:#fffafa;border:1px solid #efe7e6;border-radius:16px;margin-top:14px;padding:14px}.batch-title-row{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.batch-title-row h3{color:var(--ink);font-size:18px;font-weight:900;margin:0}.batch-title-row .button{min-height:34px;padding:7px 13px}.vendor-report-list{display:grid;grid-gap:14px;gap:14px}.vendor-report-group{background:linear-gradient(135deg,rgba(149,36,35,.045),transparent 42%),#fff;border:1px solid var(--line);border-radius:14px;padding:12px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.vendor-report-group:hover{border-color:#e6c3c2;box-shadow:0 14px 28px rgba(149,36,35,.08);transform:translateY(-1px)}.vendor-report-group-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:8px}.vendor-report-group h3{align-items:center;color:var(--primary);display:flex;font-size:17px;font-weight:900;gap:8px;margin:0}.send-vendor-message{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.send-vendor-status{font-size:12px;font-weight:700}.send-vendor-status.success{color:var(--ok)}.send-vendor-status.failed{color:var(--danger)}.vendor-report-group h3:before{background:var(--primary);border-radius:999px;box-shadow:0 8px 18px rgba(149,36,35,.2);content:"";height:9px;width:9px}.report-item-list{display:grid;grid-gap:7px;gap:7px}.report-item-row{align-items:center;background:#fffafa;border:1px solid #efe7e6;border-radius:12px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto auto;min-height:42px;padding:8px 10px;transition:background .16s ease,border-color .16s ease,transform .16s ease}.report-item-row:hover{background:#fff;border-color:#e6c3c2;transform:translateX(2px)}.report-item-product{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-item-qty{background:#fff;border:1px solid #eadcdb;color:var(--ink);min-width:38px;padding:5px 8px;text-align:center}.report-item-qty,.status-icon{border-radius:999px;font-size:13px;font-weight:900}.status-icon{align-items:center;cursor:help;display:inline-flex;height:28px;justify-content:center;position:relative;width:28px}.status-icon:after{background:var(--ink);border-radius:8px;bottom:calc(100% + 8px);box-shadow:0 10px 24px rgba(35,31,32,.16);color:#fff;content:attr(data-tooltip);font-size:11px;font-weight:800;line-height:1;opacity:0;padding:7px 9px;pointer-events:none;position:absolute;right:0;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease;white-space:nowrap;z-index:40}.status-icon:focus-visible:after,.status-icon:hover:after{opacity:1;transform:translateY(0)}.status-icon.requested{background:#f6f2f2;color:#6f6464}.status-icon.confirmed,.status-icon.fulfilled{background:#eef8f1;color:var(--ok)}.status-icon.cancelled,.status-icon.unavailable{background:var(--primary-soft);color:var(--danger)}.status-icon.partially_available{background:#fff7e8;color:var(--warning)}.login-page{align-items:center;background:radial-gradient(circle at 18% 16%,rgba(149,36,35,.18),transparent 28%),radial-gradient(circle at 82% 30%,rgba(149,36,35,.12),transparent 30%),linear-gradient(135deg,#fffafa,#f1eeee 54%,#dddde1);display:grid;min-height:100vh;overflow:hidden;padding:24px;position:relative}.login-footer{bottom:18px;color:rgba(35,31,32,.58);font-size:13px;font-weight:800;left:0;letter-spacing:0;position:absolute;right:0;text-align:center;z-index:1}.login-mascot-bg{inset:0;pointer-events:none;position:absolute}.mascot-orbit{position:absolute;stroke:rgba(149,36,35,.16);stroke-width:5}.mascot-orbit-one{height:280px;right:-54px;top:6%;width:280px}.mascot-orbit-two{bottom:-42px;height:230px;left:-38px;width:230px}.login-stage{align-items:center;display:grid;grid-gap:26px;gap:26px;grid-template-columns:minmax(0,1.08fr) minmax(360px,440px);margin:0 auto;max-width:1040px;position:relative;width:100%;z-index:1}.login-hero{color:var(--ink);display:grid;grid-gap:18px;gap:18px}.login-brand-badge{align-items:center;background:var(--primary);border-radius:999px;box-shadow:0 14px 30px rgba(149,36,35,.2);color:#fff;display:inline-flex;font-size:14px;justify-content:center;min-height:42px;padding:8px 18px;width:max-content}.login-brand-badge,.login-hero h1{font-family:Trebuchet MS,Avenir Next,Inter,sans-serif;font-weight:900;letter-spacing:0}.login-hero h1{color:var(--primary);font-size:clamp(42px,7vw,76px);line-height:.94;margin:0;max-width:680px}.login-hero p{color:#4f494b;font-size:18px;line-height:1.6;max-width:540px}.mascot-card{align-items:center;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:0 22px 60px rgba(35,31,32,.1);display:flex;height:320px;justify-content:center;max-width:390px;overflow:hidden}.mascot-card.image-card{background:radial-gradient(circle at 50% 58%,rgba(149,36,35,.14),transparent 44%),radial-gradient(circle at 50% 72%,rgba(149,36,35,.08),transparent 34%);border-color:transparent;box-shadow:none;max-width:560px}.login-mascot-image{display:block;height:92%;image-rendering:auto;object-fit:contain;object-position:center;padding:0;transform:translateZ(0) scale(.98);width:100%}.jcore-mascot{height:236px;width:280px}.login-box{margin:0 auto;max-width:420px;width:100%}.login-box h2{color:var(--primary);font-family:Trebuchet MS,Avenir Next,Inter,sans-serif;font-size:34px;font-weight:900;letter-spacing:0;margin-bottom:6px}.login-box.panel{border:1px solid rgba(255,255,255,.9);border-radius:22px;box-shadow:0 26px 70px rgba(35,31,32,.12);padding:24px}.login-submit{min-height:48px}.mascot-shadow{stroke:rgba(35,31,32,.16);stroke-linecap:round;stroke-width:10}.mascot-body{fill:var(--primary)}.owl-body{stroke:var(--primary-strong);stroke-width:5}.owl-wing{fill:#f5e8e7;stroke:var(--primary);stroke-linecap:round;stroke-linejoin:round;stroke-width:6}.owl-feather-top{fill:#fff7f6;stroke:var(--primary);stroke-linecap:round;stroke-linejoin:round;stroke-width:5}.owl-face{fill:#fff7f6}.owl-eye-bg{fill:#fff}.owl-beak{fill:#f7c948;stroke:var(--ink);stroke-linejoin:round;stroke-width:4}.owl-foot{stroke:#f7c948;stroke-linecap:round;stroke-width:7}.robot-body,.robot-head{fill:#fff7f6;stroke:#d8ccca;stroke-linejoin:round;stroke-width:5}.robot-torso{fill:#fbfbfa}.robot-torso,.robot-visor{stroke:var(--primary);stroke-linejoin:round;stroke-width:5}.robot-visor{fill:#171a2e}.robot-crest,.robot-ear,.robot-ear-core{fill:var(--primary)}.robot-j-mark{stroke:#fff;stroke-linecap:round;stroke-width:7}.robot-eye-bg{fill:#fff;filter:drop-shadow(0 0 8px rgba(149,36,35,.55))}.robot-smile{stroke:#fff;stroke-linecap:round;stroke-width:6}.robot-arm,.robot-thumb{stroke:var(--primary);stroke-linecap:round;stroke-linejoin:round;stroke-width:9}.jagoan-cape{fill:var(--primary-strong);stroke:var(--primary);stroke-linejoin:round;stroke-width:5}.mascot-face{fill:#fff7f6}.jagoan-mask{fill:#2b2b31}.jagoan-hair{fill:#2b2b31;stroke:var(--primary);stroke-linejoin:round;stroke-width:5}.jagoan-emblem{fill:#fff7f6;stroke:var(--ink);stroke-linejoin:round;stroke-width:5}.jagoan-j{stroke:var(--primary);stroke-linecap:round;stroke-width:7}.mascot-eye-dot{fill:var(--ink)}.mascot-eye-shine{fill:#fff}.jagoan-cheek{stroke:#eeaaa8;stroke-linecap:round;stroke-width:5}.mascot-ear{fill:#fff;stroke:var(--primary);stroke-width:8}.mascot-eye{stroke:var(--ink);stroke-linecap:round;stroke-width:10}.mascot-mouth{stroke:var(--primary);stroke-linecap:round;stroke-width:6}.mascot-bolt{fill:#f7c948;stroke:var(--ink);stroke-linejoin:round;stroke-width:5}.mascot-arm,.mascot-spark{stroke:var(--primary);stroke-linecap:round;stroke-width:8}.row-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.compact-actions{flex-wrap:nowrap}.compact-actions form{margin:0}.row-actions input,.row-actions select{background:#fff;border:1px solid #e0dcda;border-radius:999px;min-height:38px;outline:none;padding:8px 14px}.row-actions select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--primary) 50%),linear-gradient(135deg,var(--primary) 50%,transparent 50%);background-position:calc(100% - 18px) 16px,calc(100% - 12px) 16px;background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:36px}.row-actions input:focus,.row-actions select:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(149,36,35,.1)}.filter-panel{margin-bottom:16px}.master-table-filter{border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:14px}.filter-grid{align-items:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.filter-grid .button{align-self:end}.filter-actions{display:flex;justify-content:flex-end;margin-top:12px}.copy-summary-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.request-status-form{align-items:center;display:inline-flex;gap:8px}.request-status-form select{min-height:36px;min-width:118px}.request-status-form .button{min-height:36px;padding:8px 12px}.shopping-form{display:grid;grid-gap:18px;gap:18px;margin-inline:auto;max-width:720px}.shopping-form-row{display:grid;grid-gap:14px;gap:14px;grid-template-columns:1fr 1fr}@media (max-width:560px){.shopping-form-row{grid-template-columns:1fr}}.amount-cell{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;text-align:right;white-space:nowrap}.shopping-total-card{align-items:center;background:linear-gradient(135deg,rgba(149,36,35,.08),#fff);border:1px solid #ead4d3;border-radius:14px;display:flex;justify-content:space-between;padding:16px}.shopping-total-card span{color:var(--muted);font-weight:800}.shopping-total-card strong{color:var(--primary);font-size:24px;font-weight:950}.shopping-page-tabs{display:inline-flex;gap:4px;background:var(--app-bg);border-radius:10px;padding:4px;margin:12px 0 4px;width:-moz-fit-content;width:fit-content}.shopping-page-tabs a{border-radius:7px;color:var(--muted);font-size:13.5px;font-weight:600;padding:7px 14px}.shopping-page-tabs a.active{background:var(--panel);box-shadow:var(--shadow);color:var(--ink)}.category-tag{background:var(--app-bg);border-radius:999px;color:var(--muted);display:inline-block;font-size:12px;font-weight:600;padding:3px 10px;white-space:nowrap}.category-tag.kasir{background:rgba(164,93,22,.14);color:var(--warning)}.shopping-dashboard-panel,.shopping-history-panel{margin-top:16px}.shopping-dashboard-filter{border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:16px}.shopping-dashboard-cards{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:16px}.shopping-dashboard-card{background:#fffafa;border:1px solid #efe7e6;border-radius:14px;padding:16px}.shopping-dashboard-card.total{background:linear-gradient(135deg,var(--primary),#bd3f3d);color:#fff}.shopping-dashboard-card span{color:var(--muted);display:block;font-size:12px;font-weight:900;text-transform:uppercase}.shopping-dashboard-card.total span{color:rgba(255,255,255,.78)}.shopping-dashboard-card.paid strong{color:var(--ok)}.shopping-dashboard-card.unpaid strong{color:var(--danger)}.shopping-dashboard-card strong{display:block;font-size:24px;line-height:1.1;margin-top:8px}.shopping-chart-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.shopping-chart-card{background:#fff;border:1px solid #efe7e6;border-radius:14px;padding:14px}.shopping-chart-card h3{font-size:16px;margin-bottom:12px}.shopping-chart-bars,.shopping-chart-row{display:grid;grid-gap:10px;gap:10px}.shopping-chart-row{align-items:center;grid-template-columns:minmax(90px,.8fr) minmax(100px,1.6fr) minmax(110px,auto)}.shopping-chart-row span,.shopping-chart-row strong{font-size:12px;font-weight:900}.shopping-chart-row span{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-chart-row strong{color:var(--primary);text-align:right}.shopping-chart-row div{background:#f3e7e6;border-radius:999px;height:12px;overflow:hidden}.shopping-chart-row i{background:linear-gradient(90deg,var(--primary),#cf5b58);border-radius:inherit;display:block;height:100%}.menu-access-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));min-width:280px}.menu-access-form{display:grid;grid-gap:10px;gap:10px}.menu-access-option{align-items:center;background:#fffafa;border:1px solid #efe7e6;border-radius:10px;color:var(--ink);display:inline-flex;font-size:12px;font-weight:800;gap:7px;padding:7px 9px}.menu-access-option input{accent-color:var(--primary)}.admin-vendor-list{display:grid;grid-gap:16px;gap:16px}.admin-vendor-group{overflow:hidden}.admin-vendor-head{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:12px}.admin-vendor-head h2{color:var(--primary);font-size:22px;font-weight:900;margin:0}.vendor-auto-send-form{align-items:center;background:#fffafa;border:1px solid #efe7e6;border-radius:12px;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;padding:10px 12px}.vendor-auto-send-form .field{min-width:180px}.vendor-request-upload-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.vendor-request-upload-card{display:grid;grid-gap:10px;gap:10px}.vendor-request-upload-card h3{font-size:18px;margin:0}.upload-button{cursor:pointer;position:relative}.upload-button input{height:1px;opacity:0;pointer-events:none;position:absolute;width:1px}.receipt-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.receipt-list a{align-items:center;background:#fffafa;border:1px solid #efe7e6;border-radius:999px;color:var(--primary);display:inline-flex;font-size:13px;font-weight:800;gap:8px;padding:7px 10px;text-decoration:none}.receipt-list a:hover{background:var(--primary);border-color:var(--primary);color:#fff}.receipt-list a span{color:inherit;font-size:12px;opacity:.8}.admin-vendor-table input,.admin-vendor-table select{min-width:105px}.admin-vendor-request-row td{background:var(--primary-soft);border-bottom:0;color:var(--primary);padding-top:16px}.admin-vendor-request-row strong{display:inline-block;font-weight:900;margin-right:10px}.admin-vendor-request-row span{color:var(--muted);font-size:13px;font-weight:800}.admin-vendor-store-row td{background:#fffafa;border-bottom:1px solid #efe7e6;color:var(--ink)}.admin-vendor-store-row td,.schedule-status{font-size:13px;font-weight:900;text-transform:uppercase}.schedule-status{background:#fff;border:1px solid var(--line);border-radius:999px;color:var(--muted);padding:9px 13px}.schedule-status.approved{background:#e9f8ef;border-color:#bde8ca;color:#188143}.schedule-status.pending_approval{background:#fff8e6;border-color:#f0d78b;color:#9a6b04}.schedule-status-row{align-items:center;display:flex;gap:10px;justify-content:flex-end;margin-top:12px}.schedule-status-row span{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.schedule-board-panel,.schedule-history-panel,.schedule-holiday-panel,.schedule-request-panel,.schedule-shift-panel{margin-top:16px}.schedule-request-table-wrap{margin-top:14px}.schedule-request-filter{margin-bottom:14px}.schedule-request-table{min-width:760px}.schedule-holiday-table,.schedule-shift-table{min-width:420px}.schedule-shift-table th{background:#fffafa;color:var(--primary);font-size:12px;text-transform:uppercase}.schedule-shift-table td{font-size:13px;font-weight:800}.schedule-holiday-table th{background:#fff4f4;color:#b71f1d;font-size:12px;text-transform:uppercase}.schedule-holiday-table td{font-size:13px;font-weight:800}.schedule-shift-table strong{background:var(--primary-soft);border-radius:999px;color:var(--primary);display:inline-flex;justify-content:center;min-width:42px;padding:5px 9px}.schedule-table-wrap{border:1px solid var(--line);border-radius:14px;overflow:auto;-webkit-overflow-scrolling:touch}.schedule-table{border-collapse:separate;border-spacing:0;min-width:1040px;width:max-content}.schedule-table td,.schedule-table th{background:#fff;border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:6px;vertical-align:top}.schedule-table thead th{background:#fffafa;color:var(--primary);font-size:11px;font-weight:900;min-width:58px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.schedule-table th:first-child{left:0;min-width:138px;position:-webkit-sticky;position:sticky;z-index:3}.schedule-table tbody th{color:var(--ink);font-size:12px;font-weight:900}.schedule-table tbody th span{display:block;max-width:122px;white-space:normal}.schedule-table td{min-width:58px}.schedule-table input,.schedule-table select{background:#fff;border:1px solid #e0dcda;border-radius:999px;color:var(--ink);display:block;font-size:11px;font-weight:800;min-height:30px;outline:none;padding:5px 8px;width:100%}.schedule-table select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(45deg,transparent 50%,var(--primary) 50%) calc(100% - 10px) 12px /5px 5px no-repeat,linear-gradient(135deg,var(--primary) 50%,transparent 50%) calc(100% - 6px) 12px /5px 5px no-repeat,#fff;cursor:pointer;padding-right:18px;text-align:center;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.schedule-table select:hover{border-color:rgba(149,36,35,.5);background-color:#fffafa}.schedule-table input{border-radius:8px;font-size:10px;font-weight:700;margin-top:4px;min-height:26px;padding:4px 6px}.schedule-table input:focus,.schedule-table select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(149,36,35,.12)}.schedule-table td.weekend,.schedule-table th.weekend{background:#fff4f4}.schedule-table td.holiday,.schedule-table th.holiday{background:#fde7e7}.schedule-table td.today,.schedule-table th.today{background:#fff1d8;box-shadow:inset 0 0 0 2px #e7a52b}.schedule-table th.holiday,.schedule-table th.weekend{color:#b71f1d}.schedule-table td.readonly-info{background:#f7f7f6;color:var(--muted)}.schedule-next-month-info{align-items:center;display:grid;grid-gap:4px;gap:4px;justify-items:center;min-height:60px}.schedule-next-month-info strong{background:#ece8e6;border-radius:999px;color:var(--muted);font-size:10px;padding:4px 7px;text-transform:uppercase}.schedule-next-month-info span{font-size:11px;font-weight:900}.staff-month-schedule-table{min-width:1680px}.staff-schedule-cell{align-items:center;display:grid;grid-gap:5px;gap:5px;justify-items:center;min-height:54px}.staff-schedule-cell strong{background:var(--primary-soft);border-radius:999px;color:var(--primary);font-size:13px;min-width:36px;padding:6px 8px;text-align:center}.staff-schedule-cell span{color:var(--muted);font-size:10px;font-weight:800;text-align:center}.staff-calendar-month{display:grid;grid-gap:14px;gap:14px}.staff-calendar-week{border:1px solid var(--line);border-radius:14px;overflow:hidden}.staff-calendar-week-title{background:#fffafa;color:var(--primary);font-size:14px;font-weight:900;padding:10px 12px;text-transform:uppercase}.staff-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.staff-calendar-day{background:#fff;border-right:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;min-height:128px;padding:12px}.staff-calendar-day:last-child{border-right:0}.staff-calendar-day.weekend{background:#fff4f4}.staff-calendar-day.holiday{background:#fde7e7}.staff-calendar-day.today{background:#fff1d8;box-shadow:inset 0 0 0 2px #e7a52b}.staff-calendar-day.today strong{color:#9a5b00}.staff-calendar-day.readonly-info{background:#f7f7f6}.staff-calendar-day span{color:var(--muted);font-size:14px;font-weight:900}.staff-calendar-day strong{color:var(--primary);font-size:34px;line-height:1}.staff-calendar-day small{color:var(--muted);font-size:13px;font-weight:800}.schedule-note{background:rgba(149,36,35,.08);border:1px solid rgba(149,36,35,.16);border-radius:10px;color:var(--primary);display:block;line-height:1.35;margin-top:2px;padding:6px 8px}.staff-calendar-day .next-month-label{color:var(--muted);font-size:18px}.schedule-actions{justify-content:flex-end;margin-top:14px}.schedule-history-list{display:grid;grid-gap:10px;gap:10px}.schedule-history-item{align-items:flex-start;background:#fffafa;border:1px solid #efe7e6;border-radius:12px;display:flex;gap:12px;justify-content:space-between;padding:12px}.schedule-history-item strong{color:var(--primary);display:block;font-size:14px;margin-bottom:4px}.schedule-history-item p{color:var(--ink);margin:0}.schedule-history-item span{color:var(--muted);flex:0 0 auto;font-size:12px;font-weight:800;text-align:right}.schedule-change-history{margin-top:18px}.schedule-change-history h3{font-size:18px;margin-bottom:10px}.schedule-history-filter{margin-bottom:14px}.schedule-change-table{min-width:900px}.schedule-change-table th{background:#fffafa;color:var(--primary);font-size:12px;text-transform:uppercase}.schedule-change-table td{font-size:13px;font-weight:800}.overtime-summary-cards{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:16px}.overtime-summary-card{background:linear-gradient(135deg,#fff,#fff6f6);border-color:#f0dddd}.overtime-summary-card.total{background:linear-gradient(135deg,var(--primary) 0,#bd3f3d 100%);color:#fff}.overtime-summary-card span{color:var(--muted);display:block;font-size:12px;font-weight:900;text-transform:uppercase}.overtime-summary-card.total span{color:rgba(255,255,255,.78)}.overtime-summary-card strong{display:block;font-size:26px;line-height:1.1;margin-top:8px}.overtime-summary-card p{font-size:14px;font-weight:900;margin:6px 0 0}.overtime-table-wrap{max-height:70vh}.overtime-table{border-collapse:separate;border-spacing:0;min-width:1320px}.overtime-table td,.overtime-table th{border-bottom:1px solid #f0e8e7;font-size:12px;min-width:42px;padding:10px 8px;text-align:center;white-space:nowrap}.overtime-table td:first-child,.overtime-table th:first-child{left:0;min-width:180px;position:-webkit-sticky;position:sticky;text-align:left;z-index:2}.overtime-table thead th{background:#fffafa;color:var(--primary);position:-webkit-sticky;position:sticky;top:0;z-index:3}.overtime-table thead th:first-child{z-index:4}.overtime-table tbody th{background:#fff;color:var(--ink);font-size:13px}.overtime-table tbody tr:hover td,.overtime-table tbody tr:hover th{background:#fff7f7}.overtime-day-name{color:var(--muted);font-size:10px;font-weight:600;text-transform:capitalize}.overtime-table td{position:relative}.overtime-cell-noted{cursor:help}.overtime-note-dot{background:var(--primary);border-radius:50%;display:block;height:5px;margin:2px auto 0;width:5px}.overtime-note-text{font-size:.75rem;margin-top:2px;white-space:normal;word-break:break-word}.dashboard-schedule-panel{margin-top:18px}.dashboard-schedule-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(7,minmax(0,1fr))}.dashboard-schedule-day{background:#fffafa;border:1px solid #efe7e6;border-radius:12px;min-height:112px;padding:12px}.dashboard-schedule-day.today{background:var(--primary);border-color:var(--primary);color:#fff}.dashboard-schedule-day span{color:var(--muted);display:block;font-size:12px;font-weight:900;margin-bottom:8px;text-transform:uppercase}.dashboard-schedule-day.today span{color:rgba(255,255,255,.78)}.dashboard-schedule-day strong{display:block;font-size:24px;line-height:1;margin-bottom:8px}.dashboard-schedule-day p{font-size:13px;font-weight:800;margin:0}.dashboard-schedule-day small{color:inherit;display:block;font-size:12px;margin-top:8px;opacity:.78}.dashboard-schedule-day .schedule-note{color:var(--primary);opacity:1}.dashboard-schedule-day.today .schedule-note{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.28);color:#fff}.checkbox-line{align-items:center;color:var(--muted);display:inline-flex;font-size:13px;font-weight:700;gap:8px}.pagination{align-items:center;display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.disabled-link{opacity:.48;pointer-events:none}@media (max-width:1024px){.shell{padding-left:20px}}.spice-report-panel{width:100%}.spice-report-panel .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spice-stock-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.spice-stock-card{background:#fffafa;border:1px solid #eadcdb;border-radius:14px;padding:14px}.sales-report-panel{width:100%}.sales-report-panel .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sales-chart-panel{margin-top:16px}.sales-chart-filter{border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:16px}.sales-chart-cards{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:16px}.sales-chart-card{background:#fffafa;border:1px solid #efe7e6;border-radius:14px;padding:16px}.sales-chart-card.total{background:linear-gradient(135deg,var(--primary),#bd3f3d);color:#fff}.sales-chart-card span{color:var(--muted);display:block;font-size:12px;font-weight:900;text-transform:uppercase}.sales-chart-card.total span{color:rgba(255,255,255,.78)}.sales-chart-card strong{display:block;font-size:24px;line-height:1.1;margin-top:8px}.sales-chart-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.sales-chart-box{background:#fff;border:1px solid #efe7e6;border-radius:14px;padding:14px}.sales-chart-box h3{font-size:16px;margin-bottom:12px}.sales-chart-bars,.sales-chart-row{display:grid;grid-gap:10px;gap:10px}.sales-chart-row{align-items:center;grid-template-columns:minmax(90px,.8fr) minmax(100px,1.6fr) minmax(110px,auto)}.sales-chart-row span,.sales-chart-row strong{font-size:12px;font-weight:900}.sales-chart-row span{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sales-chart-row strong{color:var(--primary);text-align:right}.sales-chart-row div{background:#f3e7e6;border-radius:999px;height:12px;overflow:hidden}.sales-chart-row i{background:linear-gradient(90deg,var(--primary),#cf5b58);border-radius:inherit;display:block;height:100%}.sales-layout{display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr)}.sales-card{background:linear-gradient(135deg,rgba(149,36,35,.05),transparent 44%),#fffafa;border:1px solid #eadcdb;border-radius:16px;display:grid;grid-gap:12px;gap:12px;padding:14px}.sales-card h2{font-size:18px;margin:0}.cash-denomination-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(5,minmax(88px,1fr))}.cash-denomination input{text-align:center}.sales-payment-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.sales-total-card{background:#fff;border:1px solid #eadcdb;border-radius:14px;display:grid;grid-gap:4px;gap:4px;padding:12px}.sales-total-card span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.sales-total-card strong{color:var(--primary);font-size:22px}.sales-total-card.compact{align-items:center;display:flex;justify-content:space-between}.sales-difference.balanced,.sales-total-card.balanced strong{color:var(--ok)}.sales-difference.plus,.sales-total-card.plus strong{color:var(--warning)}.sales-difference.minus,.sales-total-card.minus strong{color:var(--danger)}.sales-difference{font-weight:900;white-space:nowrap}.payment-status-badge{border-radius:999px;display:inline-block;font-size:12px;font-weight:700;padding:4px 10px;white-space:nowrap}.payment-status-badge.paid{background:rgba(37,117,76,.14);color:var(--ok)}.payment-status-badge.unpaid{background:rgba(217,87,60,.14);color:var(--danger)}.attendance-panel{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.attendance-status{display:grid;grid-gap:8px;gap:8px}.attendance-status p{color:var(--muted);font-size:13px;margin:0}.attendance-check-form{display:grid;grid-gap:10px;gap:10px;justify-items:start;min-width:220px}.attendance-error{color:var(--danger);font-size:13px;margin:0}.attendance-success{color:var(--ok);font-size:13px;margin:0}.button-spinner{animation:route-spin .76s linear infinite;border-radius:999px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;display:inline-block;height:13px;margin-right:8px;vertical-align:-2px;width:13px}.dashboard-attendance-card{align-items:center;display:flex;gap:12px;justify-content:space-between}.dashboard-attendance-staff{display:grid;grid-gap:12px;gap:12px;width:100%}.dashboard-attendance-staff-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.activity-history{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.master-sections{display:grid;grid-gap:14px;gap:14px}.master-section summary{cursor:pointer;font-size:20px;font-weight:800;list-style:none}.master-section summary::-webkit-details-marker{display:none}.master-section summary:after{color:var(--primary);content:"⌄";float:right}.master-section[open] summary{margin-bottom:16px}.master-section[open] summary:after{transform:rotate(180deg)}.master-add-form{background:#fffafa;border:1px solid #eadcdb;border-radius:14px;margin-bottom:16px;padding:14px}.inline-edit-form,.master-card{display:block}.master-card{min-height:138px;transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}.master-card:hover{background:var(--primary);box-shadow:0 16px 34px rgba(149,36,35,.18);color:#fff;transform:translateY(-2px)}.master-card:hover .muted{color:rgba(255,255,255,.78)}.alert{background:var(--primary-soft);border:1px solid #e7c9c8;border-radius:12px;color:var(--primary-strong);padding:10px 12px}.alert.success{background:#eef8f1;border-color:#cfe8d8;color:var(--ok)}.password-panel{max-width:520px}.toast{animation:toast-in .18s ease-out;border-radius:14px;box-shadow:0 16px 34px rgba(35,31,32,.12);color:#fff;font-weight:800;padding:12px 14px;position:fixed;right:24px;top:24px;z-index:110}.toast.draft{background:var(--primary)}.toast.submit{background:#25754c}.toast.delete{background:var(--primary)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.route-loading-overlay{background:rgba(240,240,239,.58);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);inset:0;position:fixed;z-index:100}.route-loading-content,.route-loading-overlay{align-items:center;display:flex;justify-content:center}.route-loading-content{color:var(--muted);flex-direction:column;font-size:14px;font-weight:700;gap:14px;min-height:min(520px,calc(100vh - 160px));padding:48px 20px}.route-spinner{animation:route-spin .76s linear infinite;border-radius:999px;border:4px solid rgba(149,36,35,.18);border-top:4px solid var(--primary);box-shadow:0 12px 30px rgba(149,36,35,.16);height:54px;width:54px}@keyframes route-spin{to{transform:rotate(1turn)}}@media (max-width:760px){body{background:var(--app-bg)}.shell{display:block;padding:0}.app-frame{border-radius:0;min-height:100vh}.sidebar{display:none}.page-head{align-items:stretch;flex-direction:column;gap:12px}.topbar{align-items:center;display:grid;grid-gap:22px 12px;gap:22px 12px;grid-template-columns:52px minmax(0,1fr) auto;grid-template-rows:auto 52px;min-height:162px;padding:18px 20px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar-start{display:contents}.topbar-start .brand{font-size:22px;gap:12px;grid-column:1/-1;grid-row:1;justify-self:center}.topbar-start .brand-mark{font-size:20px;height:44px;width:44px}.topbar-start .menu-trigger{grid-column:1;grid-row:2;height:52px;width:52px}.mobile-user-greeting{align-self:center;color:var(--primary);display:block;font-family:Trebuchet MS,Avenir Next,Inter,sans-serif;font-size:clamp(19px,5.8vw,27px);font-weight:900;grid-column:2;grid-row:2;justify-self:center;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.nav{border-radius:14px;flex-wrap:nowrap;overflow-x:auto;padding:5px;scrollbar-width:none;width:100%}.nav::-webkit-scrollbar{display:none}.button,.nav a,.nav button{flex:0 0 auto;min-height:36px;padding:8px 12px;white-space:nowrap}.nav-dropdown{display:inline-flex;flex:0 0 auto;gap:4px;position:static}.nav-dropdown:after{content:none}.nav-dropdown-menu{background:#fffafa;border:1px solid #efe0df;border-radius:999px;box-shadow:none;display:none;flex:0 0 auto;gap:4px;min-width:0;opacity:1;padding:4px;pointer-events:auto;position:static;transform:none}.nav-dropdown.open .nav-dropdown-menu{display:inline-flex}.nav .nav-dropdown-menu a{background:#fff;border-radius:999px;justify-content:center;width:auto}.user-chip{align-items:center;display:flex;gap:8px;grid-column:3;grid-row:2;justify-content:space-between;justify-self:end;width:auto}.user-chip span{display:none}.user-chip form{display:flex}.user-chip .icon-button,.user-chip button.icon-button{background:#fff;color:var(--primary);display:inline-flex;flex:0 0 44px;height:44px;min-height:44px;min-width:44px;opacity:1;padding:8px;visibility:visible;width:44px}.tooltip-button:after{display:none}.content{padding:18px 12px 36px}.dashboard-page{padding:0 12px 8px}.dashboard-page-head{gap:22px;margin-bottom:22px}.dashboard-page-head .eyebrow{font-size:15px;margin-bottom:10px;text-transform:none}.dashboard-page-head h1{font-size:clamp(27px,8vw,36px);line-height:1.08;margin-bottom:8px}.dashboard-page-head>div>.muted{font-size:17px;line-height:1.35;margin-bottom:0}.dashboard-page-head>.button.primary{border-radius:999px;font-size:18px;font-weight:800;min-height:54px;width:100%}.dashboard-stats{gap:16px}.dashboard-stats .stat{border-radius:20px;min-height:158px;padding:22px 24px}.dashboard-stats .stat>span{font-size:17px}.dashboard-stats .stat strong{font-size:42px;line-height:1}.dashboard-stats .stat:after{font-size:24px;height:48px;right:20px;top:20px;width:48px}.dashboard-page .dashboard-attendance-card{border-radius:20px;min-height:126px;padding:20px 22px}.dashboard-page .dashboard-attendance-card .eyebrow{font-size:14px;margin-bottom:8px}.dashboard-page .dashboard-attendance-card strong{display:block;font-size:17px;line-height:1.22;max-width:230px}.dashboard-attendance-staff>.button,.dashboard-page .dashboard-attendance-card>.button{flex:0 0 auto;font-size:16px;min-height:46px;padding-inline:18px}.dashboard-request-panel{border-radius:20px;padding:22px}.dashboard-request-panel>.page-head h2{font-size:22px;margin-bottom:22px}.dashboard-request-panel>.page-head p{font-size:17px;line-height:1.35}.dashboard-request-panel .filter-grid{gap:14px}.dashboard-request-panel .field label{font-size:14px;padding-left:0}.dashboard-request-panel .field input[type=date]{border-radius:16px;min-height:52px;padding-inline:14px}.login-page{align-items:start;min-height:100vh;overflow-y:auto;padding:18px 18px 54px}.login-footer{bottom:16px;position:fixed}.login-stage{gap:16px;grid-template-columns:1fr}.login-hero{gap:10px}.login-hero h1{font-size:30px}.login-hero p{font-size:15px;margin-bottom:0}.mascot-card{height:190px;max-width:none}.login-mascot-image{height:96%;transform:translateZ(0) scale(.94)}.jcore-mascot{height:150px}.login-box{max-width:none}.daily-report-group{margin-bottom:12px}.dashboard-batch-group{padding:10px}.batch-title-row{align-items:flex-start;flex-direction:column;gap:8px}.batch-title-row h3{font-size:16px}.batch-title-row .button{width:100%}.vendor-report-list{gap:12px}.vendor-report-group h3{font-size:15px}.report-item-row{gap:7px;grid-template-columns:minmax(0,1fr) auto auto;min-height:38px;padding:7px 8px}.report-item-product{font-size:13px}.report-item-qty{font-size:12px;min-width:32px;padding:4px 7px}.status-icon{font-size:12px;height:25px;width:25px}.filter-grid,.grid.cols-3,.sales-chart-grid,.sales-chart-row,.sales-layout,.sales-payment-grid,.sales-report-panel .filter-grid,.spice-stock-grid{grid-template-columns:1fr}.sales-chart-row{align-items:stretch;gap:6px}.sales-chart-row strong{text-align:left}.shopping-chart-grid,.shopping-chart-row{grid-template-columns:1fr}.shopping-chart-row{align-items:stretch;gap:6px}.shopping-chart-row strong{text-align:left}.cash-denomination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-grid .button{width:100%}.pagination{align-items:stretch;flex-direction:column}.pagination .button{justify-content:center;width:100%}.panel{border-radius:14px;padding:14px}.page-head{margin-bottom:14px}h1{font-size:25px}h2{font-size:18px}.row-actions{align-items:stretch;flex-direction:column}.row-actions .button,.row-actions button,.row-actions input[type=file]{width:100%}.field[style]{grid-column:auto!important}.field,.field input,.field select,.field textarea{max-width:100%;min-width:0}.field input[type=date]{display:block;font-size:16px;line-height:1.2;min-height:44px;padding:10px 12px;width:100%}.field input[type=date]::-webkit-date-and-time-value{min-height:22px;text-align:left}.field input[type=date]::-webkit-calendar-picker-indicator{flex:0 0 auto;margin-left:4px}.field select,.row-actions select,td select{color:var(--ink);font-size:16px;max-width:100%;min-width:0}.table-wrap{overflow:visible}table{border-collapse:separate;border-spacing:0 12px;min-width:0}.request-items-table{padding-bottom:18px}.request-items-table table{table-layout:auto}.request-items-table td:first-child,.request-items-table td:nth-child(2),.request-items-table td:nth-child(3),.request-items-table td:nth-child(4),.request-items-table th:first-child,.request-items-table th:nth-child(2),.request-items-table th:nth-child(3),.request-items-table th:nth-child(4){width:100%}thead{display:none}tbody,td,tr{display:block;width:100%}tr{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 22px rgba(35,31,32,.04);padding:10px}tr:hover{box-shadow:0 12px 28px rgba(149,36,35,.08);transform:translateY(-1px)}td{border-bottom:0;display:grid;grid-gap:6px;gap:6px;padding:8px 4px}td:before{color:var(--muted);content:attr(data-label);font-size:12px;font-weight:800;text-transform:uppercase}td:empty{display:none}td .button,td button{justify-self:start}td input,td select{min-height:44px}.compact-mobile-wrap{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.compact-mobile-table{border-collapse:collapse;border-spacing:0;font-size:12px;min-width:560px}.compact-mobile-table thead{display:table-header-group}.compact-mobile-table tbody{display:table-row-group}.compact-mobile-table tr{background:transparent;border:0;border-radius:0;display:table-row;padding:0;width:auto}.compact-mobile-table tr,.compact-mobile-table tr:hover{box-shadow:none;transform:none}.compact-mobile-table td,.compact-mobile-table th{display:table-cell;padding:9px 8px;vertical-align:middle;white-space:nowrap;width:auto}.compact-mobile-table td{border-bottom:1px solid var(--line);gap:0}.compact-mobile-table td:before{content:none}.compact-mobile-table td:empty{display:table-cell}.compact-mobile-table td .button,.compact-mobile-table td button{justify-self:auto;min-height:34px;padding:8px 10px;white-space:nowrap}.overtime-table-wrap{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.overtime-table{border-collapse:separate;border-spacing:0;font-size:11px;min-width:720px}.overtime-table thead{display:table-header-group}.overtime-table tbody{display:table-row-group}.overtime-table tr{background:transparent;border:0;border-radius:0;display:table-row;padding:0;width:auto}.overtime-table tr,.overtime-table tr:hover{box-shadow:none;transform:none}.overtime-table td,.overtime-table th{display:table-cell;vertical-align:middle;white-space:nowrap;width:auto}.overtime-table td:before{content:none}.overtime-table td:first-child,.overtime-table th:first-child{max-width:90px;min-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overtime-table td:empty{display:table-cell}.admin-vendor-head{align-items:stretch;flex-direction:column}.dashboard-schedule-grid,.staff-calendar-days{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-calendar-day{border-bottom:1px solid var(--line);min-height:112px}.admin-vendor-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-vendor-table{display:table;min-width:980px}.admin-vendor-table thead{display:table-header-group}.admin-vendor-table tbody{display:table-row-group}.admin-vendor-table tr{display:table-row}.admin-vendor-table td,.admin-vendor-table th{display:table-cell;white-space:nowrap}.admin-vendor-table td:before{content:none}.schedule-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.schedule-table{display:table;min-width:800px}.schedule-table thead{display:table-header-group}.schedule-table tbody{display:table-row-group}.schedule-table tr{background:transparent;border:0;border-radius:0;box-shadow:none;display:table-row;padding:0;transform:none;width:auto}.schedule-table td,.schedule-table th{display:table-cell;white-space:normal;width:auto}.schedule-table td:before{content:none}.schedule-table th:first-child{min-width:50px;width:50px}.schedule-table tbody th span{max-width:50px}.shopping-total-card{align-items:flex-start;flex-direction:column;gap:6px}}.ios-install-banner{align-items:center;background:#952423;color:#fff;display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;position:-webkit-sticky;position:sticky;top:0;z-index:200}.ios-install-banner button{background:transparent;border:none;color:#fff;cursor:pointer;flex-shrink:0;font-size:16px;line-height:1;padding:4px}