:root{--background:#fff;--foreground:#233832;--card:#fff;--card-foreground:#233832;--popover:#fff;--popover-foreground:#233832;--primary:#17634e;--primary-foreground:#fff;--secondary:#edf3f0;--secondary-foreground:#294b3f;--muted:#f1f5f3;--muted-foreground:#71817b;--accent:#e5f0eb;--accent-foreground:#174d3b;--destructive:#be4343;--border:#dfe7e3;--input:#d9e3dd;--ring:#4f9d81;--radius:.5rem}*{box-sizing:border-box}body{margin:0;background:#f3f6f4;color:#263b33;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}h1,h2,h3,p{margin:0}h1{font-size:29px;letter-spacing:-.7px;line-height:1.5}h1,h2{font-weight:650}h2{font-size:18px}h3{font-size:16px;font-weight:600}p{color:#738179;font-size:14px}p,small{line-height:1.8}small{display:block;color:#819087;font-size:12px}b,strong{font-weight:600}.app-shell{display:flex;min-height:100vh}.sidebar{width:218px;background:#fff;border-right:1px solid #e1e9e4;position:fixed;inset:0 auto 0 0;padding:32px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 38px;font-size:24px;font-weight:700;letter-spacing:1px}.brand small{font-weight:400;font-size:11px;letter-spacing:.5px;white-space:nowrap}.brand-mark{background:#1c624d;color:white;border-radius:10px;width:42px;height:42px;display:grid;place-items:center}.nav-label{font-size:12px;color:#91a096;margin:0 16px 12px}nav{display:grid;gap:7px}nav button{display:flex;align-items:center;gap:13px;text-align:left;padding:13px 16px;color:#77867d;border-radius:7px;font-size:15px;font-weight:500}nav button.active{color:#166347;background:#e8f2ec}nav button:hover{background:#f0f5f2}.nav-indicator{height:6px;width:6px;border-radius:50%;background:#257656;margin-left:auto}.sidebar-foot{margin-top:auto;background:#f5f8f6;border:1px solid #e9eee9;border-radius:10px;padding:16px 12px;font-size:12px}.sidebar-foot p{font-size:12px;margin:10px 0;color:#8c9891}.sidebar-foot span{font-size:10px;color:#a0aaa4;letter-spacing:1px}.main-shell{margin-left:218px;width:calc(100% - 218px)}.topbar{height:76px;background:#ffffffc9;border-bottom:1px solid #e2e9e4;justify-content:space-between;padding:0 36px;font-size:13px;color:#819087}.topbar,.topbar>span{display:flex;align-items:center}.topbar>span{gap:12px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.avatar{margin-left:12px;width:33px;height:33px;background:#e5eee8;display:grid;place-items:center;border-radius:50%;color:#476253;font-size:13px}main{max-width:1800px;margin:auto;padding:34px 36px 40px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.page-heading p{margin-top:7px}.eyebrow{font-size:10px;letter-spacing:2px;color:#7d9486;font-weight:600;margin-bottom:6px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.metric{background:#fff;border:1px solid #e1e8e3;border-radius:10px;position:relative;overflow:hidden;padding:21px 23px}.metric>span{font-size:14px;color:#6a7e71}.metric strong{display:block;font-size:34px;line-height:1.5;margin:10px 0 4px;font-variant-numeric:tabular-nums;font-weight:550}.metric small{font-size:12px}.metric-accent{position:absolute;right:23px;top:24px;width:7px;height:7px;border-radius:2px;background:#bad6c5}.a1{background:#dfc79a}.a2{background:#9bbfce}.a3{background:#5a9c80}.start-panel{display:flex;align-items:center;gap:20px;padding:24px 28px;border:1px solid #cfe2d7;background:#e9f2ed;border-radius:10px;margin-bottom:28px}.start-panel h2{font-size:19px}.start-panel p{margin-top:5px;color:#6f8b79}.start-panel>button{margin-left:auto;background:#f7fbf8;border-color:#cbded1}.start-icon{color:#286c50;background:#d6e9dd;border:1px solid #c5ddce;border-radius:12px;padding:14px}.panel{background:#fff;border:1px solid #e0e8e2;border-radius:10px;overflow:hidden;margin-bottom:22px}.padded{padding:25px}.padded>h2{margin-bottom:15px}.padded>p{margin-bottom:18px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px}.padded>.section-heading{padding:0 0 20px}.count{font-size:12px;background:#edf2ee;color:#77867b;padding:3px 7px;border-radius:5px;margin-left:7px;vertical-align:middle}.search{position:relative;display:flex;align-items:center;color:#8e9d93}.search>svg{position:absolute;left:11px}.search input{padding-left:35px;width:215px;font-size:13px;box-shadow:none;background:#fafcfb}select{height:38px;border:1px solid #dce5de;border-radius:6px;background:white;padding:0 11px;font-size:14px;color:#43594b;max-width:100%}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:12px;color:#8b998e;background:#f8faf8;padding:14px 24px;font-weight:500;border-block:1px solid #eef2ee}td{font-size:14px;padding:19px 24px;border-bottom:1px solid #eef2ee}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdfc}.link{color:#285f47}.link:hover{text-decoration:underline}.strong{font-weight:550}.badge{display:inline-block;border-radius:5px;padding:4px 9px;background:#eff2ef;color:#7a887d;font-size:12px;font-weight:500;vertical-align:middle;letter-spacing:0}.state-已排版{background:#e8f3ed;color:#488264}.state-待排版{background:#fcf2de;color:#ab873e}.state-待加工{background:#e8eef9;color:#5d79aa}.state-加工中{background:#e2f1f1;color:#438a8c}.state-已完成{background:#dceee2;color:#39764e}.empty{text-align:center;padding:64px 20px}.empty>svg{margin:0 auto 15px;color:#98ada0;width:36px;height:36px}.empty h2,.empty h3{margin-bottom:8px}.empty p{margin-bottom:22px}footer{padding:0 36px 22px;color:#92a095;font-size:11px;display:flex;justify-content:space-between}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.form-grid.five{grid-template-columns:repeat(5,1fr)}.field{display:flex;flex-direction:column;gap:8px;font-size:14px;min-width:0}.field>span{color:#738378;font-size:13px}.field input{background:#fff;min-width:0;box-shadow:none}.field input,.field select{width:100%;height:39px}.part-list{display:grid;gap:14px}.part-row{display:flex;gap:15px;padding:20px 15px;background:#f9fbf9;border:1px solid #e6ece7;border-radius:8px}.part-number{color:#9faf9f;font-size:16px;font-weight:600;padding-top:27px}.part-fields{display:grid;grid-template-columns:1.5fr 1fr 1fr .8fr .8fr .8fr;gap:16px;flex:1;min-width:0}.part-row>button{margin-top:23px;color:#98a498}.check{font-size:13px;display:flex;align-items:center;gap:8px;padding-top:22px;white-space:nowrap}.check input{accent-color:#267453;width:16px;height:16px}.bottom-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 23px;border:1px solid #d9e4dc;background:#fff;border-radius:9px;margin:22px 0}.bottom-actions>span{font-size:14px;color:#718775}.bottom-actions em{color:#ba7245;font-style:normal}.layout-grid{display:grid;grid-template-columns:205px minmax(320px,1fr) 235px;gap:16px}.layout-grid>.panel{margin:0}.parts-panel{padding:20px 14px}.parts-panel h2{font-size:15px;margin:0 7px 22px}.group{margin-bottom:22px}.group>b{font-size:14px;padding:0 7px;display:block}.group>b span{color:#8b9b8e;font-weight:400;margin-left:7px}.group>p{font-size:12px;margin:4px 7px 12px}.sheet-tab{display:flex;align-items:center;gap:7px;width:100%;padding:11px 9px;font-size:13px;border-radius:6px;color:#7a8d7e}.sheet-tab span{margin-left:auto;font-size:12px}.sheet-tab.active{background:#e9f3ec;color:#216443}.legend{border-top:1px solid #e7eee8;padding:17px 6px;display:grid;gap:12px;font-size:12px;color:#6e8475}.legend>div{display:flex;align-items:center;gap:8px}.legend i{width:10px;height:10px;border-radius:2px}.canvas-panel{display:flex;flex-direction:column}.canvas-heading{padding:19px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e4ece5;gap:12px}.canvas-heading b{font-size:14px}.canvas-heading span{font-size:12px;color:#8d9c90}.canvas-heading>div{display:flex;gap:12px;align-items:center}.canvas{background-color:#f1f5f2;background-image:radial-gradient(#d7e0d9 .7px,transparent 0);background-size:14px 14px;flex:1;padding:28px 24px;display:flex;flex-direction:column;justify-content:center;min-height:380px}.dimension{font-size:11px;color:#8f9e92;text-align:center;letter-spacing:1px;margin-bottom:15px}.canvas svg{display:block;width:100%;max-height:460px;touch-action:none;overflow:visible;filter:drop-shadow(0 5px 8px #405b4410)}.canvas-caption{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:11px;color:#92a095;margin-top:25px}.canvas-tools{display:flex;gap:8px;flex-wrap:wrap;padding:15px;border-top:1px solid #e4ece5}.canvas-tools button{font-size:12px;padding:6px 10px}.summary-panel{padding:22px 19px}.summary-panel h2{font-size:14px;color:#6d8574}.rate{font-size:44px;line-height:1.5;color:#216344;font-weight:550;letter-spacing:-2px;margin-top:10px}.rate>span{font-size:20px;margin-left:3px}.progress{height:5px;background:#e9efea;border-radius:6px;overflow:hidden;margin:8px 0 25px}.progress i{display:block;height:100%;background:#4d9270}dl{margin:0}dl>div{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:15px}dt{color:#83988a}dd{margin:0;color:#496853}.muted-note{font-size:11px;line-height:1.7;color:#9aa99d;border-bottom:1px solid #e5ece6;padding-bottom:20px}.selected-box{margin-top:21px}.selected-box h3{font-size:13px}.selected-box p{font-size:12px;margin:7px 0}.coords{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.coords input{font-size:13px;height:32px}.print-details h2,.print-details>p{padding:17px 23px 0}.print-details>p{padding-top:3px;padding-bottom:16px}.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.material-card{padding:26px}.material-card h2{font-size:22px;margin:20px 0 5px}.material-card .eyebrow{font-size:9px;letter-spacing:1px}.material-icon{padding:12px;border-radius:9px;background:#edf3ef;color:#7b9b87}.tone-1{background:#f6eee3;color:#b1936a}.tone-2{background:#eaf0f8;color:#7a9cb7}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.chips>span{border:1px solid #dfe8e0;border-radius:5px;padding:5px 9px;color:#6f8877;font-size:12px}.material-card dl{border-block:1px solid #e8eee9;padding-top:18px;margin-bottom:20px}.material-form>.row{margin-top:22px}.alert{background:#fff0ec;border:1px solid #e9b9ab;color:#a84b35;font-size:14px;border-radius:8px;padding:14px 18px;margin-bottom:20px;display:flex;justify-content:space-between;gap:20px}.alert button{text-decoration:underline;white-space:nowrap}.toast{position:fixed;top:24px;left:50%;z-index:50;background:#1c644a;color:#fff;padding:13px 22px;border-radius:9px;display:flex;gap:10px;align-items:center;box-shadow:0 7px 30px #123a3520;font-size:14px}.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(460px,100%);background:#fff;border:1px solid #dfe7e3;border-radius:14px;padding:34px;box-shadow:0 18px 60px #17372a12;display:grid;gap:22px}.auth-card h1{margin-bottom:8px}.auth-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#17634e;color:#fff;font-size:22px;font-weight:700}.auth-identity{padding:11px 13px;border-radius:7px;background:#f3f7f4;color:#607369;font-size:13px;overflow-wrap:anywhere}.auth-button{display:flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;border-radius:7px;background:#17634e;color:#fff;text-decoration:none;font-weight:600}.auth-button.secondary{background:#eef4f0;color:#285343}.top-link{color:#416155;text-decoration:none;padding:7px 9px;border-radius:6px}.top-link:hover{background:#edf3ef}@media(min-width:1600px){main{padding:40px 50px}.layout-grid{grid-template-columns:240px minmax(400px,1fr) 270px}.canvas{min-height:480px}}@media(max-width:1200px){.sidebar{width:185px;padding-inline:12px}.main-shell{margin-left:185px;width:calc(100% - 185px)}main{padding:25px 22px}.topbar{padding:0 22px}.metrics{gap:12px}.metric{padding:18px}.metric-accent{right:16px}.layout-grid{grid-template-columns:180px minmax(300px,1fr)}.summary-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:15px;align-items:start}.summary-panel h2{grid-column:1}.summary-panel .rate{grid-column:1;margin:0}.summary-panel .progress{grid-column:1}.summary-panel dl{grid-column:2;grid-row:1/4}.summary-panel .selected-box{grid-column:3;grid-row:1/4;margin:0}.summary-panel .muted-note{display:none}.material-grid{grid-template-columns:repeat(2,1fr)}.form-grid.five{grid-template-columns:repeat(3,1fr)}.part-fields{grid-template-columns:repeat(4,1fr)}td,th{padding:14px 17px}.section-heading{padding:18px}.start-panel{padding:22px;gap:15px}.start-icon{display:none}}@media(max-width:850px){.sidebar{width:78px;padding-inline:10px}.brand{padding-inline:8px}.brand>div:last-child,.nav-label,.sidebar-foot{display:none}nav button{font-size:0;gap:0;justify-content:center;padding:15px}.nav-indicator{display:none}.main-shell{margin-left:78px;width:calc(100% - 78px)}.metrics{grid-template-columns:repeat(2,1fr)}.page-heading{align-items:flex-start}.page-heading h1{font-size:24px}.layout-grid{grid-template-columns:150px minmax(260px,1fr)}.canvas{padding:20px 14px;min-height:300px}.canvas-heading{flex-wrap:wrap;padding:15px}.form-grid{grid-template-columns:1fr 1fr}.part-fields{grid-template-columns:repeat(3,1fr)}.bottom-actions{flex-direction:column;align-items:stretch}.bottom-actions .row{justify-content:flex-end}.section-heading{flex-wrap:wrap}.start-panel{align-items:flex-start}.start-panel>button{font-size:12px}.date{display:none}}@media(max-width:600px){.sidebar{position:sticky;top:0;width:100%;height:58px;z-index:30;flex-direction:row;border-right:0;border-bottom:1px solid #e1e9e4;padding:5px 8px}.brand{display:none}.sidebar nav{display:flex;width:100%;justify-content:space-around}.sidebar nav button{font-size:12px;gap:6px;padding:10px}.sidebar nav svg{width:16px}.app-shell{display:block}.main-shell{margin:0;width:100%}.topbar{height:52px;padding:0 17px}main{padding:22px 14px}.page-heading{flex-wrap:wrap;gap:15px}.page-heading p{font-size:12px}.metrics{gap:10px}.metric{padding:15px}.metric strong{font-size:29px}.metric small{font-size:10px}.start-panel{flex-wrap:wrap;padding:18px}.start-panel>button{margin-left:0}.form-grid,.form-grid.five{grid-template-columns:1fr 1fr}.padded{padding:18px}.part-row{padding:14px 10px;gap:8px}.part-number{display:none}.part-fields{grid-template-columns:1fr 1fr}.layout-grid{display:flex;flex-direction:column}.parts-panel{padding:16px}.group{display:inline-block;vertical-align:top;width:50%;padding:0 5px}.legend{display:none}.summary-panel,.summary-panel .muted-note{display:block}.summary-panel .selected-box{margin-top:20px}.material-grid{grid-template-columns:1fr}.bottom-actions .row{flex-wrap:wrap;justify-content:flex-start}.search input{width:180px}.section-heading>.row{flex-wrap:wrap}.canvas{min-height:280px}.topbar .avatar{display:none}.bottom-actions{padding:15px}footer{padding-inline:16px}}@media print{.ai-access-panel,.alert,.bottom-actions,.canvas-tools,.page-heading>div:last-child,.sidebar,.toast,.topbar,footer{display:none!important}.main-shell{margin:0;width:100%}main{padding:0}.layout-grid{display:block}.parts-panel,.summary-panel{display:none}.canvas{background:white;min-height:0;print-color-adjust:exact}.panel{break-inside:avoid}.print-details{overflow:visible}table{white-space:normal}td,th{padding:8px;font-size:11px}h1{font-size:22px}}.ai-access-panel{border-color:#cfe0d6;background:linear-gradient(135deg,#fbfdfc,#f4f9f6)}.ai-access-header{display:flex;align-items:center;gap:14px;padding:20px 22px;border-bottom:1px solid #dfe9e2}.ai-access-header>div:nth-child(2){flex:1;min-width:0}.ai-access-header h2{font-size:17px}.ai-access-header p{margin-top:4px}.ai-access-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:#dcefe4;color:#1e6c4e}.ai-access-icon svg{width:21px}.permission-badge{padding:3px 8px;border-radius:999px;background:#edf1ee;color:#7a887e;font-size:12px;font-weight:600}.permission-badge.active{background:#d9eee1;color:#24714f}.ai-access-body{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(360px,1.25fr);gap:22px;padding:20px 22px}.scope-box{padding:16px;border:1px solid #dbe7df;border-radius:8px;background:#fff;display:grid;gap:12px}.scope-box label,.scope-box small,.scope-box>div{display:flex;align-items:center;gap:9px}.scope-box label{font-size:14px;color:#53695c}.scope-box small{align-items:flex-start;color:#829188;line-height:1.6}.scope-box small svg{flex:0 0 auto;margin-top:3px}.ai-source-tabs [data-slot=tabs-list]{background:#e8f0eb}.ai-source-content{margin-top:12px;min-height:122px;border:1px solid #dce7df;border-radius:8px;background:#fff;padding:17px;display:flex;align-items:center;justify-content:space-between;gap:16px}.ai-source-content p{margin-top:5px}.upload-source{display:block}.upload-picker input{height:auto;padding:8px;font-size:13px;box-shadow:none}.upload-picker p{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:12px}.upload-summary{margin-top:14px;padding:12px;border-radius:7px;background:#f0f6f2;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;font-size:13px}.upload-summary span{color:#718278}.ai-access-status{display:flex;justify-content:space-between;gap:14px;padding:12px 22px;background:#edf5f0;color:#4f6d5c;font-size:13px}.ai-access-status small{color:#73877b;text-align:right}button{border:0;background:none;padding:0;color:inherit}[data-slot=button]{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px 16px!important;border:1px solid transparent!important;border-radius:7px;background:var(--primary)!important;color:var(--primary-foreground)!important;font-size:14px;font-weight:550;line-height:1;white-space:nowrap;transition:background .15s,border-color .15s,opacity .15s}[data-slot=button]:hover{background:#11523f!important}[data-slot=button]:focus-visible,[data-slot=checkbox]:focus-visible,[data-slot=input]:focus-visible,[data-slot=select-trigger]:focus-visible{outline:3px solid #4f9d8145;outline-offset:1px}[data-slot=button]:disabled{opacity:.5;pointer-events:none}[data-slot=button][data-variant=outline]{background:#fff!important;color:#365548!important;border-color:#d7e2db!important;box-shadow:0 1px 2px #17372a0a}[data-slot=button][data-variant=ghost]:hover,[data-slot=button][data-variant=outline]:hover{background:var(--accent)!important;color:var(--accent-foreground)!important}[data-slot=button][data-variant=ghost]{background:transparent!important;color:#547064!important}[data-slot=button][data-variant=destructive]{background:var(--destructive)!important}[data-slot=button][data-variant=link]{min-height:0;padding:0!important;background:transparent!important;color:var(--primary)!important;text-decoration:underline}[data-slot=button][data-size=lg]{min-height:40px;padding-inline:24px!important}[data-slot=button][data-size=sm]{min-height:32px;padding:6px 12px!important}[data-slot=button][data-size=icon]{width:36px;padding:8px!important}[data-slot=button]>svg{width:16px;height:16px;flex:0 0 auto}[data-slot=input]{display:block;width:100%;min-width:0;height:36px;border:1px solid var(--input);border-radius:7px;background:#fff;padding:6px 11px;color:var(--foreground);font-size:14px;outline:none;box-shadow:0 1px 2px #17372a08}[data-slot=input]::placeholder{color:#9aa7a0}[data-slot=input]:disabled{opacity:.55;cursor:not-allowed}[data-slot=checkbox]{display:inline-grid;width:16px;height:16px;place-items:center;flex:0 0 auto;border:1px solid var(--input)!important;border-radius:4px;background:#fff!important;color:#fff}[data-slot=checkbox][data-state=checked]{border-color:var(--primary)!important;background:var(--primary)!important}[data-slot=checkbox-indicator]{display:grid;place-items:center}[data-slot=checkbox-indicator] svg{width:13px;height:13px}[data-slot=tabs]{display:flex;flex-direction:column;gap:8px}[data-slot=tabs-list]{width:max-content;padding:3px;border-radius:8px;background:var(--muted);color:var(--muted-foreground)}[data-slot=tabs-list],[data-slot=tabs-trigger]{display:inline-flex;align-items:center;justify-content:center}[data-slot=tabs-trigger]{min-height:30px;padding:5px 10px!important;border-radius:6px;color:#607068;font-size:14px;font-weight:550}[data-slot=tabs-trigger][data-state=active]{background:#fff!important;color:var(--foreground);box-shadow:0 1px 3px #203b3015}[data-slot=tabs-content]{outline:none}[data-slot=select-trigger]{display:flex;width:100%;height:39px;align-items:center;justify-content:space-between;gap:8px;padding:7px 11px!important;border:1px solid var(--input)!important;border-radius:6px;background:#fff!important;color:#43594b;font-size:14px;outline:none}[data-slot=select-trigger]>svg{width:16px;height:16px;color:#7d8e84}[data-slot=select-content]{z-index:100;max-height:320px;min-width:var(--radix-select-trigger-width,160px);overflow:auto;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--foreground);box-shadow:0 12px 34px #1d3b2d26}[data-slot=select-viewport]{padding:4px}[data-slot=select-item]{position:relative;display:flex;align-items:center;min-height:34px;padding:7px 32px 7px 10px;border-radius:5px;font-size:14px;outline:none;cursor:default}[data-slot=select-item][data-highlighted]{background:var(--accent);color:var(--accent-foreground)}[data-slot=select-item-indicator]{position:absolute;right:9px;display:grid;place-items:center}[data-slot=select-scroll-down-button],[data-slot=select-scroll-up-button]{display:flex;justify-content:center;padding:4px}[data-slot=table-container]{width:100%;overflow-x:auto}.print-all-sheets{display:none}@media(max-width:850px){.ai-access-body{grid-template-columns:1fr}.ai-source-content{min-height:0}.ai-access-header{align-items:flex-start;flex-wrap:wrap}.ai-access-header>button{margin-left:56px}}@media(max-width:600px){.ai-access-body,.ai-access-header{padding:16px}.ai-access-icon{display:none}.ai-access-header>button{margin-left:0}.ai-source-content{align-items:flex-start;flex-direction:column}.upload-summary{grid-template-columns:1fr}.ai-access-status{flex-direction:column}.ai-access-status small{text-align:left}}@media print{.layout-grid{display:none!important}.print-all-sheets{display:block}.print-all-sheets>h2{margin-bottom:12px}.print-sheet{break-after:page;margin-bottom:16px}.print-sheet:last-child{break-after:auto}.print-sheet-heading{display:flex;justify-content:space-between;gap:18px;margin-bottom:8px;font-size:12px}.print-sheet svg{display:block;width:100%;max-height:68vh;print-color-adjust:exact}}.admin-shell{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:34px 0 60px}.admin-top{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.admin-top>div:first-child p:last-child{margin-top:6px}.admin-top .top-link{display:inline-flex;align-items:center;gap:6px}.admin-note{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:22px 24px;background:#f7fbf8}.admin-note>svg{color:#287354;width:28px;height:28px}.admin-note h2{margin-bottom:4px}.admin-note>span{text-align:right;color:#75877d;font-size:12px;line-height:1.7}.admin-note>span b{color:#36594a}.admin-create{display:grid;grid-template-columns:1fr 1.3fr 1fr auto;align-items:end;gap:16px}.account-list{display:grid}.account-row{display:grid;grid-template-columns:minmax(240px,1.2fr) auto minmax(360px,1.6fr) auto;gap:18px;align-items:center;padding:22px 24px;border-top:1px solid #edf1ee}.account-person{display:flex;align-items:center;gap:12px;min-width:0}.account-person>div:last-child{min-width:0}.account-person b,.account-person span{display:block;overflow:hidden;text-overflow:ellipsis}.account-person span{font-size:13px;color:#60766a;margin-top:3px}.account-avatar{width:38px;height:38px;border-radius:9px;background:#e8f1eb;color:#377158;display:grid;place-items:center;flex:0 0 auto}.account-avatar svg{width:18px}.account-status{font-size:12px;padding:4px 9px;border-radius:999px}.status-正常{color:#28734d;background:#e2f2e8}.status-已停用{color:#8b4e43;background:#f7e7e3}.status-已到期{color:#8a6733;background:#f8eddb}.account-fields{display:grid;grid-template-columns:1fr 1.25fr 1.1fr;gap:10px}.account-switch{display:flex;align-items:center;gap:8px;font-size:13px;color:#53695d;grid-column:1/-1}.account-switch input{width:17px;height:17px;accent-color:#17634e}.account-admin{color:#5d7368;font-size:13px;display:flex;align-items:center;gap:7px}.account-admin svg{width:17px}.admin-shell>.alert{margin-bottom:20px}@media(max-width:950px){.admin-create{grid-template-columns:1fr 1fr}.account-row{grid-template-columns:1fr auto}.account-admin,.account-fields{grid-column:1/-1}.account-row>[data-slot=button]{grid-column:2}}@media(max-width:600px){.admin-shell{width:min(100% - 24px,1180px);padding-top:20px}.admin-top{align-items:flex-start;flex-direction:column}.admin-top>.row{flex-wrap:wrap}.admin-note{grid-template-columns:auto 1fr}.admin-note>span{grid-column:1/-1;text-align:left}.account-row,.admin-create{grid-template-columns:1fr}.account-status{justify-self:start}.account-fields{grid-template-columns:1fr}.account-row>[data-slot=button]{grid-column:1}}.file-import{border:1px dashed #bfd5c7;border-radius:9px;background:#f7fbf8;margin-bottom:20px;overflow:hidden}.file-import .section-heading{padding:18px 20px;border-bottom:1px solid #e1ebe4}.file-import .section-heading h3{display:flex;align-items:center;gap:8px}.file-import .section-heading h3 svg{width:18px;color:#277151}.file-import .section-heading>span{display:flex;align-items:center;gap:6px;color:#5d7669;font-size:12px}.file-import .section-heading>span svg{width:15px}.file-import-controls{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:16px;padding:18px 20px}.thickness-input small{font-size:11px}.file-picker{min-height:78px;border:1px solid #cbdcd1;border-radius:8px;background:#fff;display:grid;grid-template-columns:auto 1fr;align-content:center;column-gap:10px;padding:12px 15px;color:#37644f;cursor:pointer;position:relative}.file-picker.disabled{opacity:.55;cursor:not-allowed}.file-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-picker input:disabled{cursor:not-allowed}.file-picker>svg{grid-row:1/3;width:22px}.file-picker b{font-size:14px}.file-picker span{font-size:11px;color:#819087}.inline-error{margin:0 20px 14px;padding:10px 12px;border-radius:6px;background:#fff0ec;color:#a84b35;font-size:13px}.import-drafts{display:grid;padding:0 20px 14px;gap:8px}.import-row{display:grid;grid-template-columns:130px 1.2fr .8fr .7fr .7fr .55fr auto;align-items:end;gap:9px;padding:11px;border:1px solid #e1ebe4;border-radius:7px;background:#fff}.import-file{align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6e8177;font-size:12px}.file-import-action{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 20px;background:#edf5f0;color:#61786c;font-size:12px}@media(max-width:1000px){.file-import-controls{grid-template-columns:1fr 1fr}.file-picker{grid-column:1/-1}.import-row{grid-template-columns:1fr 1fr 1fr}.import-file{grid-column:1/-1}.import-row>[data-slot=button]{justify-self:end}}@media(max-width:600px){.file-import-controls{grid-template-columns:1fr}.file-picker{grid-column:auto}.file-import .section-heading{align-items:flex-start}.file-import .section-heading>span{display:none}.import-row{grid-template-columns:1fr 1fr}.file-import-action{align-items:stretch;flex-direction:column}}.customer-shell{width:min(1320px,calc(100% - 40px));margin:0 auto;padding:34px 0 60px}.customer-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.customer-top>div>p:last-child{margin-top:6px}.customer-top .top-link{display:inline-flex;align-items:center;gap:6px}.customer-intro{display:flex;gap:16px;align-items:center;padding:22px 24px;background:#f7fbf8}.customer-intro>svg{width:30px;height:30px;color:#287354}.customer-intro h2{margin-bottom:4px}.customer-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:22px}.customer-form{display:grid;gap:16px}.customer-form>[data-slot=button]{justify-self:start}.customer-grid .section-heading{align-items:flex-start}.customer-grid .section-heading>.search{margin-top:4px}@media(max-width:900px){.customer-grid{grid-template-columns:1fr}.customer-form{grid-template-columns:1fr 1fr}.customer-form>[data-slot=button]{grid-column:1/-1}}@media(max-width:600px){.customer-shell{width:calc(100% - 24px);padding-top:20px}.customer-top{align-items:flex-start;flex-direction:column}.customer-form{grid-template-columns:1fr}.customer-grid .section-heading{flex-direction:column}.customer-grid .search input{width:100%}}.audit-panel{padding:20px 23px}.audit-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.audit-heading h2{display:flex;align-items:center;gap:8px}.audit-heading h2 svg{width:19px}.audit-heading p{margin-top:5px}.audit-heading>b{padding:5px 10px;border-radius:999px;font-size:12px}.audit-pass{border-color:#bfdfc9}.audit-pass .audit-heading>b{background:#e2f2e8;color:#28734d}.audit-fail{border-color:#e8b9ae;background:#fffaf8}.audit-fail .audit-heading>b{background:#fae5e0;color:#a34b3d}.audit-summary{margin-top:16px;padding:10px 12px;border-radius:7px;background:#f4f8f5;color:#557167;font-size:13px}.audit-panel ul{margin:14px 0 0;padding:0;display:grid;gap:7px;list-style:none}.audit-panel li{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:#566b61}.audit-panel li span{font-size:11px;border-radius:4px;padding:2px 5px;flex:0 0 auto}.audit-panel li.error span{background:#fae5e0;color:#a34b3d}.audit-panel li.warning span{background:#f8edda;color:#926b2b}.audit-clean{display:flex;align-items:center;gap:7px;margin-top:14px}.audit-clean svg{width:17px;color:#297653}.review-check{display:flex;align-items:center;gap:9px;margin-top:16px;padding-top:15px;border-top:1px solid #e6eee8;font-size:14px;color:#395f4d}.review-check [data-slot=checkbox]{flex:0 0 auto}.login-fields{display:flex;flex-direction:column;gap:20px}.login-error{color:#b42318;font-size:16px}.user-table-wrap{overflow-x:auto}.user-table{width:100%;border-collapse:collapse;font-size:16px}.user-table td,.user-table th{text-align:left;padding:18px 14px;border-bottom:1px solid #e4eae6;vertical-align:middle}.user-table th{font-weight:600;color:#52665b}.user-actions{display:flex;gap:8px;flex-wrap:wrap}.rename-user{display:block;border:0;background:transparent;color:#17634e;padding:6px 0;font-size:14px;cursor:pointer}.user-table small{font-size:14px;color:#637469}button.top-link{background:transparent;border:0;font:inherit;cursor:pointer}.login-fields small{font-size:14px;color:#637469}