:root{--background: hsl(0 0% 100%);--surface: hsl(210 40% 98%);--foreground: hsl(222.2 84% 4.9%);--muted: hsl(215.4 16.3% 46.9%);--muted-2: hsl(215 20% 65%);--border: hsl(214.3 31.8% 91.4%);--border-soft: hsl(214 28% 94%);--primary: hsl(221.2 83.2% 53.3%);--primary-hover: hsl(221.2 83.2% 48%);--primary-foreground: hsl(0 0% 100%);--destructive: hsl(0 74% 42%);--destructive-bg: hsl(0 86% 97%);--success: hsl(160 84% 28%);--success-bg: hsl(152 81% 96%);--warning: hsl(38 92% 38%);--chip-info-bg: hsl(214 100% 97%);--chip-info-fg: hsl(221.2 83.2% 43%);--chip-info-border: hsl(214 96% 87%);--radius: .5rem;--radius-sm: .375rem;--shadow-card: 0 1px 2px 0 rgb(15 23 42 / .04), 0 1px 3px 0 rgb(15 23 42 / .06);--shadow-card-hover: 0 4px 6px -1px rgb(15 23 42 / .08), 0 2px 4px -2px rgb(15 23 42 / .06)}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;color:var(--foreground);background:var(--surface)}button,input,select,textarea{font:inherit}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em;color:var(--foreground)}h1{font-size:24px;line-height:1.2}h2{font-size:17px;line-height:1.3}.loading-screen,.state-screen,.login-layout{min-height:100vh;display:grid;place-items:center;padding:24px}.state-screen{gap:12px;text-align:center}.state-screen h1{font-size:20px}.state-card{width:min(420px,100%);background:var(--background);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:32px 28px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.state-card h1{font-size:20px;margin:0}.state-card-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:2px}.state-card-icon--warning{color:var(--warning);background:#fef5e7}.state-card-icon--neutral{color:var(--muted);background:var(--surface)}.state-card-message{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.state-card-detail{margin:4px 0 0;max-width:100%;padding:6px 10px;border-radius:var(--radius-sm);background:var(--surface);color:var(--muted-2);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-word}.state-card-actions{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;margin-top:8px}.state-card-actions .primary-button{width:100%}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-layout{background:radial-gradient(120% 80% at 50% -10%,hsl(221.2 83.2% 96%),transparent 60%),var(--surface)}.login-panel{width:min(400px,100%);padding:36px 32px 32px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--background);box-shadow:0 1px 3px #0f172a0f,0 12px 28px -8px #0f172a1f}.login-head{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:4px}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--primary),hsl(221.2 83.2% 45%));color:#fff;box-shadow:0 4px 10px -2px #2563eb66;margin-bottom:14px}.login-head .eyebrow{margin:0 0 4px}.login-head h1{font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--foreground)}.eyebrow{margin:0 0 6px;color:var(--muted);font-size:12px;font-weight:500;letter-spacing:.02em}.login-form{display:grid;gap:16px;margin-top:24px}.login-form label,.action-confirm label,.form-grid label,.notes-field{display:grid;gap:6px;color:var(--foreground);font-size:13px;font-weight:500}.login-form input,.header-actions select,.form-grid input,.team-form input,.team-form select,.action-confirm input[type=date],.notes-field textarea,.product-row input{width:100%;min-height:38px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;background:var(--background);color:var(--foreground);transition:border-color .15s ease,box-shadow .15s ease}.login-form input:focus,.header-actions select:focus,.form-grid input:focus,.team-form input:focus,.team-form select:focus,.action-confirm input[type=date]:focus,.notes-field textarea:focus,.product-row input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.notes-field textarea{min-height:84px;padding:10px 12px;resize:vertical}.primary-button,.state-screen button:not(.text-button):not(.secondary-button){display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 18px;border:0;border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-foreground);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--background);color:var(--foreground);font-size:14px;font-weight:500;cursor:pointer}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0;border:0;background:transparent;color:var(--primary);font-size:13px;font-weight:500;cursor:pointer}.primary-button:hover:not(:disabled),.state-screen button:not(.text-button):not(.secondary-button):hover{background:var(--primary-hover)}.primary-button:disabled{cursor:not-allowed;opacity:.55}.secondary-button:disabled,.text-button:disabled{cursor:not-allowed;opacity:.55}.holiday-auth-note{display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding:12px;border:1px solid var(--chip-info-border);border-radius:var(--radius-sm);background:var(--chip-info-bg);color:var(--chip-info-fg);font-size:13px}.holiday-state{max-width:520px;margin:0 auto}.state-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.holiday-page{display:flex;flex-direction:column;min-height:100vh}.holiday-page-body{flex:1;padding:28px clamp(16px,4vw,28px)}.holiday-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;max-width:1080px;margin:0 auto 20px}.holiday-page-header h1{font-size:20px}.holiday-page-header p{margin:4px 0 0;color:var(--muted);font-size:13px}.holiday-delivery{border:1px solid var(--border);border-radius:var(--radius);background:var(--background);box-shadow:var(--shadow-card)}.holiday-delivery-header p{color:var(--muted);font-size:13px}.holiday-deliveries{display:grid;gap:12px;max-width:1080px;margin:0 auto}.holiday-delivery{padding:16px}.holiday-delivery-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--border-soft)}.holiday-delivery-header p{margin:4px 0 0}.holiday-items-table-wrap{margin-top:12px;overflow-x:auto;border:1px solid var(--border-soft);border-radius:var(--radius-sm)}.holiday-items-table{width:100%;border-collapse:collapse;font-size:13px}.holiday-items-table thead th{text-align:left;padding:8px 12px;background:var(--surface-muted, #f8f9fb);color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border-soft);white-space:nowrap}.holiday-items-table tbody td{padding:8px 12px;border-top:1px solid var(--border-soft);color:var(--foreground);vertical-align:middle}.holiday-items-table tbody tr:first-child td{border-top:none}.holiday-items-table .holiday-items-code{color:var(--muted);white-space:nowrap}.holiday-items-table .holiday-items-qty{text-align:right;white-space:nowrap}.holiday-items-qty-value{font-variant-numeric:tabular-nums}.holiday-items-qty-head{display:inline-flex;align-items:center;gap:4px}.holiday-qty-info{display:inline-flex;align-items:center;color:var(--muted);cursor:help}.holiday-rejected-banner{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:12px 14px;border:1px solid #fecaca;background:#fef2f2;border-radius:var(--radius-sm);color:#991b1b;font-size:13px}.holiday-rejected-banner p{margin:4px 0 0}.holiday-info-banner{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;border:1px solid var(--border-soft);background:#fefce8;border-radius:var(--radius-sm);color:#854d0e;font-size:13px}.holiday-info-banner--ok{background:#f0fdf4;color:#166534}.holiday-option.is-disabled{cursor:not-allowed}.holiday-option.is-disabled:not(.is-selected){opacity:.5}.holiday-options{display:flex;flex-wrap:wrap;gap:8px 20px;padding-top:12px}.holiday-option{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:var(--foreground)}.holiday-option input{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--primary)}.holiday-option.is-selected input:disabled{accent-color:var(--primary);opacity:1}.holiday-option.is-selected{font-weight:600;color:var(--primary)}.holiday-items-qty input{width:88px;min-height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 10px;text-align:right}.holiday-qty-stepper{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.holiday-qty-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;min-height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--background, #fff);font-size:18px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none}.holiday-qty-btn:hover:not(:disabled){background:var(--muted-bg, #f3f4f6)}.holiday-qty-btn:disabled{opacity:.4;cursor:not-allowed}.holiday-items-qty .holiday-qty-input{width:64px;text-align:center}.holiday-qty-input::-webkit-outer-spin-button,.holiday-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.holiday-qty-input{-moz-appearance:textfield;appearance:textfield}.holiday-qty-hint{font-size:11px;color:var(--muted);white-space:nowrap}.holiday-notes{display:grid;gap:6px;margin-top:12px;color:var(--foreground);font-size:13px;font-weight:500}.holiday-notes textarea{min-height:70px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;resize:vertical}.holiday-submit-button{margin-top:16px;margin-left:auto;display:flex;width:fit-content}@media(max-width:720px){.holiday-submit-button{width:100%;justify-content:center}.holiday-page{padding:18px}.holiday-page-header,.holiday-delivery-header{display:grid}}.icon-button{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--background);color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease}.icon-button:hover:not(:disabled){background:var(--surface);color:var(--foreground)}.icon-button:disabled{cursor:not-allowed;opacity:.55}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--background);color:var(--foreground);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease}.secondary-button:hover:not(:disabled){background:var(--surface);border-color:#bccadc}.secondary-button:disabled{cursor:not-allowed;opacity:.45}.form-error{border:1px solid hsl(0 86% 90%);border-radius:var(--radius-sm);padding:10px 12px;background:var(--destructive-bg);color:var(--destructive);font-size:13px}.form-message{border:1px solid hsl(152 60% 85%);border-radius:var(--radius-sm);padding:10px 12px;background:var(--success-bg);color:var(--success);font-size:13px}.form-note{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface);color:var(--muted);font-size:13px}.reset-state{display:grid;justify-items:center;gap:14px;margin-top:24px;text-align:center;color:var(--muted)}.reset-state svg{color:var(--primary)}.portal-shell{display:flex;flex-direction:column;min-height:100vh}.portal-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:auto;padding:18px 16px 22px;border-top:1px solid var(--border-soft);color:var(--muted-2);font-size:12px}.portal-footer-dot{color:var(--border)}.portal-header{padding:12px 0;border-bottom:1px solid var(--border);background:var(--background);box-shadow:0 1px 2px #0f172a08}.portal-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(1180px,calc(100% - 32px));margin:0 auto}.portal-header-identity{display:flex;align-items:center;gap:14px;min-width:0}.portal-brand{display:inline-flex;align-items:center;gap:9px;flex-shrink:0}.portal-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--primary),hsl(221.2 83.2% 45%));color:#fff;box-shadow:0 1px 2px #2563eb4d}.portal-brand-name{font-size:18px;font-weight:700;color:var(--foreground);letter-spacing:-.015em;white-space:nowrap}.portal-header-divider{width:1px;height:28px;background:var(--border);flex-shrink:0}.portal-header-context{display:flex;flex-direction:column;gap:1px;min-width:0}.portal-header h1{font-size:13px;font-weight:600;line-height:1.3;color:var(--foreground);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-header-sub{display:inline-flex;align-items:center;gap:6px;min-width:0}.portal-header-site-icon{color:var(--muted-2);flex-shrink:0}.portal-header-site-name{color:var(--muted);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-pill{display:inline-block;padding:1px 8px;border-radius:999px;background:#e8eefd;color:var(--primary);font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;flex-shrink:0}.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.portal-site-switcher{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--background);color:var(--muted);transition:border-color .15s ease,box-shadow .15s ease}.portal-site-switcher:hover,.portal-site-switcher:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.portal-site-switcher select{border:0;background:transparent;width:auto;min-height:0;height:100%;padding:0;margin:0;font-size:13px;font-weight:500;color:var(--foreground);max-width:180px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.portal-site-switcher select:focus{outline:none;box-shadow:none}.portal-site-switcher>svg:last-child{color:var(--muted-2);pointer-events:none}.header-actions .icon-button{width:32px;height:32px}.user-menu{position:relative}.user-avatar{width:32px;height:32px;border-radius:999px;border:0;cursor:pointer;color:#fff;font-size:13px;font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;transition:transform .12s ease,box-shadow .12s ease}.user-avatar:hover{transform:scale(1.05);box-shadow:0 0 0 2px #e8eefd}.user-avatar:focus-visible{outline:none;box-shadow:0 0 0 2px var(--primary)}.user-menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:50;min-width:220px;background:var(--background, #fff);border:1px solid var(--border-soft, #e5e7eb);border-radius:10px;box-shadow:0 4px 6px -1px #0f172a14,0 10px 25px -5px #0f172a1f;padding:6px;animation:portal-fade-in .12s ease-out}@keyframes portal-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-menu-info{padding:8px 10px 6px;display:flex;flex-direction:column;gap:2px}.user-menu-info strong{font-size:13px;font-weight:600;color:var(--foreground)}.user-menu-info span{font-size:12px;color:var(--muted)}.user-menu-divider{height:1px;background:var(--border-soft, #e5e7eb);margin:4px 0}.user-menu-section-label{padding:4px 10px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.user-menu-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border:0;background:transparent;border-radius:6px;font-size:13px;color:var(--foreground);cursor:pointer;text-align:left}.user-menu-item:hover{background:var(--surface, hsl(220 14% 96%))}.user-menu-item.is-active{color:var(--primary);font-weight:600}.user-menu-item-destructive{color:#db2424}.user-menu-item-destructive:hover{background:#fdeded}.portal-content{display:grid;gap:16px;width:min(1180px,calc(100% - 32px));margin:24px auto 40px}.portal-holiday-banners{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}.portal-holiday-banner{display:inline-flex;align-items:center;gap:7px;max-width:100%;text-align:left;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface, #fff);cursor:pointer;font-size:13px;transition:border-color .15s ease,background .15s ease}.portal-holiday-banner:hover{border-color:#93c5fd;background:#f8fbff}.portal-holiday-banner--action{border-color:#bfdbfe;background:#eff6ff}.portal-holiday-banner--action:hover{border-color:#60a5fa;background:#e0efff}.portal-holiday-banner--review{border-color:#fde68a;border-left:3px solid #f59e0b;background:#fffbeb}.portal-holiday-banner--review:hover{border-color:#fcd34d;border-left-color:#f59e0b;background:#fef9e7}.portal-holiday-banner--rejected{border-color:#fecaca;border-left:3px solid #ef4444;background:#fef2f2}.portal-holiday-banner--rejected:hover{border-color:#fca5a5;border-left-color:#ef4444;background:#fee2e2}.portal-holiday-banner--done{border-color:#d1fae5;border-left:3px solid #10b981;background:#f3fcf8}.portal-holiday-banner--done:hover{border-color:#6ee7b7;border-left-color:#10b981;background:#ecfdf5}.portal-holiday-banner-icon{flex:none;color:#2563eb}.portal-holiday-banner-title{flex:none;font-weight:600;font-size:13px;color:var(--text, #0f172a);white-space:nowrap}.portal-holiday-banner-meta{flex:none;font-size:12px;color:var(--text-muted, #64748b);white-space:nowrap}.portal-holiday-banner-badge{flex:none;display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px}.portal-holiday-banner-badge--action{color:#fff;background:#2563eb;animation:portal-badge-pulse 1.8s ease-in-out infinite}.portal-holiday-banner-badge--review{color:#b45309;background:#fef3c7}.portal-holiday-banner-badge--rejected{color:#b91c1c;background:#fee2e2}.portal-holiday-banner-badge--done{color:#047857;background:#d1fae5}@keyframes portal-badge-pulse{0%,to{box-shadow:0 0 #2563eb73}50%{box-shadow:0 0 0 4px #2563eb00}}@media(prefers-reduced-motion:reduce){.portal-holiday-banner-badge--action{animation:none}}.portal-holiday-banner-chevron{flex:none;color:var(--text-muted, #94a3b8)}.portal-tabbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}.portal-tabbar-action{flex:none;margin-bottom:6px}.portal-tabs{display:flex;align-items:center;gap:4px;padding:0 2px}.portal-tab{position:relative;padding:10px 14px;border:0;background:transparent;color:var(--muted);font-size:14px;font-weight:500;cursor:pointer;transition:color .15s ease}.portal-tab:hover:not(.portal-tab-active){color:var(--foreground)}.portal-tab-active{color:var(--primary)}.portal-tab-active:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--primary);border-radius:2px}.portal-tab:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:4px}.load-more-row{display:flex;justify-content:center;padding-top:12px;margin-top:4px;border-top:1px solid var(--border-soft)}.portal-table-wrap{margin-top:4px;overflow-x:auto}.portal-table{width:100%;border-collapse:collapse;font-size:13px}.portal-table thead th{padding:8px 12px;text-align:left;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);background:transparent;white-space:nowrap}.portal-table tbody td{padding:10px 12px;border-bottom:1px solid var(--border-soft);color:var(--foreground);vertical-align:middle}.portal-table tbody tr:last-child td{border-bottom:0}.portal-table tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--surface) 60%,transparent)}.portal-table tbody tr:hover td{background:var(--surface)}.portal-table-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;color:var(--muted)}.portal-table-muted{color:var(--muted);opacity:.6}.portal-table-amount{text-align:right;font-weight:500;white-space:nowrap}.portal-table-actions{display:flex;justify-content:flex-end;gap:6px;padding-right:4px!important}.portal-table-row-clickable{cursor:pointer}.portal-detail-items-table{font-size:13px}.portal-detail-items-table thead th,.portal-detail-items-table tbody td{padding:8px 10px}.portal-drawer-overlay{position:fixed;inset:0;background:#0f172a66;z-index:100;display:flex;justify-content:flex-end;animation:portal-drawer-fade .18s ease-out}@keyframes portal-drawer-fade{0%{opacity:0}}.portal-drawer{width:min(520px,100%);height:100%;background:var(--background);border-left:1px solid var(--border);box-shadow:-8px 0 24px -8px #0f172a26;display:flex;flex-direction:column;animation:portal-drawer-slide .22s cubic-bezier(.16,1,.3,1)}@keyframes portal-drawer-slide{0%{transform:translate(100%)}}.portal-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.portal-drawer-header .eyebrow{margin-bottom:4px}.portal-drawer-header h2{font-size:18px;line-height:1.25}.portal-drawer-body{flex:1;overflow-y:auto;padding:20px 22px 24px;display:grid;align-content:start;gap:18px}.portal-drawer-body .form-grid{align-items:start}.portal-drawer-body label,.drawer-field{display:grid;gap:6px;font-size:13px;font-weight:500;color:var(--foreground);align-self:start}.portal-drawer-body input[type=date],.portal-drawer-body input[type=text],.portal-drawer-body input[type=number],.portal-drawer-body input:not([type]),.portal-drawer-body textarea,.portal-drawer-body select{width:100%;min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--background);color:var(--foreground);font-size:13px;transition:border-color .15s ease,box-shadow .15s ease}.portal-drawer-body textarea{min-height:80px;padding:10px 12px;resize:vertical}.portal-drawer-body input:focus,.portal-drawer-body textarea:focus,.portal-drawer-body select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.portal-drawer-body .product-table{display:grid;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--background);overflow:hidden}.portal-drawer-body .product-table:before{content:"Products";display:block;padding:9px 12px;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--border)}.portal-drawer-body .product-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-top:1px solid var(--border-soft)}.portal-drawer-body .product-row .holiday-qty-input{width:52px;padding:0 6px;text-align:center}.portal-drawer-body .holiday-qty-input{width:56px;min-height:32px;padding:0 6px;text-align:center}.edit-line-product{display:flex;flex-direction:column;gap:2px}.edit-line-pack{font-size:11px;color:var(--muted)}.portal-drawer-body .product-row .product-row-warn{color:var(--warning);font-weight:500}.portal-selected-date-status{display:flex;align-items:center;gap:8px;margin:-4px 0 14px;padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;line-height:1.4}.portal-selected-date-status svg{flex-shrink:0}.portal-selected-date-status.no-order{color:var(--success);background:var(--success-bg)}.portal-selected-date-status.has-order{color:var(--warning);background:#fef5e7}.portal-selected-date-status .text-button{margin-left:auto}.portal-drawer-body .product-row:first-of-type{border-top:0}.portal-drawer-body .product-row span{display:grid;gap:2px;min-width:0}.portal-drawer-body .product-row strong{font-size:13px;font-weight:500}.portal-drawer-body .product-row small{font-size:11px;color:var(--muted)}.portal-drawer-body .product-row input{width:88px;min-height:32px;padding:0 10px;text-align:right;font-variant-numeric:tabular-nums}.portal-drawer-body .urgent-fee-notice{font-size:13px;color:var(--muted-foreground, #6b7280);padding:8px 0;margin:0;line-height:1.4}.portal-drawer-body .submit-order{justify-self:stretch;width:100%;min-width:0;margin-top:4px}.portal-drawer-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:6px;margin-top:4px;border-top:1px solid var(--border-soft)}.portal-drawer-footer--pinned{flex-shrink:0;margin-top:0;padding:12px 22px;border-top:1px solid var(--border);background:var(--background);align-items:center}.status-pill--modified{background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe}.portal-line-removed-name{text-decoration:line-through;color:var(--muted-foreground, #64748b)}.portal-line-removed{color:#b91c1c}.portal-line-remove{font-size:12px;color:var(--muted-foreground, #64748b)}.portal-add-products-divider td{padding-top:14px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground, #64748b);border-bottom:none}.portal-add-product-row td{opacity:.85}.portal-request-history{list-style:none;margin:0;padding:0;display:grid;gap:4px}.portal-request-history-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--border-soft);border-radius:8px;background:var(--background);cursor:pointer;font-size:13px;text-align:left}.portal-request-history-row:hover{background:#f8fafc}.portal-request-history-row.is-open{background:#f8fafc;border-bottom-left-radius:0;border-bottom-right-radius:0}.portal-request-history-main{display:grid;gap:2px}.portal-request-history-main small{color:#64748b}.portal-request-history-right{display:flex;align-items:center;gap:8px}.portal-request-history-chevron{color:#94a3b8;transition:transform .15s ease}.portal-request-history-chevron.is-open{transform:rotate(180deg)}.portal-request-history-detail{border:1px solid var(--border-soft);border-top:none;border-radius:0 0 8px 8px;padding:10px 12px;display:grid;gap:8px;font-size:13px;background:var(--background)}.portal-confirm-overlay{justify-content:center;align-items:center}.portal-confirm-dialog{width:min(420px,calc(100% - 32px));background:var(--background);border-radius:12px;padding:20px 22px;display:grid;gap:12px;box-shadow:0 20px 50px -12px #0f172a59}.portal-confirm-dialog h3{font-size:16px}.portal-confirm-dialog p{font-size:13px;color:var(--muted-foreground, #475569);line-height:1.5}.portal-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border:none;border-radius:8px;background:#dc2626;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.danger-button:hover{background:#b91c1c}.danger-button:disabled{opacity:.6;cursor:not-allowed}.portal-po-inline-input{width:min(200px,100%);padding:4px 8px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--background)}.portal-fee-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0;border:none;background:none;cursor:pointer;text-align:left}.portal-save-confirm{width:100%;display:grid;gap:8px;font-size:13px}.portal-save-confirm ul{margin:0;padding-left:18px;display:grid;gap:4px;max-height:140px;overflow-y:auto}.portal-save-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.orders-panel{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--background);padding:20px;box-shadow:var(--shadow-card)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-heading--actions-only{justify-content:flex-end}.panel-heading>svg{color:var(--muted-2);flex-shrink:0}.panel-heading h2{margin:0}.inline-state{display:grid;min-height:96px;place-items:center;color:var(--muted)}.muted{margin:0;color:var(--muted);font-size:13px}.order-list,.order-form,.product-table,.team-panel,.action-confirm,.notes-field{display:grid;gap:10px}.action-confirm{margin-top:14px;border-top:1px solid var(--border-soft);padding-top:14px}.action-confirm strong{font-weight:600}.team-form{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:8px}.order-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--border-soft)}.order-row:first-child{border-top:0;padding-top:4px}.order-row>div:first-child{display:grid;gap:2px;min-width:0}.order-row>div:last-child{display:flex;align-items:center;gap:14px;flex-shrink:0}.order-row strong{font-size:14px;font-weight:600;color:var(--foreground);white-space:nowrap}button.order-row{width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--border-soft);font:inherit;color:inherit}button.order-row:first-child{border-top:0}.order-row-clickable{cursor:pointer;padding:10px 12px;border-radius:var(--radius-sm);transition:background .12s ease}.order-row-clickable:hover{background:var(--surface)}.request-items{font-size:13px;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.request-meta{font-size:12px;color:var(--muted-foreground, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reason-chip{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;border-radius:9999px;background:var(--chip-info-bg);color:var(--chip-info-fg);border:1px solid var(--chip-info-border);white-space:nowrap}.pending-badge{margin-left:6px;cursor:pointer;font-family:inherit}.portal-pending-section{background:#fefce8;border:1px solid #fde68a;border-radius:6px;padding:12px}.portal-pending-section h3{margin:0 0 8px;font-size:13px;font-weight:600;color:#92400e}.portal-pending-section p{margin:4px 0;font-size:12px}.portal-pending-diff{margin-top:8px}.portal-pending-diff-new{font-weight:600;color:#92400e}.line-items-table{width:100%;border-collapse:collapse;font-size:13px}.line-items-table th,.line-items-table td{padding:6px 8px;border-bottom:1px solid var(--border-color, #e5e7eb)}.line-item-qty-input{width:80px;padding:4px 8px;font-size:13px;text-align:right}.portal-request-detail{gap:20px}.portal-detail-grid{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px 14px;margin:0;font-size:13px}.portal-detail-grid dt{color:var(--muted);font-weight:500}.portal-detail-grid dd{margin:0;color:var(--foreground)}.portal-detail-section{display:grid;gap:8px;padding-top:14px;border-top:1px solid var(--border-soft)}.portal-detail-section h3{margin:0;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.portal-detail-items{margin:0;padding:0;list-style:none;display:grid;gap:4px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.portal-detail-items li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-top:1px solid var(--border-soft);font-size:13px}.portal-detail-items li:first-child{border-top:0}.portal-detail-items strong{font-weight:500;font-variant-numeric:tabular-nums}.portal-detail-text{margin:0;font-size:13px;line-height:1.5;color:var(--foreground);white-space:pre-wrap}.portal-fee-list{display:grid;grid-template-columns:1fr auto;gap:10px 24px;max-width:360px;margin:0 0 0 auto}.portal-fee-list dt{font-size:13px;color:var(--muted)}.portal-fee-list dd{margin:0;font-size:13px;text-align:right;font-variant-numeric:tabular-nums;color:var(--foreground)}.portal-fee-list .portal-fee-total-label,.portal-fee-list .portal-fee-total-value{padding-top:8px;border-top:1px solid var(--border-soft);font-size:14px}.portal-fee-list .portal-fee-total-label{font-weight:600;color:var(--foreground)}.portal-fee-list .portal-fee-total-value strong{font-weight:600}.order-row span,.history-row small,.product-row small{color:var(--muted);font-size:13px;font-weight:400}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:#f1f5f9;color:#475569;border:1px solid #cbd5e1;font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:capitalize;line-height:1}.status-pill:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85;flex-shrink:0}.status-pill--scheduled{background:#dbeafe;color:#1e40af;border-color:#93c5fd}.status-pill--packed{background:#e0e7ff;color:#3730a3;border-color:#a5b4fc}.status-pill--out-for-delivery,.status-pill--delivering{background:#cffafe;color:#155e75;border-color:#67e8f9}.status-pill--delivered{background:#dcfce7;color:#166534;border-color:#86efac}.status-pill--claimed{background:var(--success-bg);color:var(--success);border-color:#b5edd3}.status-pill--delivery-failed{background:#fee2e2;color:#991b1b;border-color:#fca5a5}.status-pill--cancelled,.status-pill--billable-cancel{background:#e2e8f0;color:#334155;border-color:#94a3b8}.status-pill--pending-edit{background:#fef3c7;color:#854d0e;border-color:#f59e0b}.status-pill--pending-cancel{background:#ffe4e6;color:#9f1239;border-color:#fb7185}.row-actions{display:flex;justify-content:flex-end;gap:6px}.history-row small{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.notes-field small{color:var(--warning);font-weight:400}.product-row{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--border-soft)}.product-row:first-child{border-top:0}.product-row span{display:grid;gap:3px;min-width:0}.product-row strong{font-size:14px;font-weight:500}.product-row input{width:96px;min-height:34px;padding:0 10px;text-align:right}.submit-order{justify-self:end;min-width:132px;margin-top:4px}@media(max-width:640px){.portal-header{align-items:stretch;flex-direction:column}.header-actions{width:100%}.portal-content,.form-grid,.team-form{grid-template-columns:1fr}.order-row{align-items:flex-start;flex-direction:column}.order-row div:last-child{text-align:left}.row-actions{justify-content:flex-start}.history-row small{white-space:normal}}.portal-print-host{display:none}@media print{body *{visibility:hidden}.portal-print-host,.portal-print-host *{visibility:visible}.portal-print-host{display:block!important;position:absolute;left:0;top:0;width:100%}.print-view--shipping-docket{color:#000;font-family:Helvetica Neue,Arial,sans-serif}.print-page{width:100%;max-width:180mm;margin:0 auto;padding:12mm;box-sizing:border-box}.print-table{width:100%;border-collapse:collapse;font-size:10pt}.print-table th,.print-table td{border:1px solid #333;padding:6px 8px;text-align:center}.print-table thead th{background:#f3f4f6;font-weight:700}.print-table .data-row td{height:28px}@page{margin:0}}.portal-detail-items-table th.portal-table-amount,.portal-detail-items-table td.portal-table-amount{text-align:right;padding-right:12px}.portal-detail-items-table th:first-child,.portal-detail-items-table td:first-child{padding-left:4px}.portal-delivery-date-cell{display:inline-flex;align-items:center;gap:8px}.portal-lock-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.5;color:var(--warning);background:#fef5e7;border:1px solid hsl(38 92% 85%);white-space:nowrap}.portal-schedule-lock-note{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;margin-bottom:14px;border-radius:var(--radius-sm);font-size:13px;line-height:1.4;color:var(--chip-info-fg);background:var(--chip-info-bg);border:1px solid var(--chip-info-border)}.portal-schedule-lock-note svg{margin-top:1px;flex-shrink:0}.portal-calendar{border:1px solid var(--border);border-radius:var(--radius);padding:10px;background:var(--background)}.portal-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.portal-calendar-month{font-size:14px;font-weight:600;color:var(--foreground)}.portal-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.portal-calendar-weekday{text-align:center;font-size:11px;font-weight:600;color:var(--muted-2);padding:2px 0}.portal-calendar-cell{position:relative;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;font-size:13px;color:var(--foreground);cursor:pointer;transition:background .12s ease,color .12s ease}.portal-date-field{position:relative}.portal-date-trigger{display:inline-flex;align-items:center;gap:8px;width:100%;min-height:38px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--background);color:var(--foreground);font-size:14px;text-align:left;cursor:pointer}.portal-date-trigger svg{color:var(--muted);flex-shrink:0}.portal-date-trigger:hover{border-color:var(--primary)}.portal-popover-backdrop{position:fixed;inset:0;z-index:10}.portal-date-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:11;width:300px;max-width:88vw;background:var(--background);border-radius:var(--radius);box-shadow:var(--shadow-card-hover)}.portal-date-popover .portal-calendar{border:none}.portal-calendar-cell.is-scheduled{background:var(--chip-info-bg);font-weight:500}.portal-calendar-cell.has-order{background:#fef3e2;font-weight:500;cursor:pointer}.portal-calendar-cell.has-order-locked{background:var(--surface);font-weight:500;cursor:help}.portal-calendar-dot{position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:7px;height:7px;border-radius:50%;background:#2563eb}.portal-calendar-cell.has-order .portal-calendar-dot{background:#f59e0b}.portal-calendar-cell.has-order-locked .portal-calendar-dot{background:#ef4444}.portal-calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:10px;font-size:11px;color:var(--muted)}.portal-calendar-legend-item{display:inline-flex;align-items:center;gap:5px}.portal-calendar-legend-dot{width:9px;height:9px;border-radius:50%;background:#2563eb}.portal-calendar-legend-dot.is-scheduled{background:#2563eb}.portal-calendar-legend-dot.has-order{background:#f59e0b}.portal-calendar-legend-dot.has-order-locked{background:#ef4444}.portal-calendar-cell.is-empty{cursor:default}.portal-calendar-cell:not(.is-disabled):not(.is-selected):hover{background:var(--surface)}.portal-calendar-cell.is-disabled{color:var(--muted-2);opacity:.45;cursor:default}.portal-calendar-cell.is-selected{background:var(--primary);color:var(--primary-foreground);font-weight:600}
