:root{--navy:#17283a;--blue:#1976d2;--line:#d9e0e7;--soft:#f4f7fa;--text:#1d2935;--muted:#6c7a89;--green:#16865c}*{box-sizing:border-box}body{margin:0;font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:var(--text);background:#f5f7f9}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 14px;cursor:pointer;color:var(--text)}button:hover{background:#f1f5f8}button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}button.ghost{background:transparent;color:#fff;border-color:#728090}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#14283b,#315c7a)}.login-card{width:380px;background:#fff;padding:40px;border-radius:14px;box-shadow:0 20px 50px #08131f55}.brand-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;background:var(--blue);color:#fff;font-weight:800;font-size:20px}.brand-mark.small{width:34px;height:34px;border-radius:8px;font-size:13px}.login-card h1{margin:22px 0 5px}.login-card p{color:var(--muted);margin:0 0 24px}.login-card label,.modal-card label{display:grid;gap:6px;margin:14px 0}.login-card input,.modal-card input,.modal-card select{padding:10px;border:1px solid var(--line);border-radius:6px}.login-card .primary{width:100%;margin-top:12px;padding:11px}.error{color:#c62828;margin-top:12px}header{height:62px;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 24px;gap:30px}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}nav{display:flex;align-self:stretch}nav button{border:0;border-radius:0;background:transparent;color:#c9d2dc;padding:0 18px}nav button.active{background:#243d54;color:#fff;box-shadow:inset 0 -3px var(--blue)}.account{margin-left:auto;display:flex;align-items:center;gap:14px}main{padding:26px;max-width:1600px;margin:auto}.page{display:none}.page.active{display:block}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.page-title h2{margin:0 0 4px}.page-title p{margin:0;color:var(--muted)}.actions{display:flex;gap:8px}.quote-meta{display:grid;grid-template-columns:2fr 1.4fr 180px 140px;gap:14px;background:#fff;border:1px solid var(--line);padding:16px;border-radius:8px 8px 0 0}.quote-meta label,.bottom-grid>label{display:grid;gap:6px;color:var(--muted);font-size:13px}.quote-meta input,.quote-meta select,.bottom-grid textarea,.totals input{border:1px solid var(--line);padding:9px;border-radius:5px;background:#fff;color:var(--text)}.sheet-wrap{position:relative;overflow:auto;background:#fff;border-left:1px solid var(--line);border-right:1px solid var(--line)}table{border-collapse:collapse;width:100%}.sheet{min-width:1100px;table-layout:fixed}.sheet th{background:#e9eef3;font-weight:600;height:42px;border:1px solid #cfd7df}.sheet th.row-no{width:42px}.sheet th.wide{width:220px}.sheet th:last-child{width:42px}.sheet td{height:42px;border:1px solid var(--line);padding:0}.sheet td.row-no{text-align:center;background:#f1f4f6;color:#71808e}.cell{width:100%;height:40px;border:0;padding:0 10px;background:#fff;outline:0}.cell:focus{box-shadow:inset 0 0 0 2px var(--blue);background:#f8fbff}.cell.calc{background:#f5f7f8;text-align:right;font-weight:600}.cell.number{text-align:right}.remove-row{border:0;color:#b43b3b;padding:8px;background:transparent}.add-row{width:100%;border-radius:0 0 8px 8px;border-color:var(--line);color:var(--blue);padding:10px}.picker{position:fixed;z-index:20;min-width:210px;max-height:280px;overflow:auto;background:#fff;border:1px solid #b9c5cf;border-radius:7px;box-shadow:0 10px 30px #1a2b3b33;padding:5px}.picker button{display:block;width:100%;border:0;text-align:left;padding:9px}.picker button.selected,.picker button:hover{background:#e7f2fd;color:#075da8}.bottom-grid{display:grid;grid-template-columns:1fr 340px;gap:20px;margin-top:18px}.totals{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}.totals label{display:flex;justify-content:space-between;align-items:center;padding:7px}.totals input{width:120px;text-align:right}.totals .grand{border-top:1px solid var(--line);margin-top:6px;padding-top:14px;font-size:20px;font-weight:700}.totals .grand output{color:var(--blue)}.card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:auto}.list th,.list td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}.list th{background:#eef2f5}.list tr:hover td{background:#f8fafb}.list button{padding:5px 9px;margin-right:5px}.modal{position:fixed;inset:0;background:#07152188;display:grid;place-items:center;z-index:50}.modal-card{width:min(520px,92vw);background:#fff;border-radius:10px;padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.modal-head button{font-size:22px;border:0}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}#toast{position:fixed;right:24px;bottom:24px;background:#183147;color:#fff;padding:12px 18px;border-radius:7px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}.status{padding:3px 8px;border-radius:12px;background:#e9eef3;font-size:12px}.status.on{background:#dff4e9;color:#087249}@media(max-width:900px){nav button{padding:0 8px}.brand strong{display:none}.quote-meta{grid-template-columns:1fr 1fr}.bottom-grid{grid-template-columns:1fr}.page-title{align-items:flex-start;gap:12px}.actions{flex-wrap:wrap}}
/* 型号快捷搜索结果 */
.picker button strong{display:block}.picker button small{display:block;margin-top:3px;color:var(--muted);font-size:12px}

/* 登录页：直播制作主题 */
.login-shell{position:relative;isolation:isolate;overflow:hidden;grid-template-columns:minmax(440px,620px) 380px;justify-content:center;gap:72px;padding:40px;background:radial-gradient(circle at 24% 42%,#2470a64d 0,transparent 27%),radial-gradient(circle at 76% 75%,#18b8a924 0,transparent 25%),linear-gradient(135deg,#101f31 0%,#17344c 55%,#285b78 100%)}
.login-shell:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.16;background-image:linear-gradient(#8bd4ff22 1px,transparent 1px),linear-gradient(90deg,#8bd4ff22 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(90deg,#000,transparent 74%)}
.login-shell:after{content:"";position:absolute;width:620px;height:620px;left:-230px;bottom:-390px;border:1px solid #64c9ff45;border-radius:50%;box-shadow:0 0 0 70px #64c9ff0a,0 0 0 150px #64c9ff08;z-index:-1}
.broadcast-scene{position:relative;width:100%;height:520px;color:#fff;display:flex;align-items:center;justify-content:center}
.camera-visual{position:relative;width:min(520px,100%);filter:drop-shadow(0 24px 35px #06111f66)}
.camera-visual svg{width:100%;overflow:visible;fill:#0c192699;stroke:#87dbff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.camera-visual svg circle:last-of-type{fill:#1675a455;stroke:#5df4d0}.focus-ring{position:absolute;width:185px;height:185px;border:1px solid #67e5d5aa;border-radius:50%;left:107px;top:62px;box-shadow:0 0 45px #42e8cf33;animation:focusPulse 3s ease-in-out infinite}
.signal-lines{position:absolute;right:-12px;top:48px;display:grid;gap:9px;transform:rotate(-8deg)}.signal-lines b{display:block;border:2px solid #65dfff;border-left:0;border-bottom:0;border-radius:0 100% 0 0}.signal-lines b:nth-child(1){width:25px;height:25px}.signal-lines b:nth-child(2){width:45px;height:45px}.signal-lines b:nth-child(3){width:66px;height:66px}
.live-pill{position:absolute;top:58px;left:18px;display:flex;align-items:center;gap:8px;padding:7px 13px;border:1px solid #ff6d7b80;border-radius:18px;background:#ff334b1f;color:#ffabb3;font-size:12px;font-weight:800;letter-spacing:2px}.live-pill i{width:8px;height:8px;border-radius:50%;background:#ff4053;box-shadow:0 0 12px #ff4053;animation:liveBlink 1.25s infinite}
.scene-copy{position:absolute;left:28px;bottom:40px;display:grid;gap:7px}.scene-copy strong{font-size:27px;letter-spacing:5px}.scene-copy span{color:#aed1e4;letter-spacing:3px;font-size:13px}
.view-corner{position:absolute;width:44px;height:44px;border-color:#68dfff;border-style:solid;opacity:.55}.vc-one{left:0;top:115px;border-width:2px 0 0 2px}.vc-two{right:0;bottom:105px;border-width:0 2px 2px 0}
.login-card{position:relative;z-index:2;border:1px solid #ffffff8c;box-shadow:0 30px 80px #06132078}.login-card:before{content:"";position:absolute;left:34px;right:34px;top:0;height:3px;background:linear-gradient(90deg,#ffbe00,#21e798,#3ccdf4,#e6a7ff);border-radius:0 0 4px 4px}
@keyframes liveBlink{50%{opacity:.35;transform:scale(.75)}}@keyframes focusPulse{50%{transform:scale(1.045);opacity:.55}}
@media(max-width:1050px){.login-shell{grid-template-columns:1fr;padding:24px}.broadcast-scene{display:none}.login-card{justify-self:center}}
