:root{--bg: #f3f5fa;--surface: #ffffff;--ink: #0f172a;--ink-2: #334155;--muted: #64748b;--muted-2: #94a3b8;--line: #e6eaf2;--line-soft: #eef2f8;--brand: #2563eb;--brand-dark: #1d4ed8;--brand-soft: #eef4ff;--green: #059669;--green-soft: #ecfdf5;--amber: #d97706;--amber-soft: #fffbeb;--red: #dc2626;--red-soft: #fef2f2;--indigo: #4f46e5;--indigo-soft: #eef2ff;--cyan: #0891b2;--cyan-soft: #ecfeff;--rose: #e11d48;--rose-soft: #fff1f2;--slate-soft: #f1f5f9;--nav-bg: #0b1220;--nav-ink: #93a3ba;--radius: 12px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px -18px rgba(15, 23, 42, .18);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);font-size:14px;line-height:1.55;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{min-height:100vh}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font-family:inherit}::selection{background:#2563eb2e}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#94a3b8;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.icon{flex:none;display:block}.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12.5px;letter-spacing:-.01em}.muted{color:var(--muted)}.small{font-size:12.5px}.bold{font-weight:700}.text-red{color:var(--red)}.text-green{color:var(--green)}.text-amber{color:var(--amber)}.num{text-align:right;font-variant-numeric:tabular-nums}.center{text-align:center}.money{font-variant-numeric:tabular-nums}.row-actions{display:inline-flex;gap:12px;justify-content:flex-end}.cell-stack{display:flex;flex-direction:column;gap:1px;line-height:1.35;min-width:0}.cell-stack strong{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-stack span{font-size:12px;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 15px;border:1px solid transparent;border-radius:9px;font-size:13px;font-weight:600;color:var(--ink-2);background:transparent;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:3px solid rgba(37,99,235,.22);outline-offset:1px}.btn-primary{background:linear-gradient(180deg,#2f6df0,var(--brand));border-color:var(--brand);color:#fff;box-shadow:0 6px 14px -8px #2563ebbf}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#2a63df,var(--brand-dark))}.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink-2)}.btn-ghost:hover:not(:disabled){border-color:#cbd5e1;background:#f8fafc}.btn-subtle{background:var(--brand-soft);color:var(--brand)}.btn-subtle:hover:not(:disabled){background:#e2ecff}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-sm{height:30px;padding:0 11px;font-size:12px;border-radius:8px}.btn-lg{height:44px;font-size:14px;border-radius:10px}.link-btn{border:0;background:none;padding:0;color:var(--brand);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.link-btn:hover{color:var(--brand-dark);text-decoration:underline;text-underline-offset:3px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease}.icon-btn:hover{background:var(--slate-soft);color:var(--ink)}.icon-btn-dark{color:#8b9bb3}.icon-btn-dark:hover{background:#ffffff14;color:#fff}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;display:flex;flex-direction:column;width:238px;background:radial-gradient(120% 60% at 0% 0%,#16233c 0%,var(--nav-bg) 55%);color:var(--nav-ink);border-right:1px solid rgba(148,163,184,.08)}.brand{display:flex;align-items:center;gap:11px;padding:20px 18px 18px}.logo-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;font-size:13px;font-weight:800;letter-spacing:-.02em;box-shadow:0 8px 20px -10px #2563ebe6;flex:none}.brand-text{display:flex;flex-direction:column;line-height:1.35;min-width:0}.brand-text strong{color:#f1f5f9;font-size:14.5px;font-weight:700;letter-spacing:.01em}.brand-text span{color:#64748b;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav{flex:1;overflow-y:auto;padding:4px 10px 16px}.nav::-webkit-scrollbar{width:6px}.nav::-webkit-scrollbar-thumb{background:#94a3b840}.nav-group{margin-bottom:4px}.nav-group-title{padding:14px 10px 6px;font-size:10.5px;font-weight:700;letter-spacing:.12em;color:#526178}.nav-item{position:relative;display:flex;align-items:center;gap:10px;height:38px;margin:1px 0;padding:0 11px;border-radius:8px;font-size:13px;font-weight:500;color:#9bacbf;transition:background .15s ease,color .15s ease}.nav-item svg{color:#6d7f96;transition:color .15s ease}.nav-item:hover{background:#ffffff0b;color:#e2e8f0}.nav-item:hover svg{color:#cbd5e1}.nav-item.active{background:linear-gradient(90deg,#2563eb52,#2563eb14);color:#fff;font-weight:600}.nav-item.active svg{color:#7dd3fc}.nav-item.active:before{content:"";position:absolute;left:-10px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:#38bdf8}.sidebar-foot{display:flex;align-items:center;gap:8px;padding:14px 16px;border-top:1px solid rgba(148,163,184,.1)}.sidebar-user{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.sidebar-user>div:last-child{display:flex;flex-direction:column;line-height:1.3;min-width:0}.sidebar-user strong{color:#e2e8f0;font-size:12.5px;font-weight:600}.sidebar-user span{color:#64748b;font-size:11px}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#1e40af,#0ea5e9);color:#fff;font-size:13px;font-weight:700;flex:none}.avatar-sm{width:28px;height:28px;font-size:12px}.main{margin-left:238px;min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;height:60px;padding:0 26px;background:#ffffffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.menu-btn{display:none}.crumb{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}.crumb svg{color:#cbd5e1}.crumb b{color:var(--ink);font-weight:600}.topbar-right{display:flex;align-items:center;gap:18px}.today{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.today svg{color:var(--muted-2)}.topbar-user{display:flex;align-items:center;gap:9px;padding-left:18px;border-left:1px solid var(--line)}.topbar-user-text{display:flex;flex-direction:column;line-height:1.3}.topbar-user-text strong{font-size:12.5px;font-weight:600}.topbar-user-text span{font-size:11px;color:var(--muted-2)}.content{flex:1;width:100%;max-width:1500px;margin:0 auto;padding:22px 26px 48px}.page{display:flex;flex-direction:column;gap:16px;animation:page-in .28s ease both}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-head-text h1{font-size:22px;font-weight:700;letter-spacing:-.01em}.page-head-text p{margin-top:4px;font-size:13px;color:var(--muted);max-width:720px}.page-actions{display:flex;align-items:center;gap:9px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line-soft)}.card-head h2{font-size:14.5px;font-weight:700;letter-spacing:-.005em}.card-extra{display:flex;align-items:center;gap:8px;font-size:12px}.card-body{padding:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-tabs{padding:0 16px;border-bottom:1px solid var(--line-soft)}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:6px;font-size:11.5px;font-weight:600;line-height:1;white-space:nowrap}.badge-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.badge-blue{background:var(--brand-soft);color:var(--brand)}.badge-green{background:var(--green-soft);color:var(--green)}.badge-amber{background:var(--amber-soft);color:var(--amber)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-indigo{background:var(--indigo-soft);color:var(--indigo)}.badge-cyan{background:var(--cyan-soft);color:var(--cyan)}.badge-rose{background:var(--rose-soft);color:var(--rose)}.badge-slate,.badge-gray{background:var(--slate-soft);color:#64748b}.table-wrap{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table thead th{position:sticky;top:0;z-index:1;padding:10px 14px;background:#f8fafc;border-bottom:1px solid var(--line);color:#5b6b80;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-align:left;white-space:nowrap}.table tbody td{padding:11px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle;color:var(--ink-2);white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:#fafcff}.table td .unit{color:var(--muted-2);font-weight:400}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 16px;border-bottom:1px solid var(--line-soft)}.toolbar-filters{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.toolbar-actions{display:flex;align-items:center;gap:10px;font-size:12px}.search{position:relative;display:flex;align-items:center}.search svg{position:absolute;left:10px;color:var(--muted-2);pointer-events:none}.search-input{width:240px;height:34px;padding:0 10px 0 32px;border:1px solid #dbe2ee;border-radius:9px;background:#fff;font-size:13px;color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.search-input::placeholder{color:var(--muted-2)}.search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2563eb1f}.date-range{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.date-range .input{width:128px;height:34px}.input{width:100%;height:36px;padding:0 11px;border:1px solid #dbe2ee;border-radius:9px;background:#fff;color:var(--ink);font-size:13px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.input::placeholder{color:var(--muted-2)}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2563eb1f}.input:disabled{background:#f8fafc;color:var(--muted);cursor:not-allowed}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.select-sm{width:auto;min-width:128px;height:34px}.textarea{height:auto;padding:9px 11px;resize:vertical;line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.span-2{grid-column:span 2}.field-label{font-size:12.5px;font-weight:600;color:var(--ink-2)}.field-label em{color:var(--red);font-style:normal;margin-left:2px}.field-hint{font-size:11.5px;color:var(--muted-2)}.field>.input{margin-top:0}.switch-row{display:flex;align-items:center;gap:8px;height:36px;font-size:13px;color:var(--ink-2);cursor:pointer}.switch-row input{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}.input-with-unit{position:relative;display:flex;align-items:center}.input-with-unit .input{padding-right:34px}.input-with-unit span{position:absolute;right:10px;font-size:11px;color:var(--muted-2);pointer-events:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow-y:auto;background:#0f172a75;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:overlay-in .18s ease both}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{max-width:calc(100vw - 32px);max-height:90vh;margin:auto;display:flex;flex-direction:column;background:#fff;border-radius:15px;box-shadow:0 30px 80px -24px #0f172a80;animation:modal-in .22s cubic-bezier(.2,.8,.3,1) both;overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 15px;border-bottom:1px solid var(--line-soft)}.modal-head h3{font-size:16px;font-weight:700;letter-spacing:-.01em}.modal-head p{margin-top:3px;font-size:12.5px;color:var(--muted)}.modal-body{padding:20px 22px;overflow-y:auto}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--line-soft);background:#fbfcfe;flex-wrap:wrap}.modal-totals{display:flex;align-items:center;gap:18px;margin-right:auto;font-size:12.5px;color:var(--muted)}.modal-totals b{color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}.modal-totals .grand{padding-left:18px;border-left:1px solid var(--line)}.modal-totals .grand b{color:var(--brand);font-size:17px}.modal-foot-total{margin-right:auto;font-size:12.5px;color:var(--muted)}.modal-foot-total b{color:var(--brand);font-size:15px}.modal-foot-note{margin-right:auto;font-size:12px;color:var(--muted-2)}.confirm-text{font-size:14px;color:var(--ink-2);line-height:1.7}.boundary-title{font-size:16px;font-weight:700;margin-bottom:8px}.error-stack{margin:14px 0 18px;padding:14px;max-height:320px;overflow:auto;border-radius:10px;background:#0f172a;color:#cbd5e1;font-family:Consolas,SFMono-Regular,monospace;font-size:11.5px;line-height:1.7;white-space:pre-wrap}.detail-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 18px;padding:14px 16px;margin-bottom:16px;background:#f8fafc;border:1px solid var(--line-soft);border-radius:10px}.detail-meta>div{display:flex;flex-direction:column;gap:3px;min-width:0}.detail-meta span{font-size:11.5px;color:var(--muted-2)}.detail-meta b{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis}.detail-total{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;margin-top:14px;background:#f8fafc;border:1px solid var(--line-soft);border-radius:10px;font-size:13px;color:var(--muted)}.detail-total b{font-size:17px;color:var(--brand);font-variant-numeric:tabular-nums}.totals-row{display:flex;justify-content:flex-end;margin-top:16px}.totals-box{width:300px;display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:#f8fafc;border:1px solid var(--line-soft);border-radius:10px}.totals-box>div{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--muted)}.totals-box b{color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}.totals-box .grand{padding-top:8px;border-top:1px dashed #dbe2ee}.totals-box .grand b{color:var(--brand);font-size:18px}.linked-doc{margin-top:16px;padding:13px 16px;border:1px solid #dbe7ff;background:#f7faff;border-radius:10px}.linked-doc-head{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}.linked-doc-head svg{color:var(--brand)}.linked-doc-head .badge{margin-left:auto}.linked-doc-body{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:8px;font-size:12px;color:var(--muted)}.linked-doc-body b{color:var(--ink)}.detail-remark{margin-top:14px;font-size:12.5px;color:var(--ink-2)}.detail-remark span{color:var(--muted-2);margin-right:8px}.sub-head{display:flex;align-items:center;justify-content:space-between;margin:18px 0 10px}.sub-head h4{font-size:13px;font-weight:700;color:var(--ink)}.line-table th{padding:8px 10px}.line-table td{padding:7px 10px}.line-table .input{height:34px}.line-table tbody tr:hover td{background:transparent}.order-hint{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding:10px 12px;border-radius:9px;background:var(--brand-soft);color:#3b5b9a;font-size:12px;line-height:1.6}.order-hint svg{margin-top:2px;color:var(--brand)}.bom-preview{margin-top:16px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.bom-preview-head{display:flex;align-items:center;gap:8px;font-size:13px}.bom-preview-head svg{color:var(--brand)}.bom-preview-body{display:flex;flex-wrap:wrap;gap:18px;margin-top:8px;font-size:12.5px;color:var(--muted)}.progress{height:6px;border-radius:999px;background:#eef2f8;overflow:hidden}.progress span{display:block;height:100%;border-radius:inherit;background:var(--brand);transition:width .3s ease}.progress-green span{background:var(--green)}.progress-amber span{background:var(--amber)}.progress-red span{background:var(--red)}.progress-blue span{background:linear-gradient(90deg,#3b82f6,#06b6d4)}.progress-cell{display:flex;flex-direction:column;gap:5px;min-width:120px}.progress-cell span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.progress-block{padding:14px 16px;border:1px solid var(--line-soft);border-radius:10px;background:#fbfcfe}.progress-block-head{display:flex;justify-content:space-between;margin-bottom:8px;font-size:12.5px;color:var(--muted)}.progress-block-head b{color:var(--ink)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 16px;color:var(--muted)}.empty-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--slate-soft);color:var(--muted-2)}.empty p{font-size:13px}.empty span{font-size:12px;color:var(--muted-2)}.empty-inline{display:flex;align-items:center;gap:8px;padding:18px 4px;color:var(--green);font-size:13px}.loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:36px 12px;color:var(--muted);font-size:12.5px}.spinner{width:17px;height:17px;border-radius:50%;border:2px solid #dbe2ee;border-top-color:var(--brand);animation:spin .8s linear infinite;flex:none}.spinner-light{border-color:#ffffff40;border-top-color:#7dd3fc}@keyframes spin{to{transform:rotate(360deg)}}.tabs{display:flex;align-items:center;gap:4px}.tab{position:relative;display:inline-flex;align-items:center;gap:6px;height:46px;padding:0 12px;border:0;background:none;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}.tab:hover{color:var(--ink)}.tab.active{color:var(--brand)}.tab.active:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px;background:var(--brand)}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--slate-soft);color:var(--muted);font-size:10.5px}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.kpi-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px 17px 15px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.kpi-card:after{content:"";position:absolute;right:-30px;top:-30px;width:96px;height:96px;border-radius:50%;background:var(--tone-soft, var(--brand-soft));opacity:.75}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative;z-index:1}.kpi-label{font-size:12.5px;color:var(--muted);font-weight:500}.kpi-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--tone-soft, var(--brand-soft));color:var(--tone, var(--brand))}.kpi-value{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--ink);position:relative;z-index:1}.kpi-hint{font-size:11px;color:var(--muted-2);position:relative;z-index:1}.tone-blue{--tone: var(--brand);--tone-soft: var(--brand-soft)}.tone-indigo{--tone: var(--indigo);--tone-soft: var(--indigo-soft)}.tone-cyan{--tone: var(--cyan);--tone-soft: var(--cyan-soft)}.tone-amber{--tone: var(--amber);--tone-soft: var(--amber-soft)}.tone-rose{--tone: var(--rose);--tone-soft: var(--rose-soft)}.tone-green{--tone: var(--green);--tone-soft: var(--green-soft)}.tone-red{--tone: var(--red);--tone-soft: var(--red-soft)}.grid-2-1{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:16px}.chart-legend{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--muted)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:3px;display:inline-block}.dot-blue{background:#3b82f6}.dot-cyan{background:#22d3ee}.chart{display:flex;align-items:flex-end;gap:8px;height:190px;padding:10px 2px 0}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.chart-bars{display:flex;align-items:flex-end;justify-content:center;gap:5px;height:140px;width:100%}.bar{width:15px;border-radius:4px 4px 2px 2px;transition:filter .15s ease}.bar:hover{filter:brightness(.9)}.bar-sales{background:linear-gradient(180deg,#60a5fa,#2563eb)}.bar-purchase{background:linear-gradient(180deg,#67e8f9,#06b6d4)}.chart-label{font-size:11px;color:var(--muted-2)}.todo-list{display:flex;flex-direction:column;gap:2px;margin:-6px -4px}.todo{display:flex;align-items:center;gap:9px;width:100%;padding:9px 8px;border:0;border-radius:8px;background:none;color:var(--ink-2);font-size:12.5px;text-align:left;cursor:pointer}.todo:hover{background:#f8fafc}.todo-dot{width:6px;height:6px;border-radius:50%;background:var(--tone, var(--brand));flex:none}.todo-label{flex:1;min-width:0}.todo-amount{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.todo-count{min-width:22px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:var(--tone-soft, var(--brand-soft));color:var(--tone, var(--brand));font-size:11px;font-weight:700}.todo svg{color:#cbd5e1}.stock-alert-list{display:flex;flex-direction:column;gap:13px}.stock-alert-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:12.5px}.stock-alert-name{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-alert-num{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.mini-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.mini-stats>div{display:flex;flex-direction:column;gap:3px;padding:13px 18px;border-right:1px solid var(--line-soft)}.mini-stats>div:last-child{border-right:0}.mini-stats span{font-size:11.5px;color:var(--muted)}.mini-stats b{font-size:17px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.alert{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:9px;font-size:12.5px}.alert-error{background:var(--red-soft);color:#b91c1c;border:1px solid #fecaca}.toasts{position:fixed;top:18px;right:18px;z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;min-width:220px;max-width:380px;padding:11px 14px;border-radius:10px;background:#0f172a;color:#f1f5f9;font-size:12.5px;box-shadow:0 16px 40px -16px #0f172a99;animation:toast-in .22s cubic-bezier(.2,.8,.3,1) both}.toast svg{color:#4ade80}.toast-error svg{color:#f87171}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.login{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);min-height:100vh}.login-aside{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:42px 54px;background:radial-gradient(90% 60% at 10% 0%,rgba(37,99,235,.35),transparent 60%),radial-gradient(70% 50% at 100% 100%,rgba(6,182,212,.22),transparent 60%),#0b1220;color:#cbd5e1;overflow:hidden}.login-glow{position:absolute;border-radius:50%;filter:blur(10px);pointer-events:none}.login-glow-a{width:420px;height:420px;right:-160px;top:12%;background:radial-gradient(circle,rgba(37,99,235,.35),transparent 65%)}.login-glow-b{width:360px;height:360px;left:-120px;bottom:-100px;background:radial-gradient(circle,rgba(34,211,238,.18),transparent 65%)}.login-brand{position:relative;display:flex;align-items:center;gap:12px}.login-brand .logo-mark{width:42px;height:42px;font-size:14px}.login-brand div:last-child{display:flex;flex-direction:column;line-height:1.4}.login-brand strong{color:#fff;font-size:16px;font-weight:700;letter-spacing:.01em}.login-brand span{color:#64748b;font-size:11.5px;letter-spacing:.04em}.login-hero{position:relative;max-width:480px;margin-top:auto}.login-hero h1{color:#f8fafc;font-size:42px;line-height:1.24;font-weight:700;letter-spacing:-.02em}.login-hero p{margin-top:18px;font-size:14px;line-height:1.85;color:#94a3b8;max-width:430px}.login-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.login-chips span{padding:5px 11px;border:1px solid rgba(148,163,184,.22);border-radius:999px;background:#94a3b80f;color:#b6c4d8;font-size:11.5px}.login-metrics{position:relative;display:flex;gap:46px;padding-top:26px;border-top:1px solid rgba(148,163,184,.14)}.login-metrics div{display:flex;flex-direction:column;gap:2px}.login-metrics b{color:#f1f5f9;font-size:22px;font-weight:700;letter-spacing:-.02em}.login-metrics span{color:#64748b;font-size:11.5px}.login-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:40px;background:#fff}.login-card{width:100%;max-width:372px;display:flex;flex-direction:column;gap:16px}.login-card-head h2{font-size:24px;font-weight:700;letter-spacing:-.02em}.login-card-head p{margin-top:5px;font-size:13px;color:var(--muted)}.login-field{display:flex;flex-direction:column;gap:7px}.login-field>span{font-size:12.5px;font-weight:600;color:var(--ink-2)}.input-icon{position:relative;display:flex;align-items:center}.input-icon svg{position:absolute;left:12px;color:var(--muted-2);pointer-events:none}.input-icon input{width:100%;height:44px;padding:0 13px 0 37px;border:1px solid #dbe2ee;border-radius:10px;font-size:13.5px;color:var(--ink);outline:none;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.input-icon input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2563eb1f}.input-icon input::placeholder{color:var(--muted-2)}.login-hint{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted-2)}.login-foot{font-size:11.5px;color:var(--muted-2)}.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;min-height:100vh;background:var(--nav-bg)}.splash-logo{display:grid;place-items:center;width:64px;height:64px;border-radius:17px;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;font-size:17px;font-weight:800;letter-spacing:-.02em;box-shadow:0 20px 50px -18px #2563ebe6}.sidebar-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;background:#0f172a80}@media(max-width:1280px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar{width:220px}.main{margin-left:220px}}@media(max-width:1080px){.grid-2-1{grid-template-columns:minmax(0,1fr)}.login-hero h1{font-size:34px}.login-aside{padding:36px 38px}}@media(max-width:960px){.sidebar{transform:translate(-100%);transition:transform .22s ease;width:238px}.sidebar.open{transform:none;box-shadow:30px 0 60px -30px #0f172a99}.main{margin-left:0}.menu-btn{display:inline-flex}.content{padding:18px 16px 40px}.topbar{padding:0 16px}.login{grid-template-columns:1fr}.login-aside{display:none}.login-main{min-height:100vh;background:#f8fafc}.login-card{background:#fff;padding:28px;border-radius:16px;border:1px solid var(--line);box-shadow:var(--shadow)}}@media(max-width:760px){.kpi-grid,.mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-stats>div:nth-child(2){border-right:0}.mini-stats>div:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}.form-grid{grid-template-columns:1fr}.field.span-2{grid-column:span 1}.detail-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-user-text,.today{display:none}.page-head{align-items:flex-start}.page-actions{width:100%}.modal-overlay{padding:10px}.modal{max-height:94vh;width:calc(100vw - 20px)!important}.search-input{width:100%}.search{flex:1 1 100%}.toolbar-filters{width:100%}.modal-totals{flex-wrap:wrap;gap:8px 14px}}@media(max-width:480px){.kpi-grid{grid-template-columns:minmax(0,1fr)}.page-head-text h1{font-size:19px}}:root{--e10-blue: #2f6fb5;--e10-blue-dark: #245a94;--e10-border: #cfd6dd;--e10-border-soft: #e3e7eb;--e10-bg: #eef1f4;--e10-ink: #2f3438;--e10-muted: #7c858e;--e10-panel: #ffffff;--e10-rail: #5c6e80}body{font-size:12.5px;line-height:1.45;color:var(--e10-ink);background:var(--e10-bg)}.e10-app{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--e10-bg)}.e10-titlebar{flex:none;display:flex;align-items:center;height:30px;padding-left:8px;background:linear-gradient(#fbfbfb,#eeeff1);border-bottom:1px solid #d4d8dc;-webkit-user-select:none;user-select:none}.e10-titlebar-icon{display:grid;place-items:center;width:16px;height:16px;margin-right:6px;background:#c8102e;color:#fff;font-size:9px;font-weight:700;border-radius:2px}.e10-titlebar-text{font-size:12px;color:#4a5056;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.e10-window-btns{margin-left:auto;display:flex;height:30px}.e10-window-btns button{width:44px;height:30px;display:grid;place-items:center;border:0;background:transparent;color:#555;cursor:pointer}.e10-window-btns button:hover{background:#e2e5e8}.e10-window-btns button.close:hover{background:#e81123;color:#fff}.e10-body{flex:1;display:flex;min-height:0}.e10-rail{position:relative;z-index:20;flex:none;display:flex;flex-direction:column;align-items:center;width:56px;padding:6px 0 4px;background:var(--e10-rail);color:#dbe5ee}.e10-rail-brand{width:46px;height:46px;margin-bottom:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#43535f;border-radius:2px;line-height:1.1}.e10-rail-brand b{font-size:14px;color:#fff;letter-spacing:-.02em}.e10-rail-brand span{font-size:8px;letter-spacing:.18em;color:#aebfce}.e10-rail-btn{width:56px;height:44px;display:grid;place-items:center;border:0;border-left:3px solid transparent;background:transparent;color:#c9d6e2;cursor:pointer}.e10-rail-btn:hover{background:#526374;color:#fff}.e10-rail-btn.active{background:#495a69;border-left-color:#8fc7f0;color:#fff}.e10-rail-spacer{flex:1}.e10-rail-avatar{width:34px;height:34px;margin-bottom:6px;border-radius:50%;border:1px solid #9fb0c0;background:#e7edf3;color:#3f566b;font-size:13px;font-weight:700;cursor:pointer}.e10-rail-avatar:hover,.e10-rail-avatar.active{background:#fff}.e10-pop-mask{position:fixed;top:30px;right:0;bottom:0;left:0;z-index:40}.e10-user-pop{position:absolute;left:54px;bottom:42px;z-index:45;width:258px;padding:12px;background:#fff;border:1px solid #9aa5af;box-shadow:0 8px 26px #00000038}.e10-user-pop-head{display:flex;align-items:center;gap:9px;padding-bottom:9px;border-bottom:1px solid var(--e10-border-soft)}.e10-user-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#dfe7ef;color:#3f566b;font-weight:700}.e10-user-pop-head b{display:block;font-size:12.5px}.e10-user-pop-head span{font-size:11px;color:var(--e10-muted)}.e10-user-pop dl{display:grid;grid-template-columns:40px 1fr;gap:4px 8px;margin:9px 0 11px;font-size:11.5px}.e10-user-pop dt{color:var(--e10-muted)}.e10-user-pop dd{margin:0;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e10-menu{flex:none;display:flex;flex-direction:column;width:236px;background:#f6f7f9;border-right:1px solid var(--e10-border)}.e10-menu-top{padding:6px;border-bottom:1px solid var(--e10-border-soft)}.e10-menu-top select{width:100%;height:26px;padding:0 22px 0 6px;border:1px solid #c3c9cf;border-radius:1px;background:#fff;color:#333;font-size:12px;outline:none}.e10-menu-tree{flex:1;overflow-y:auto;padding:3px 0 8px}.e10-tree-root{display:flex;align-items:center;gap:6px;width:100%;height:31px;padding:0 8px;border:0;background:transparent;color:#202428;font-size:12.5px;font-weight:600;text-align:left;cursor:pointer}.e10-tree-root:hover{background:#e9eef4}.e10-tree-root span{flex:1}.rot90{transform:rotate(90deg)}.e10-tree-root .icon,.e10-tree-module .icon{transition:transform .12s ease}.e10-tree-module{display:flex;align-items:center;gap:5px;width:100%;height:28px;padding:0 8px 0 20px;border:0;border-left:2px solid transparent;background:transparent;color:#3a4046;font-size:12.5px;text-align:left;cursor:pointer}.e10-tree-module:hover{background:#e8eef5}.e10-tree-module.active{background:#dce8f4;border-left-color:var(--e10-blue);color:#1f5b96;font-weight:600}.e10-tree-leaf{display:flex;align-items:center;width:100%;height:26px;padding:0 8px 0 42px;border:0;background:transparent;color:#4b5259;font-size:12px;text-align:left;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.e10-tree-leaf:hover{background:#edf2f7;color:#1f5b96}.e10-tree-leaf.active{background:#e6f0fa;color:#1f5b96;font-weight:600}.e10-menu-bottom{flex:none;padding:6px;border-top:1px solid var(--e10-border-soft);background:#eff1f4}.e10-menu-bottom button{display:flex;align-items:center;gap:7px;width:100%;height:29px;padding:0 8px;border:1px solid transparent;background:transparent;color:#3f464d;font-size:12px;text-align:left;cursor:pointer}.e10-menu-bottom button:hover{background:#fff;border-color:#d3d9df}.e10-content{flex:1;min-width:0;display:flex;flex-direction:column;background:#fff}.e10-content-head{flex:none;display:flex;align-items:center;gap:4px;height:34px;padding:0 8px;border-bottom:1px solid #d9dde2;background:linear-gradient(#fdfdfd,#f5f6f8)}.e10-hist-btn{width:24px;height:24px;display:grid;place-items:center;border:1px solid transparent;background:transparent;color:#5a636b;cursor:pointer}.e10-hist-btn:hover{background:#e8edf2;border-color:#d6dce2}.e10-content-title{margin-left:2px;font-size:12.5px;font-weight:700;color:#22272c}.e10-content-right{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--e10-muted)}.e10-content-right .e10-account{margin-right:2px}.e10-content-scroll{flex:1;min-height:0;overflow:auto;padding:10px 12px 14px;background:#f4f6f8}.e10-statusbar{flex:none;display:flex;align-items:center;gap:8px;height:24px;padding:0 10px;background:#eef0f3;border-top:1px solid #d3d8dd;color:#6c757d;font-size:11px}.e10-status-grow{flex:1}.e10-status-sep{width:1px;height:12px;background:#cfd5db}.e10-statusbar .online:before{content:"";display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:#3c9a4e}.e10-splash{position:relative;height:100vh;background:#fff;overflow:hidden}.e10-splash-brand{position:absolute;left:46px;top:34px;display:flex;align-items:baseline;gap:8px}.e10-splash-e10{font-size:34px;font-weight:700;color:#c8102e;letter-spacing:-.03em}.e10-splash-name{font-size:22px;font-weight:600;color:#3a4046;letter-spacing:.04em}.e10-splash-center{position:absolute;left:50%;bottom:96px;transform:translate(-50%);width:260px;text-align:center;color:#6b747d;font-size:12.5px}.e10-splash-progress{height:4px;margin-bottom:12px;background:#e6e9ec;overflow:hidden}.e10-splash-progress i{display:block;width:40%;height:100%;background:var(--e10-blue);animation:e10-splash-run 1.2s ease-in-out infinite}@keyframes e10-splash-run{0%{transform:translate(-100%)}to{transform:translate(350%)}}.e10-login-screen{position:relative;height:100vh;display:grid;place-items:center;overflow:hidden;background:#e8edf2}.e10-login-facets{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.55;background:linear-gradient(135deg,transparent 0 42%,#dfe7ef 42% 58%,transparent 58%),linear-gradient(45deg,transparent 0 55%,#eef3f8 55% 70%,transparent 70%),radial-gradient(circle at 12% 18%,#f7fafc 0 18%,transparent 18.5%),radial-gradient(circle at 88% 82%,#f2f6fa 0 22%,transparent 22.5%),#eef2f6}.e10-login-win{position:relative;z-index:2;width:850px;max-width:calc(100vw - 40px);background:#fff;border:1px solid #a9b3bd;box-shadow:0 16px 45px #1e2d3c38}.e10-login-head{display:flex;align-items:center;justify-content:space-between;height:62px;padding:0 22px;border-bottom:1px solid #e2e6ea}.e10-wordmark{display:flex;align-items:baseline;gap:10px}.e10-wordmark-mark{font-size:30px;font-weight:700;color:#c8102e;letter-spacing:-.03em}.e10-wordmark-div{width:1px;height:26px;background:#cdd3d9}.e10-wordmark-name{font-size:25px;font-weight:600;color:#3a4046;letter-spacing:.03em}.e10-login-vendor{font-size:11.5px;color:#8b949d;letter-spacing:.06em}.e10-login-body{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);min-height:340px}.e10-login-hero{position:relative;padding:34px 30px;background:linear-gradient(150deg,#5b7591eb,#384e67f5),#4b5f75;color:#fff;overflow:hidden;display:flex;align-items:flex-end}.e10-login-hero:before,.e10-login-hero:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.14);transform:rotate(45deg)}.e10-login-hero:before{width:240px;height:240px;left:-110px;top:-90px}.e10-login-hero:after{width:320px;height:320px;right:-170px;bottom:-200px}.e10-hero-watermark{position:absolute;right:20px;top:6px;font-size:110px;font-weight:700;color:#ffffff12;letter-spacing:-.04em}.e10-hero-copy{position:relative;z-index:1}.e10-hero-copy h2{font-size:24px;line-height:1.42;font-weight:600;letter-spacing:.02em}.e10-hero-copy p{margin-top:10px;font-size:12px;color:#ffffffb8}.e10-hero-chips{display:flex;gap:6px;margin-top:16px;flex-wrap:wrap}.e10-hero-chips span{padding:3px 8px;border:1px solid rgba(255,255,255,.28);font-size:11px;color:#ffffffd9}.e10-login-form{display:flex;flex-direction:column;gap:9px;padding:24px 26px 18px}.e10-form-row{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:8px}.e10-form-row label{font-size:12px;color:#4a5056}.e10-form-row input,.e10-form-row select{width:100%;height:29px;padding:0 7px;border:1px solid #b9c0c8;border-radius:1px;background:#fff;color:#222;font-size:12px;outline:none}.e10-form-row input:focus,.e10-form-row select:focus{border-color:var(--e10-blue);box-shadow:0 0 0 2px #2f6fb51f}.e10-auto-login{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:1px;font-size:11.5px;color:#5b636b}.e10-auto-login input{width:13px;height:13px;accent-color:var(--e10-blue)}.e10-login-error{padding:4px 7px;border:1px solid #e3b4b4;background:#fdf3f3;color:#b03030;font-size:11.5px}.e10-login-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:12px}.e10-login-hint{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#98a1aa}.e10-login-hint button{border:0;background:none;padding:0;color:var(--e10-blue);font-size:11px;cursor:pointer}.e10-login-hint button:hover{text-decoration:underline}.e10-login-advanced{padding-top:20px}.e10-adv-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px}.e10-adv-grid label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:#4a5056}.e10-adv-grid input,.e10-adv-grid select{height:28px;padding:0 7px;border:1px solid #b9c0c8;border-radius:1px;font-size:12px;color:#222;background:#fff}.e10-login-foot{display:flex;align-items:center;justify-content:space-between;height:38px;padding:0 18px;border-top:1px solid #e2e6ea;background:#f5f7f9;color:#8b949d;font-size:11px}.e10-home{max-width:1000px;height:100%;margin:0 auto;padding:4px 6px 6px;display:flex;flex-direction:column;gap:12px}.e10-home-top{position:relative;flex:none;display:flex;align-items:flex-end;justify-content:center;gap:16px}.e10-home-wordmark{display:flex;align-items:baseline;gap:10px}.wm-red{font-size:40px;font-weight:700;color:#c8102e;letter-spacing:-.04em;line-height:1}.wm-divider{width:1px;height:30px;background:#c7cdd3;align-self:center}.wm-ink{font-size:31px;font-weight:600;color:#30363b;letter-spacing:.04em;line-height:1}.wm-tag{font-size:9.5px;color:#98a1aa;letter-spacing:.18em;text-transform:uppercase;align-self:flex-end}.e10-home-link{position:absolute;right:2px;bottom:2px;display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:var(--e10-blue);font-size:11.5px;cursor:pointer}.e10-home-link:hover{text-decoration:underline}.e10-tile-grid{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(190px,1fr);gap:6px}.e10-tile{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:16px 18px;border:0;color:#fff;text-align:left;cursor:pointer;overflow:hidden;transition:filter .15s ease}.e10-tile:hover{filter:brightness(1.07)}.e10-tile:focus-visible{outline:2px solid #fff;outline-offset:-4px}.e10-tile-icon-wrap{opacity:.95}.e10-tile-icon{width:74px;height:74px;display:block}.e10-tile-label{font-size:21px;font-weight:400;letter-spacing:.06em;text-shadow:0 1px 2px rgba(0,0,0,.12)}.tile-production{background:#2ba7d5}.tile-finance{background:#d9534f}.tile-master{background:#e2b523}.tile-rd{background:#4caf50}.tile-supply{background:#6b70d6}.tile-wide{grid-column:span 2}.e10-home-foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:9px;border-top:1px solid #e0e4e8;color:#8a949e;font-size:11px}.e10-home-links{display:inline-flex;align-items:center;gap:8px}.e10-home-links button{border:0;background:none;padding:0;color:#4a6f95;font-size:11px;cursor:pointer}.e10-home-links button:hover{text-decoration:underline}.e10-home-links i{width:1px;height:10px;background:#d3d8dd}.e10-map{display:flex;flex-direction:column;min-height:100%}.e10-map-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px}.e10-map-head h2{font-size:15px;font-weight:600;color:#22272c}.e10-map-head p{margin-top:2px;font-size:11.5px;color:#8a949e}.e10-map-actions{display:flex;align-items:center;gap:10px}.e10-map-hint{font-size:11px;color:#98a1aa}.e10-map-canvas{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;min-height:480px;padding:16px 18px;background:#fff;border:1px solid #dfe3e8}.fm-col-title{margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid #edf0f3;color:#8b949d;font-size:11px;letter-spacing:.08em}.fm-nodes{display:flex;flex-direction:column;gap:24px}.fm-node{position:relative;display:flex;align-items:center;gap:7px;min-height:32px;padding:0 8px;border:1px solid #d5dbe1;background:linear-gradient(#fff,#fbfcfd);color:#333a40;font-size:12px;text-align:left;cursor:pointer}.fm-node:hover{border-color:#7fa9d6;background:#f4f9ff}.fm-node:after{content:"";position:absolute;left:17px;top:100%;width:1px;height:24px;background:#cfd6dd}.fm-nodes .fm-node:last-child:after{display:none}.fm-ico{flex:none;display:grid;place-items:center;width:20px;height:20px;color:#fff}.fm-ico.doc{background:#4a90d9}.fm-ico.report{background:#5cb85c}.fm-ico.action{background:#f0ad4e}.fm-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fm-tag{flex:none;padding:0 4px;border:1px solid #e2e2e2;background:#fafafa;color:#a0a8b0;font-size:10px;line-height:15px}.fm-node.disabled{color:#9aa3ac;background:#fafbfc;cursor:not-allowed}.fm-node.disabled:hover{border-color:#d5dbe1;background:#fafbfc}.fm-node.disabled .fm-ico{background:#bcc4cc}.page{gap:10px;animation:none}.page-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-bottom:2px}.page-head-text h1{font-size:14px;font-weight:700;color:#22272c}.page-head-text p{display:none}.page-actions{display:flex;align-items:center;gap:6px}.btn{height:27px;padding:0 11px;border:1px solid #b9c0c8;border-radius:1px;background:linear-gradient(#fefefe,#ececec);color:#2f3438;font-size:12px;font-weight:400;box-shadow:none}.btn:hover:not(:disabled){background:linear-gradient(#fff,#e2e2e2);border-color:#9aa3ac}.btn:focus-visible{outline:1px dotted #555;outline-offset:-3px}.btn-primary{border-color:#2a629c;background:linear-gradient(#3d80c0,#2f6fb5);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(#3a78b4,#28609e)}.btn-ghost{background:#fff;border-color:#c2c9d0}.btn-ghost:hover:not(:disabled){background:#f4f7fa}.btn-subtle{background:#eaf2fa;border-color:#c9dcee;color:#2b669f}.btn-subtle:hover:not(:disabled){background:#dfeaf6}.btn-danger{background:#c9302c;border-color:#ac2925;color:#fff}.btn-sm{height:24px;padding:0 9px;font-size:11.5px}.btn-lg{height:32px;font-size:13px}.btn-block{width:100%}.link-btn{color:#1f6fb2;font-size:12px;font-weight:400}.link-btn:hover{color:#14507f}.icon-btn{width:26px;height:26px;border-radius:1px}.icon-btn:hover{background:#e8edf2}.input{height:26px;padding:0 6px;border:1px solid #b9c0c8;border-radius:1px;font-size:12px;color:#222}.input:focus{border-color:var(--e10-blue);box-shadow:0 0 0 2px #2f6fb51f}.select{padding-right:24px;background-position:right 7px center;background-size:12px}.select-sm,.date-range .input{height:26px}.textarea{padding:4px 6px}.search-input{width:220px;height:26px;padding-left:26px;border:1px solid #b9c0c8;border-radius:1px;font-size:12px}.search svg{left:7px}.search-input:focus{border-color:var(--e10-blue);box-shadow:0 0 0 2px #2f6fb51f}.form-grid{gap:10px 14px}.field{gap:4px}.field-label{font-size:12px;color:#4a5056;font-weight:400}.field-hint{font-size:11px;color:#98a1aa}.switch-row{height:26px;font-size:12px}.toolbar{gap:6px;padding:6px 8px;background:#f7f8fa;border-bottom:1px solid #e0e4e8}.toolbar-filters{gap:6px}.toolbar-actions{gap:8px;font-size:11.5px}.date-range{gap:4px;font-size:11.5px}.date-range .input{width:118px}.card,.panel{border:1px solid #d5dbe1;border-radius:0;box-shadow:none;background:#fff}.card-head{padding:6px 10px;background:#f5f7fa;border-bottom:1px solid #e0e4e8}.card-head h2{font-size:12.5px;font-weight:600}.card-body{padding:10px}.card-body-flush{padding:0}.table{font-size:12px}.table thead th{padding:5px 8px;border:1px solid #d9dee3;background:#f1f4f7;color:#3a4046;font-size:12px;font-weight:600;letter-spacing:0}.table tbody td{padding:4px 8px;border:1px solid #e4e8ec;color:#333a40}.table tbody tr:hover td{background:#eaf4fd}.table tbody tr.clickable{cursor:pointer}.table-wrap{border:1px solid #d9dee3;background:#fff}.panel .table-wrap{border:0}.table td .unit{color:#98a1aa}.cell-stack strong{font-size:12px}.cell-stack span{font-size:11px}.mini-stats{border:1px solid #d5dbe1;border-radius:0;box-shadow:none}.mini-stats>div{padding:6px 12px;border-right:1px solid #e4e8ec}.mini-stats span{font-size:11px;color:#8a949e}.mini-stats b{font-size:15px;font-weight:700;color:#22272c}.badge{height:18px;padding:0 5px;border-radius:1px;font-size:10.5px;font-weight:400}.badge-dot{width:4px;height:4px}.tabs .tab{height:30px;padding:0 10px;font-size:12px}.tab-count{height:16px;font-size:10px;border-radius:1px}.panel-tabs{padding:0 8px}.progress{height:5px;border-radius:1px}.progress span{border-radius:1px}.progress-cell span{font-size:10.5px}.modal-overlay{background:#141e2852;-webkit-backdrop-filter:none;backdrop-filter:none;padding:16px}.modal{border:1px solid #8f9aa5;border-radius:0;box-shadow:0 12px 40px #00000047}.modal-head{padding:6px 10px;background:linear-gradient(#f7f8f9,#e9ecef);border-bottom:1px solid #c9d0d6}.modal-head h3{font-size:12.5px;font-weight:700;color:#22272c}.modal-head p{margin-top:1px;font-size:11px;color:#8a949e}.modal-body{padding:12px}.modal-foot{padding:8px 10px;gap:6px;background:#f2f4f6;border-top:1px solid #c9d0d6}.modal-totals{gap:14px;font-size:11.5px}.modal-totals b{font-size:12.5px}.modal-totals .grand b{font-size:15px}.modal-foot-total,.modal-foot-note{font-size:11.5px}.detail-meta{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 14px;padding:8px 10px;border-radius:0;border-color:#dfe4e9;background:#f8f9fb}.detail-meta span{font-size:11px}.detail-meta b{font-size:12px}.detail-total{padding:8px 10px;border-radius:0;background:#f8f9fb}.detail-total b{font-size:15px}.totals-box{width:280px;padding:9px 10px;border-radius:0;gap:5px}.totals-box .grand b{font-size:16px}.linked-doc{border-radius:0;padding:8px 10px}.order-hint{border-radius:0;font-size:11.5px}.bom-preview{border-radius:0}.sub-head{margin:12px 0 6px}.sub-head h4{font-size:12px}.line-table th{padding:4px 6px}.line-table td{padding:3px 6px}.line-table .input{height:26px}.form-grid{grid-template-columns:1fr 1fr}.kpi-grid{gap:8px}.kpi-card{border-radius:0;padding:10px 12px;box-shadow:none;border-color:#d9dee3}.kpi-card:after{display:none}.kpi-value{font-size:18px}.kpi-label{font-size:11.5px}.kpi-hint{font-size:10.5px}.kpi-icon{width:28px;height:28px;border-radius:1px}.chart{height:170px}.bar{width:13px}.chart-legend{font-size:11.5px}.todo{font-size:12px;padding:7px 6px;border-radius:1px}.todo-count{border-radius:1px}.stock-alert-name{font-size:12px}.stock-alert-num{font-size:11px}.empty{padding:26px 12px}.empty-icon{width:38px;height:38px;border-radius:1px}.loading{padding:20px 10px}.toast{border-radius:2px;padding:9px 12px;font-size:12px}.alert{border-radius:1px;font-size:11.5px}.confirm-text{font-size:12.5px}.e10-about{display:grid;grid-template-columns:74px 1fr;gap:7px 10px;margin:0;font-size:12px}.e10-about dt{color:#8a949e}.e10-about dd{margin:0;color:#333}.e10-confirm-text{font-size:12.5px;color:#333}.e10-map-actions .btn{display:inline-flex;align-items:center;gap:5px}@media(max-width:1180px){.e10-menu{width:208px}.e10-tile-grid{grid-auto-rows:180px}.e10-tile-label{font-size:18px}.e10-tile-icon{width:60px;height:60px}}@media(max-width:980px){.e10-menu{display:none}.e10-login-body{grid-template-columns:1fr}.e10-login-hero{display:none}.e10-login-win{width:460px}.e10-map-canvas{grid-template-columns:repeat(2,minmax(0,1fr))}.e10-home-wordmark .wm-tag{display:none}}@media(max-width:720px){.e10-tile-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.tile-wide{grid-column:span 2}.e10-map-canvas{grid-template-columns:1fr}.wm-ink{font-size:24px}.wm-red{font-size:30px}.e10-content-scroll{padding:8px}.e10-home-foot{flex-direction:column;align-items:flex-start}.e10-statusbar span:nth-child(4),.e10-statusbar span:nth-child(5){display:none}}.e10-nav-empty{padding:14px 10px;color:#98a1aa;font-size:11.5px;text-align:center}.e10-home-empty{grid-column:1 / -1;display:grid;place-items:center;min-height:180px;border:1px dashed #d5dbe1;background:#fafbfc;color:#8a949e;font-size:13px}.perm-tree{max-height:380px;overflow-y:auto;border:1px solid #dfe3e8;background:#fff}.perm-row{display:flex;align-items:center;gap:8px;height:31px;padding-right:10px;border-bottom:1px solid #f0f2f4;font-size:12px;color:#333a40;cursor:pointer}.perm-row:last-child{border-bottom:0}.perm-row:hover{background:#f6fafd}.perm-row input{width:14px;height:14px;accent-color:var(--e10-blue)}.perm-row.disabled{color:#9aa3ac}.perm-label{min-width:150px}.perm-route{margin-left:auto;color:#98a1aa;font-size:11px;font-family:Consolas,SFMono-Regular,monospace}.fm-empty{padding:10px 8px;border:1px dashed #e1e5e9;color:#9aa3ac;font-size:11.5px;text-align:center}.e10-login-screen{min-height:100vh;height:auto;padding:24px;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.9),transparent 34%),linear-gradient(135deg,#eef2f5,#dfe6ec);overflow:auto}.e10-login-frame{position:relative;z-index:2;width:843px;height:490px;flex:none;background:#fff;border:1px solid #aeb7c1;box-shadow:0 22px 58px #18263747;overflow:hidden}.e10-login-bg{display:block;width:843px;height:490px;-webkit-user-select:none;user-select:none;pointer-events:none}.e10-login-overlay{position:absolute;top:0;right:0;bottom:0;left:0}.e10-login-field{position:absolute;left:575px;width:244px;height:36px;display:flex;align-items:stretch;background:transparent;border-radius:3px;overflow:hidden}.e10-login-field:focus-within{box-shadow:inset 0 0 0 1px #1a6fbfa6}.e10-login-field label{width:80px;flex:none;display:flex;align-items:center;padding-left:10px;font-size:12px;color:#5d6670;background:transparent;cursor:text}.e10-login-field select,.e10-login-field input{flex:1;min-width:0;height:100%;padding:0 8px;border:0;outline:0;background:transparent;color:#2f3438;font-size:12px;font-family:inherit}.e10-login-field select{cursor:pointer}.field-account{top:166px}.field-auth{top:216px}.field-user{top:266px}.field-password{top:316px}.e10-auto-login{position:absolute;left:575px;top:368px;display:flex;align-items:center;gap:5px;font-size:11.5px;color:#5f6872;cursor:pointer}.e10-auto-login input{width:13px;height:13px;accent-color:#1a6fbf}.e10-login-error{position:absolute;left:575px;top:352px;width:244px;font-size:11px;line-height:14px;color:#c0392b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.e10-login-error.static{position:static;width:auto;margin-top:10px;white-space:normal}.e10-login-actions{position:absolute;left:575px;top:398px;width:244px;display:flex;align-items:center;justify-content:space-between}.e10-login-textbtn{padding:0;border:0;background:none;color:#4f5a66;font-size:11.5px;cursor:pointer}.e10-login-textbtn:hover{color:#1a6fbf;text-decoration:underline}.e10-login-submit{min-width:84px;height:29px;padding:0 16px;border:1px solid #1b5f9e;border-radius:2px;background:linear-gradient(#2f8bd6,#1d6fb7);color:#fff;font-size:12.5px;font-weight:600;cursor:pointer}.e10-login-submit:hover{background:linear-gradient(#3a95df,#2179c2)}.e10-login-submit:disabled{opacity:.7;cursor:default}.e10-login-hint{position:absolute;left:575px;bottom:9px;width:244px;display:flex;align-items:center;justify-content:space-between;font-size:10.5px;color:#8a939d}.e10-login-hint button{padding:0;border:0;background:none;color:#1a6fbf;font-size:10.5px;cursor:pointer}.e10-login-copyright{position:absolute;left:16px;bottom:9px;font-size:10px;color:#8d96a0;letter-spacing:.02em}.e10-advanced-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:24px;background:#f7f9fbf9}.e10-advanced-card{width:620px;padding:22px 24px 20px;border:1px solid #d4dae1;background:#fff;box-shadow:0 16px 40px #1e2d3c24}.e10-advanced-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;color:#2f3438;font-size:14px}.e10-advanced-card .e10-adv-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}.e10-advanced-card .e10-adv-grid label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:#5c6670}.e10-advanced-card .e10-adv-grid input,.e10-advanced-card .e10-adv-grid select{height:28px;padding:0 8px;border:1px solid #c9d0d7;background:#fff;font-size:12px;color:#2f3438}.e10-advanced-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.e10-splash{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;background:radial-gradient(circle at 50% 42%,#ffffff,transparent 52%),#eef1f4;overflow:hidden}.e10-splash-card{width:843px;max-width:92vw;border:1px solid #d5dbe1;background:#fff;box-shadow:0 22px 58px #1826372e}.e10-splash-card img{display:block;width:100%;height:auto}.e10-splash-center{position:static;transform:none;width:260px;text-align:center;color:#6b747d;font-size:12.5px}.e10-splash-foot{position:absolute;left:46px;bottom:22px;color:#9aa3ac;font-size:11px}@media(max-width:900px){.e10-login-frame{zoom:.86}}@media(max-width:760px){.e10-login-frame{zoom:.7}}.e10-catalog-source{display:inline-flex;align-items:center;gap:6px;color:#7a858f;font-size:11.5px}.e10-catalog-toolbar{padding:12px 14px;margin-bottom:10px}.e10-catalog-search{display:flex;align-items:center;gap:8px}.e10-catalog-search .input,.e10-catalog-search input{flex:1;min-width:220px}.e10-catalog-filters{display:flex;align-items:center;gap:18px;margin-top:10px}.e10-catalog-filters label{display:flex;align-items:center;gap:7px;font-size:11.5px;color:#5d6670;flex:none;white-space:nowrap}.e10-catalog-filters label span{flex:none;white-space:nowrap}.e10-catalog-filters select{min-width:130px}.e10-program-name{display:flex;flex-direction:column;gap:1px;line-height:1.25}.e10-program-name strong{font-weight:600;color:#2f363c}.e10-program-name span{color:#98a1aa;font-size:10.5px;font-family:Consolas,SFMono-Regular,monospace}.e10-catalog-pager{display:flex;align-items:center;justify-content:space-between;padding:9px 4px 2px;color:#7a858f;font-size:11.5px}.e10-catalog-pager>div{display:flex;gap:6px}.e10-catalog-note{margin-top:10px;color:#8a949e;font-size:11.5px;line-height:1.7}
