:root{--surface-page: #ffffff;--surface-card: #ffffff;--surface-subtle: #f5f5f5;--ink-primary: #0a0a0a;--ink-secondary: #525252;--ink-tertiary: #a3a3a3;--line-subtle: #eaeaea;--line-default: #e5e5e5;--line-strong: #d4d4d4;--brand: #a70b29;--brand-hover: #8a0922;--brand-soft: #fbf0f3;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-soft: 0 1px 2px rgb(15 23 42 / .04), 0 8px 28px rgb(15 23 42 / .035);--shadow-lift: 0 1px 2px rgb(15 23 42 / .05), 0 16px 40px rgb(15 23 42 / .06);font-family:Inter,Geist,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink-primary);background:var(--surface-page)}*{box-sizing:border-box}body{margin:0;background:var(--surface-page);color:var(--ink-primary);line-height:1.6;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}section{display:grid;gap:18px}.app-shell{min-height:100vh;display:grid;grid-template-columns:372px 1fr}.sidebar{position:sticky;top:0;min-height:100vh;padding:28px 20px;background:#fffffff5;border-right:1px solid var(--line-subtle);color:var(--ink-primary);display:flex;flex-direction:column;gap:20px}.sidebar h1{margin:4px 0 0;font-size:28px}.eyebrow{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-tertiary);font-weight:600}.role-switch{display:flex;flex-direction:column;gap:8px;font-size:13px}.role-switch select{width:100%;border-radius:var(--radius-md);border:1px solid var(--line-subtle);padding:9px 10px;background:var(--surface-card);color:var(--ink-primary);font-size:13px}.sidebar-customer-switch{margin-top:auto}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{text-decoration:none;color:var(--ink-secondary);padding:9px 11px;border-radius:var(--radius-md);font-size:13px;font-weight:500;transition:background .15s ease,color .15s ease}.nav-item:hover{background:var(--surface-subtle);color:var(--ink-primary)}.nav-item-active{color:var(--brand);background:var(--brand-soft);font-weight:600}.nav-item-active:hover{color:var(--brand-hover);background:var(--brand-soft)}.nav-subitem{margin-left:14px;padding-top:8px;padding-bottom:8px}.hint-box{margin-top:auto;background:var(--surface-subtle);border:1px solid var(--line-subtle);border-radius:var(--radius-lg);padding:12px;font-size:13px}.hint-box p{margin:6px 0 0}.content{max-width:1440px;width:100%;padding:44px 48px}.topbar{margin-bottom:28px}.topbar h1{margin:6px 0 0;color:var(--ink-primary);font-size:32px;font-weight:650;line-height:1.1;letter-spacing:-.025em}.kpi-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:0}.stack-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.dashboard-stack{display:grid;gap:16px}.card{background:var(--surface-card);border:1px solid var(--line-subtle);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-soft)}.kpi-card p{margin:0;color:var(--ink-tertiary);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.kpi-card h3{margin:10px 0 0;color:var(--ink-primary);font-size:32px;font-weight:650;letter-spacing:-.025em}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.card-head h3{margin:0;color:var(--ink-primary);font-size:18px;font-weight:650;letter-spacing:-.025em}.filter-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}.filter-row label{display:flex;flex-direction:column;gap:6px;color:var(--ink-secondary);font-size:12px;font-weight:500}.filter-row select{min-width:160px;border:1px solid var(--line-default);border-radius:var(--radius-md);padding:8px 10px;background:var(--surface-card);color:var(--ink-primary)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line-subtle);color:var(--ink-secondary);font-size:13px;vertical-align:top}th{color:var(--ink-tertiary);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}tbody tr:hover td{background:var(--surface-subtle)}.chip{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:500;line-height:1}.chip-green{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.chip-yellow{border-color:#fde68a;background:#fffbeb;color:#b45309}.chip-red{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.button{border:1px solid var(--line-subtle);background:var(--surface-card);color:var(--ink-secondary);border-radius:var(--radius-md);padding:8px 12px;font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease}.button:hover{border-color:var(--line-default);color:var(--ink-primary);background:var(--surface-subtle)}.button:disabled{opacity:.5;cursor:not-allowed;background:var(--surface-subtle)}.context-menu{position:relative;display:inline-block}.row-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px}.icon-open-button{position:relative;width:32px;height:32px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--ink-secondary);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.icon-open-button:before{content:"✎";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1}.icon-open-button:after{content:none}.icon-open-button:hover{background:var(--brand-soft);color:var(--brand)}.icon-open-button:disabled{opacity:.45;cursor:not-allowed}.context-menu-trigger{min-width:36px;padding:6px 10px;font-size:18px;line-height:1}.context-menu summary{list-style:none}.context-menu summary::-webkit-details-marker{display:none}.context-menu-list{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;background:var(--surface-card);border:1px solid var(--line-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:8px;z-index:20;display:grid;gap:4px}.context-menu-item{text-align:left;border:1px solid transparent;background:var(--surface-card);color:var(--ink-primary);border-radius:var(--radius-md);padding:8px 10px;font-size:13px;cursor:pointer}.context-menu-item:hover{background:var(--brand-soft);color:var(--brand)}.context-menu-item:disabled{opacity:.45;cursor:not-allowed}.button-primary{background:var(--brand);color:#fff;border-color:var(--brand)}.button-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:#fff}.button-danger{color:#b91c1c;border-color:#fecaca}.action-group{display:flex;flex-wrap:wrap;gap:6px}.notice{margin-bottom:16px;border:1px solid var(--line-subtle);background:var(--surface-subtle);border-radius:var(--radius-md);padding:10px 12px;color:var(--ink-secondary);font-size:13px}.notice-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.notice-actions{margin-top:8px}.text-link{color:var(--brand);text-decoration:none;font-size:13px;font-weight:600}.text-link:hover{color:var(--brand-hover)}.clean-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:14px}.mini-chart{min-height:170px;display:flex;align-items:end;gap:10px;padding:14px;border:1px solid var(--line-subtle);border-radius:var(--radius-lg);background:var(--surface-subtle)}.bar-group{flex:1;display:grid;justify-items:center;gap:4px}.bar{width:12px;border-radius:6px;display:inline-block}.bar-new{background:var(--brand)}.bar-cancel{background:#ef4444}.bar-revenue{width:16px;background:#525252}.bar-group small{font-size:11px;color:var(--ink-tertiary)}.shop-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.shop-card{text-align:left;display:grid;gap:6px;border:1px solid var(--line-subtle);border-radius:var(--radius-lg);background:var(--surface-card);padding:14px;cursor:pointer;color:var(--ink-primary)}.shop-icon{font-size:28px;line-height:1}.shop-card:hover{border-color:#a70b2959;background:#fbf0f359}.shop-card-active{border-color:var(--brand);box-shadow:0 0 0 2px #a70b291f}.shop-card input[type=radio]{margin:0}.table-footer{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--ink-secondary)}.pager{display:flex;align-items:center;gap:8px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.detail-item{display:grid;gap:6px;padding:14px;border:1px solid var(--line-subtle);border-radius:var(--radius-lg);background:var(--surface-subtle)}.detail-item strong{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-tertiary);font-weight:600}.detail-item span{color:var(--ink-primary);font-size:14px}.edit-form-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px;max-width:560px}.product-folder-tree{display:grid;gap:2px}.product-folder-node{min-width:0}.folder-tree-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(220px,auto) 76px;align-items:center;gap:8px;min-height:28px;padding:4px;border-radius:6px}.folder-tree-row:hover{background:var(--surface-subtle)}.folder-tree-main{min-width:0;display:flex;align-items:center;gap:4px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.folder-tree-level-1{padding-left:16px}.folder-tree-chevron{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-tertiary);font-size:15px;line-height:1;flex:0 0 auto}.folder-tree-folder-icon,.folder-tree-file-icon,.folder-tree-issue-icon{position:relative;width:14px;height:12px;flex:0 0 auto}.folder-tree-folder-icon:before{content:"";position:absolute;left:1px;top:1px;width:6px;height:3px;border-radius:2px 2px 0 0;background:var(--ink-tertiary)}.folder-tree-folder-icon:after{content:"";position:absolute;left:0;right:0;bottom:0;height:9px;border:1px solid var(--ink-tertiary);border-radius:2px;background:transparent}.folder-tree-file-icon:before{content:"";position:absolute;top:1px;right:2px;bottom:0;left:2px;border:1px solid var(--ink-tertiary);border-radius:2px;background:transparent}.folder-tree-issue-icon:before{content:"";position:absolute;top:0;right:1px;bottom:1px;left:1px;border:1px solid var(--ink-tertiary);border-radius:2px;background:transparent}.folder-tree-issue-icon:after{content:"";position:absolute;left:3px;right:3px;top:4px;height:1px;background:var(--ink-tertiary);box-shadow:0 3px 0 var(--ink-tertiary)}.folder-tree-title{min-width:0;overflow:hidden;color:var(--ink-secondary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.folder-tree-folder .folder-tree-title{color:var(--ink-primary);font-weight:600}.folder-tree-indent{width:28px;flex:0 0 auto}.folder-tree-indent-level-2{width:44px}.folder-tree-file{grid-template-columns:44px 14px minmax(220px,1fr) minmax(220px,auto) 76px}.folder-tree-meta{min-width:0;display:flex;justify-content:flex-end;gap:8px;color:var(--ink-tertiary);font-size:11px}.folder-tree-meta span{overflow:hidden;max-width:160px;text-overflow:ellipsis;white-space:nowrap}.folder-tree-actions{position:relative;display:flex;justify-content:flex-end;min-width:76px}.folder-tree-actions .row-actions{width:100%;justify-content:flex-end}.folder-tree-actions .context-menu-trigger{width:32px;height:32px;min-width:32px;padding:0;border-color:transparent;background:transparent;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}.folder-tree-actions .context-menu-trigger:hover{border-color:transparent;background:transparent;color:var(--brand)}.edit-form-grid label{display:grid;gap:6px;font-size:14px;color:var(--ink-secondary)}.edit-form-grid input,.edit-form-grid select{border:1px solid var(--line-default);border-radius:var(--radius-md);padding:8px 10px;background:var(--surface-card);color:var(--ink-primary)}.edit-form-grid select[multiple]{min-height:96px}.checkbox-line{grid-auto-flow:column;justify-content:start;align-items:center;gap:8px}.workflow-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px}.workflow-step{display:grid;grid-template-columns:18px 1fr auto auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--line-subtle);border-radius:var(--radius-md);background:var(--surface-card)}.workflow-icon{width:14px;height:14px;border-radius:50%;display:inline-block}.workflow-icon-done{background:#22c55e;box-shadow:0 0 0 3px #dcfce7}.workflow-icon-open{background:#facc15;box-shadow:0 0 0 3px #fef9c3}.workflow-name{color:var(--ink-primary)}.workflow-date{font-size:13px;color:var(--ink-secondary)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-card{width:min(640px,100%);background:var(--surface-card);border:1px solid var(--line-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:20px;display:grid;gap:12px}.modal-card h3{margin:0}.modal-card label{display:grid;gap:6px;font-size:14px;color:var(--ink-secondary)}.modal-card input[type=date]{border:1px solid var(--line-default);border-radius:var(--radius-md);padding:8px 10px}@media (max-width: 980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;min-height:auto;border-bottom:1px solid rgba(255,255,255,.2);border-right:none}.content{padding:28px 20px}.card{overflow-x:auto}}
