:root{
  --bg:#f4f6f8;--surface:#fff;--surface-2:#f8fafc;--ink:#172033;--muted:#687386;
  --line:#dfe4ec;--line-2:#edf0f4;--brand:#3157d5;--brand-2:#2547bd;--brand-soft:#eef2ff;
  --teal:#0f766e;--teal-soft:#e8f5f2;--amber:#a45e10;--amber-soft:#fff6e6;--red:#b73939;--red-soft:#fff0f0;
  --radius:14px;--shadow:0 12px 34px rgba(31,43,70,.07);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.48}
a{color:inherit}
.app-shell{min-height:100dvh}
.topbar{height:70px;padding:0 24px;display:flex;align-items:center;gap:18px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:11px;min-width:220px;flex:0 0 auto}
.brand-mark{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--ink);color:#fff;font-weight:800;font-size:14px}
.brand-copy b,.brand-copy span{display:block}.brand-copy b{font-size:15px}.brand-copy span{margin-top:2px;color:var(--muted);font-size:10px}
.top-context{min-width:0;flex:1;text-align:center}.top-context b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.top-context span{color:var(--muted);font-size:11px}
.top-actions{display:flex;justify-content:flex-end;gap:8px;flex:0 0 auto}
.module-topbar{gap:16px}.module-topbar .brand{min-width:auto;flex:0 0 auto}.module-topbar .top-actions{min-width:auto;flex:0 0 auto}.module-task{min-width:0;flex:1;display:flex;align-items:center;gap:12px;padding-left:16px;border-left:1px solid var(--line)}.module-back{flex:0 0 auto}.back-short{display:none}.module-context{min-width:0}.module-context b,.module-context span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-context b{font-size:14px}.module-context span{margin-top:2px;color:var(--muted);font-size:11px}
.top-project{min-width:0;flex:1;display:flex;align-items:center;gap:11px;padding-left:16px;border-left:1px solid var(--line)}.top-project-avatar{width:34px;height:34px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:12px;font-weight:800}.top-project-copy{min-width:0;flex:1}.top-project-title{min-width:0;display:flex;align-items:center;gap:7px}.top-project-title b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.top-project-stage{flex:0 0 auto;display:inline-flex;align-items:center;min-height:21px;padding:0 7px;border-radius:7px;background:var(--brand-soft);color:var(--brand);font-size:9px;font-weight:750}.top-project-meta{min-width:0;margin-top:3px;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden}.top-project-meta span{flex:0 0 auto}.top-project-secondary,.top-project-id{overflow:hidden;text-overflow:ellipsis}.top-project-id{min-width:72px;flex:1 1 auto!important}.top-project-metrics{flex:0 0 auto;display:flex;align-items:center;gap:16px;padding:0 4px 0 12px}.top-project-metrics>div{min-width:58px}.top-project-metrics span,.top-project-metrics b{display:block;text-align:right}.top-project-metrics span{color:var(--muted);font-size:9px}.top-project-metrics b{margin-top:2px;font-size:13px}
.btn{height:38px;padding:0 15px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:12px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;white-space:nowrap;transition:transform .16s ease,border-color .16s ease,background .16s ease}
.btn:hover{border-color:#b9c2d1;background:#fbfcfe}.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-2)}
.btn.teal{background:var(--teal);border-color:var(--teal);color:#fff}.btn.danger{color:var(--red);border-color:#efc6c6}.btn.small{height:31px;padding:0 10px;font-size:11px}
.main{width:min(1480px,calc(100% - 40px));margin:0 auto;padding:24px 0 44px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}
.page-head h1{margin:0 0 7px;font-size:28px;letter-spacing:-.03em}.page-head p{margin:0;color:var(--muted);font-size:13px}
.head-actions{display:flex;gap:8px}
.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.summary{min-height:112px;padding:17px 18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.summary span,.summary small{display:block;color:var(--muted)}.summary span{font-size:11px}.summary b{display:block;margin:8px 0 4px;font-size:25px;letter-spacing:-.03em}.summary small{font-size:10px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.65fr);gap:14px;margin-bottom:14px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(31,43,70,.02);overflow:hidden}
.card-head{min-height:65px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line-2)}
.card-head h2{margin:0 0 4px;font-size:15px}.card-head p{margin:0;color:var(--muted);font-size:11px}.card-body{padding:18px}
.funnel{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.funnel-item{padding:14px 10px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-2)}.funnel-item b,.funnel-item span{display:block}.funnel-item b{font-size:20px}.funnel-item span{margin-top:4px;color:var(--muted);font-size:10px}
.todo-list{display:grid;gap:8px}.todo{padding:11px 12px;border:1px solid var(--line-2);border-radius:9px;display:grid;grid-template-columns:1fr auto;gap:5px}.todo b{font-size:12px}.todo span{color:var(--muted);font-size:10px}.todo time{grid-row:1/3;grid-column:2;align-self:center;color:var(--amber);font-size:10px}
.table-card{overflow:hidden}.table-toolbar{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-2)}
.segments{display:flex;gap:4px;padding:3px;background:#f2f4f7;border-radius:9px}.segments button{height:29px;padding:0 11px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:11px}.segments button.active{background:#fff;color:var(--brand);box-shadow:0 1px 4px rgba(31,43,70,.08)}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:1120px}th,td{padding:13px 15px;text-align:left;border-bottom:1px solid var(--line-2);font-size:11px}th{color:var(--muted);font-weight:650;background:#fbfcfd}td strong,td small{display:block}td strong{font-size:12px}td small{margin-top:3px;color:var(--muted)}tbody tr:hover{background:#fbfcff}
.status{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:7px;background:var(--brand-soft);color:var(--brand);font-size:10px;font-weight:700}.status.won{background:var(--teal-soft);color:var(--teal)}.status.warn{background:var(--amber-soft);color:var(--amber)}
.intent-badge{display:inline-flex!important;align-items:center;min-height:21px;padding:0 7px;border-radius:999px;font-size:9px!important;font-weight:750;vertical-align:middle}.intent-badge.high{background:#ffe8e8;color:#a52f2f}.intent-badge.medium{background:var(--amber-soft);color:var(--amber)}.intent-badge.low{background:#eef0f3;color:#687386}
.journey{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px;overflow:auto}
.journey-track{min-width:1120px;display:grid;grid-template-columns:repeat(11,minmax(88px,1fr));position:relative}.journey-track:before{content:"";position:absolute;left:4%;right:4%;top:15px;height:2px;background:#dde2e9}
.journey-step{position:relative;z-index:1;border:0;background:transparent;text-align:center;color:var(--muted);padding:0 3px}.journey-step i{width:31px;height:31px;margin:0 auto 7px;border-radius:50%;display:grid;place-items:center;background:#eef0f3;border:2px solid #d7dce4;color:#778194;font-style:normal;font-size:10px}.journey-step b,.journey-step small{display:block}.journey-step b{color:var(--ink);font-size:10px}.journey-step small{margin-top:3px;font-size:9px}.journey-step.done i{background:var(--teal);border-color:var(--teal);color:#fff}.journey-step.current i{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 0 0 5px var(--brand-soft)}.journey-step.locked{opacity:.56}
.stage{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.stage-head{padding:19px 22px;border-bottom:1px solid var(--line)}.stage-kicker{color:var(--brand);font-size:10px;font-weight:800;letter-spacing:.08em}.stage-head h2{margin:6px 0;font-size:22px}.stage-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}.stage-body{padding:22px;min-height:420px}.stage-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fbfcfd}.stage-foot>div{display:flex;gap:8px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:6px;color:#4e596e;font-size:11px}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;border:1px solid #ccd4df;border-radius:9px;background:#fff;color:var(--ink);padding:10px 11px;outline:none;font-size:12px}.field input,.field select{height:40px}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.field small{color:var(--muted)}
.section-label{margin:22px 0 10px;font-size:12px;font-weight:750}.inline-note{padding:12px 14px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-2);color:var(--muted);font-size:11px;line-height:1.6}.inline-note.warn{background:var(--amber-soft);border-color:#f0d6a8;color:#7b4a10}
.upload-box{min-height:92px;border:1px dashed #aeb8c7;border-radius:10px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:11px;background:#fbfcfd}.upload-box input{display:none}.upload-box b{display:block;color:var(--ink);margin-bottom:4px}.upload-box.has-file{border-style:solid;border-color:#a7cfc8;background:var(--teal-soft)}
.attachment-block{grid-column:1/-1;margin-top:16px;border:1px solid var(--line);border-radius:10px;background:#fbfcfd;overflow:hidden}.attachment-head{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line-2)}.attachment-head b,.attachment-head span{display:block}.attachment-head b{font-size:12px}.attachment-head span{margin-top:3px;color:var(--muted);font-size:9px}.attachment-head input{display:none}.attachment-list{padding:8px 14px}.attachment-list>p{margin:6px 0;color:var(--muted);font-size:10px}.attachment-item{min-height:38px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;border-bottom:1px solid var(--line-2);font-size:10px}.attachment-item:last-child{border-bottom:0}.attachment-item a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--brand);font-weight:650}.attachment-item span{color:var(--muted)}.attachment-item button{border:0;background:transparent;color:var(--red);font-size:10px}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.check{min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:9px;font-size:11px}.check input{width:17px;height:17px;accent-color:var(--teal)}.check.done{background:var(--teal-soft);border-color:#b5ddd6}
.coordination-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px}.coordination-intro h3{margin:0 0 5px;font-size:17px}.coordination-intro p{max-width:68ch;margin:0;color:var(--muted);font-size:11px;line-height:1.6}.coordination-intro>span{flex:0 0 auto;padding:6px 9px;border-radius:7px;background:var(--surface-2);color:var(--muted);font-size:9px}.coordination-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden}.coordination-tabs button{min-height:46px;padding:6px 10px;border:0;border-right:1px solid var(--line);background:#fff;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:8px}.coordination-tabs button:last-child{border-right:0}.coordination-tabs button b{color:var(--ink);font-size:11px}.coordination-tabs button span{font-size:9px}.coordination-tabs button.active{background:var(--brand-soft);color:var(--brand)}.coordination-tabs button.active b{color:var(--brand)}.coordination-tabs button:focus-visible,.coordination-fold:focus-visible,.coordination-attachment-toggle:focus-visible,.coordination-other-toggle:focus-visible,.handoff-summary:focus-visible,.handoff-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.coordination-panel{padding-top:16px}.coordination-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.coordination-panel-head>div>b,.coordination-panel-head>div>small{display:block}.coordination-panel-head>div>b{font-size:15px}.coordination-panel-head>div>small{margin-top:3px;color:var(--muted);font-size:9px}.coordination-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(160px,.8fr);gap:10px;padding:11px 12px;border-radius:10px;background:var(--surface-2)}.coordination-meta .field{gap:4px;font-size:9px}.coordination-meta .field input,.coordination-meta .field select{height:36px;padding:7px 9px;font-size:11px}.coordination-fold,.coordination-attachment-toggle,.coordination-other-toggle{border:0;background:transparent;color:var(--ink);text-align:left}.coordination-fold{min-height:36px;margin-top:13px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;font-size:9px}.coordination-fold b{color:var(--muted);font-size:9px}.coordination-fold i,.coordination-attachment-toggle i,.coordination-other-toggle i{color:var(--brand);font-style:normal;font-size:9px}.coordination-note{display:grid;gap:6px;margin-top:10px;color:#4e596e;font-size:10px}.coordination-note textarea{min-height:72px;padding:9px 10px;border:1px solid #ccd4df;border-radius:9px;resize:vertical;font-size:11px}.coordination-note textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.handoff-list{margin-top:14px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.handoff-item{background:#fff;border-bottom:1px solid var(--line-2)}.handoff-item:last-child{border-bottom:0}.handoff-item.confirmed{background:#fbfffe}.handoff-item.rectify{background:#fffdf8}.handoff-item.na{opacity:.72}.handoff-item>header{min-height:48px;padding:6px 9px;display:grid;grid-template-columns:26px minmax(0,1fr) 108px 48px;gap:7px;align-items:center}.handoff-item>header>i{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;background:#eef0f3;color:var(--muted);font-style:normal;font-size:9px}.handoff-item.confirmed>header>i{background:var(--teal);color:#fff}.handoff-item.rectify>header>i{background:var(--amber);color:#fff}.handoff-summary{min-width:0;padding:4px 0;border:0;background:transparent;text-align:left}.handoff-summary b,.handoff-summary span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.handoff-summary b{font-size:11px}.handoff-summary span{margin-top:2px;color:var(--muted);font-size:9px}.handoff-item>header select{height:34px;border:1px solid #ccd4df;border-radius:8px;background:#fff;padding:0 7px;font-size:10px}.handoff-toggle{min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:var(--brand);font-size:10px}.handoff-detail{padding:0 9px 10px 42px}.handoff-note{display:grid;gap:5px;color:#4e596e;font-size:9px}.handoff-note textarea{min-height:66px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;color:var(--ink);resize:vertical;font-size:10px}.handoff-note textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.handoff-detail>footer{min-height:44px;margin-top:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.handoff-detail>footer input{display:none}.handoff-remove{min-height:44px;margin-left:auto;padding:0 8px;border:0;background:transparent;color:var(--red);font-size:10px}.handoff-photos{display:flex;flex-wrap:wrap;gap:8px}.handoff-photos>div{position:relative;width:48px;height:36px}.handoff-photos img{width:48px;height:36px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}.handoff-photos button{position:absolute;right:-8px;top:-8px;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:var(--red);color:#fff;font-size:0}.handoff-photos button:before{content:"";position:absolute;inset:-10px}.handoff-photos button:after{content:"×";font-size:12px}.handoff-add{margin-top:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.handoff-add input{height:44px;border:1px solid #ccd4df;border-radius:9px;padding:0 11px}.coordination-attachment-toggle{width:100%;min-height:44px;margin-top:10px;padding:0 10px;border-top:1px solid var(--line-2);display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;font-size:10px}.coordination-attachment-toggle b{color:var(--muted);font-size:9px}.coordination-panel>.attachment-block{margin-top:0}.coordination-other{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}.coordination-other-toggle{width:100%;min-height:50px;padding:0 10px;border-radius:9px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px}.coordination-other-toggle:hover{background:var(--surface-2)}.coordination-other-toggle b,.coordination-other-toggle span{display:block}.coordination-other-toggle b{font-size:12px}.coordination-other-toggle span{margin-top:3px;color:var(--muted);font-size:9px}.coordination-other-toggle small{color:var(--muted);font-size:9px}.coordination-panel-other{padding:8px 10px 0}.coordination-panel-other .coordination-panel-head{display:none}
.signature-page{margin-top:18px;padding:22px;border:1px solid var(--line);border-radius:13px;background:#fbfcff}.signature-page>header{display:flex;justify-content:space-between;gap:18px;margin-bottom:16px}.signature-page>header span{color:var(--brand);font-size:10px;font-weight:800;letter-spacing:.08em}.signature-page>header h3{margin:5px 0 6px;font-size:20px}.signature-page>header p{margin:0;color:var(--muted);font-size:11px}.signature-version{text-align:right;color:var(--muted);font-size:10px;line-height:1.7}.signature-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:14px;background:var(--line);border:1px solid var(--line);border-radius:9px;overflow:hidden}.signature-summary>div{padding:11px;background:#fff}.signature-summary span,.signature-summary b{display:block}.signature-summary span{color:var(--muted);font-size:9px}.signature-summary b{margin-top:4px;font-size:11px}.signature-canvas-wrap{height:220px;position:relative;border:1px dashed #9aa6b7;border-radius:11px;background:#fff;overflow:hidden}.signature-canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.signature-canvas-wrap>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#c1c7d0;font-size:14px;pointer-events:none}.signature-canvas-wrap:has(canvas[data-dirty="1"])>span{display:none}.signature-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.signature-history{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.signature-history h4{margin:0 0 10px;font-size:12px}.signature-history article{min-height:72px;padding:8px 0;border-bottom:1px solid var(--line-2);display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:center}.signature-history article:last-child{border-bottom:0}.signature-history img{width:120px;height:58px;object-fit:contain;border:1px solid var(--line);border-radius:7px;background:#fff}.signature-history b,.signature-history span,.signature-history small{display:block}.signature-history b{font-size:11px}.signature-history span{margin-top:4px;color:var(--muted);font-size:10px}.signature-history small{margin-top:3px;color:var(--teal);font-size:9px}
.stage-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.stage-message{padding:22px;border:1px solid var(--line);border-radius:12px;background:#fbfcff}.stage-message h3{margin:0 0 8px;font-size:18px}.stage-message p{margin:0 0 18px;color:var(--muted);font-size:12px;line-height:1.7}.stage-visual{min-height:220px;border-radius:12px;background-size:cover;background-position:center;position:relative;overflow:hidden}.stage-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(16,27,45,.52))}.stage-visual span{position:absolute;z-index:1;left:18px;bottom:16px;color:#fff;font-size:12px;font-weight:700}
.module-frame{height:calc(100dvh - 70px);display:flex;flex-direction:column;background:#fff}.module-frame iframe{width:100%;flex:1;border:0;background:#fff}
.module-frame.module-frame-full{height:100dvh}
.delivery-board{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px}.delivery-steps{border:1px solid var(--line);border-radius:11px;overflow:hidden;height:max-content}.delivery-step{width:100%;padding:14px;border:0;border-bottom:1px solid var(--line-2);background:#fff;text-align:left;display:flex;gap:11px}.delivery-step:last-child{border-bottom:0}.delivery-step i{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;background:#eef0f3;color:var(--muted);font-style:normal;font-size:10px}.delivery-step b,.delivery-step span{display:block}.delivery-step b{font-size:11px}.delivery-step span{margin-top:3px;color:var(--muted);font-size:9px}.delivery-step.active{background:var(--brand-soft)}.delivery-step.active i{background:var(--brand);color:#fff}.delivery-step.done i{background:var(--teal);color:#fff}
.delivery-panel{min-width:0;border:1px solid var(--line);border-radius:11px;padding:18px}.delivery-panel h3{margin:0 0 7px;font-size:16px}.delivery-panel>p{margin:0 0 15px;color:var(--muted);font-size:11px;line-height:1.6}.delivery-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.delivery-metrics div{padding:12px;background:var(--surface-2);border-radius:9px}.delivery-metrics span,.delivery-metrics b{display:block}.delivery-metrics span{color:var(--muted);font-size:9px}.delivery-metrics b{margin-top:5px;font-size:15px}
.quote-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:12px}.quote-table{border:1px solid var(--line);border-radius:10px;overflow:auto}.quote-table table{min-width:760px}.quote-table input,.quote-table select{height:31px;border:1px solid #ccd4df;border-radius:7px;padding:0 7px;font-size:10px}.quote-table .qty{width:58px}.quote-table .price{width:88px}.quote-summary{padding:16px;border:1px solid var(--line);border-radius:10px;height:max-content;position:sticky;top:82px}.quote-summary span,.quote-summary b{display:block}.quote-summary>span{color:var(--muted);font-size:10px}.quote-summary>b{margin:7px 0 16px;color:var(--brand);font-size:27px}.quote-summary .field{margin-bottom:10px}.quote-summary .btn{width:100%;margin-top:7px}.quote-empty{padding:34px;text-align:center;color:var(--muted);font-size:11px}
.doc-preview{padding:28px;border:1px solid var(--line);border-radius:10px;background:#fff}.doc-head{display:flex;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:2px solid var(--ink)}.doc-head h2{margin:0 0 6px}.doc-head p{margin:0;color:var(--muted);font-size:11px}.doc-total{text-align:right}.doc-total span,.doc-total b{display:block}.doc-total span{color:var(--muted);font-size:10px}.doc-total b{margin-top:4px;font-size:25px}.doc-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin:16px 0;border-radius:9px;overflow:hidden}.doc-meta div{padding:11px;background:#f8fafc}.doc-meta span,.doc-meta b{display:block}.doc-meta span{color:var(--muted);font-size:9px}.doc-meta b{margin-top:4px;font-size:11px}
.empty{padding:38px;text-align:center;color:var(--muted);font-size:12px}.empty b{display:block;margin-bottom:6px;color:var(--ink);font-size:15px}
.toast{position:fixed;z-index:80;left:50%;bottom:24px;transform:translate(-50%,18px);padding:11px 16px;border-radius:9px;background:#172033;color:#fff;font-size:11px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.modal-mask{position:fixed;inset:0;z-index:60;background:rgba(20,30,55,.42);display:grid;place-items:center;padding:20px}.modal{width:min(620px,100%);max-height:90dvh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(20,30,55,.26)}.modal-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-head h2{margin:0;font-size:17px}.modal-body{padding:20px}.modal-foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}
.modal-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.lead-modal{width:min(760px,100%)}
.top-actions .btn.active{border-color:#b8c6f5;background:var(--brand-soft);color:var(--brand)}
.lead-card{overflow:hidden}.lead-shortcuts{display:flex;align-items:center;gap:4px;padding:10px 14px;border-bottom:1px solid var(--line-2);overflow:auto}.lead-shortcuts button{min-height:32px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:11px;white-space:nowrap}.lead-shortcuts button.active{background:var(--brand-soft);color:var(--brand);font-weight:750}.lead-filters{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(4,minmax(128px,.7fr));gap:9px;padding:13px 14px;background:#fbfcfd;border-bottom:1px solid var(--line-2)}.lead-filters label{min-width:0;display:grid;gap:5px;color:var(--muted);font-size:9px}.lead-filters input,.lead-filters select{width:100%;height:36px;min-width:0;padding:0 10px;border:1px solid #ccd4df;border-radius:8px;background:#fff;color:var(--ink);font-size:11px;outline:none}.lead-filters input:focus,.lead-filters select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.lead-result-meta{min-height:35px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:9px;border-bottom:1px solid var(--line-2)}.lead-table-head,.lead-row{display:grid;grid-template-columns:minmax(160px,1.1fr) minmax(110px,.7fr) minmax(150px,1fr) minmax(130px,.8fr) minmax(150px,.9fr) minmax(270px,1.4fr);gap:12px;align-items:center}.lead-table-head{min-height:36px;padding:0 14px;background:#fbfcfd;color:var(--muted);font-size:9px;font-weight:700}.lead-row{min-height:68px;padding:9px 14px;border-top:1px solid var(--line-2);font-size:11px}.lead-table-head+.lead-row{border-top:0}.lead-row:hover{background:#fbfcff}.lead-row.overdue{box-shadow:inset 3px 0 var(--red)}.lead-row.today{box-shadow:inset 3px 0 var(--amber)}.lead-row>div{min-width:0}.lead-row b,.lead-row strong,.lead-row small,.lead-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lead-row strong{font-size:12px}.lead-row b,.lead-row span{font-size:11px}.lead-row small{margin-top:4px;color:var(--muted);font-size:9px}.lead-statuses{display:flex!important;align-items:center;gap:5px;flex-wrap:wrap}.lead-statuses span{display:inline-flex;align-items:center;min-height:24px;padding:0 7px;border-radius:7px;background:#eef0f3;color:#566174;font-size:9px}.lead-statuses .lead-follow-status{background:var(--brand-soft);color:var(--brand)}.lead-row.overdue .lead-follow-time small{color:var(--red);font-weight:700}.lead-row.today .lead-follow-time small{color:var(--amber);font-weight:700}.lead-actions{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}.lead-actions .btn{height:30px;padding:0 8px;font-size:9px}.lead-empty{grid-column:1/-1}.lead-records{display:grid}.lead-records article{padding:12px 0;display:grid;grid-template-columns:105px minmax(0,1fr);gap:14px;border-bottom:1px solid var(--line-2)}.lead-records article:last-child{border-bottom:0}.lead-records time{color:var(--muted);font-size:10px}.lead-records b{font-size:11px}.lead-records p{margin:5px 0;color:var(--ink);font-size:11px;line-height:1.65;white-space:pre-wrap}.lead-records small{color:var(--muted);font-size:9px}
.auth-page{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#eef2ff 0,transparent 44%),var(--bg)}.auth-card{width:min(460px,100%);padding:38px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.auth-mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:22px;background:var(--ink);color:#fff;font-weight:800}.auth-card h1{margin:7px 0 9px;font-size:25px}.auth-card>p{color:var(--muted);font-size:12px;line-height:1.7}.auth-form{display:grid;gap:13px;margin-top:22px}.auth-form label{display:grid;gap:6px;color:#4e596e;font-size:11px}.auth-form input{height:42px;padding:0 12px;border:1px solid #ccd4df;border-radius:9px}.auth-form .btn{height:42px;margin-top:5px}.organization-list{display:grid;gap:8px}.organization-list>div{padding:11px 12px;border:1px solid var(--line);border-radius:9px}.organization-list strong,.organization-list span{display:block}.organization-list span{margin-top:3px;color:var(--muted);font-size:10px}
@media(max-width:1200px){.topbar{gap:12px}.brand{min-width:180px}.brand-copy span,.top-project-secondary,.top-project-id{display:none}.top-actions{gap:6px}.top-actions .btn{padding:0 10px;font-size:11px}}
@media(max-width:1050px){.module-topbar .brand-copy span,.module-context span{display:none}.summary-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.delivery-board{grid-template-columns:1fr}.delivery-steps{display:grid;grid-template-columns:repeat(3,1fr)}.delivery-step{border-right:1px solid var(--line-2)}.quote-layout{grid-template-columns:1fr}.quote-summary{position:static}}
@media(max-width:1100px){.lead-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.lead-search{grid-column:span 2}.lead-table{overflow:auto}.lead-table-head,.lead-row{min-width:1050px}}
@media(max-width:760px){.topbar{padding:0 10px;gap:8px}.brand{min-width:0}.brand-copy,.top-context{display:none}.top-project{padding-left:0;border-left:0;gap:7px}.top-project-avatar{width:30px;height:30px}.top-project-meta,.top-project-stage,.top-project-title .intent-badge,.top-project-metrics{display:none!important}.top-project-title b{font-size:12px}.top-actions{min-width:0;margin-left:auto;gap:5px}.top-actions .hide-mobile{display:none}.top-actions .btn{height:36px;padding:0 8px;font-size:10px}.module-topbar{gap:8px}.module-topbar .brand-copy,.module-context{display:none}.module-task{flex:0 0 auto;padding-left:0;border-left:0;gap:8px}.module-back,.module-topbar .top-actions .btn{height:44px;padding:0 12px}.back-full{display:none}.back-short{display:inline}.main{width:calc(100% - 20px);padding-top:14px}.page-head{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:repeat(2,1fr)}.summary-grid .summary:last-child{grid-column:1/-1}.funnel{grid-template-columns:repeat(2,1fr)}.form-grid,.check-grid,.stage-hero{grid-template-columns:1fr}.field.wide{grid-column:auto}.stage-body{padding:15px}.stage-foot{align-items:stretch;flex-direction:column}.stage-foot>div{display:grid;grid-template-columns:1fr 1fr}.stage-foot .btn{width:100%}.delivery-steps{grid-template-columns:1fr}.delivery-metrics{grid-template-columns:repeat(2,1fr)}.doc-meta{grid-template-columns:1fr}.doc-head{flex-direction:column}.doc-total{text-align:left}.coordination-intro>span{display:none}.coordination-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.coordination-tabs button{min-height:44px}.coordination-tabs button:nth-child(2){border-right:0}.coordination-tabs button:nth-child(-n+2){border-bottom:1px solid var(--line)}.coordination-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.coordination-fold{grid-column:1/-1;margin-top:0;min-height:44px}.handoff-item>header{grid-template-columns:26px minmax(0,1fr) 92px 44px;gap:6px}.handoff-detail{padding-left:9px}.coordination-other-toggle{grid-template-columns:minmax(0,1fr) auto}.coordination-other-toggle small{grid-column:1/-1}.coordination-other-toggle i{grid-column:2;grid-row:1}.coordination-panel-other{padding-left:0;padding-right:0}.signature-page{padding:15px}.signature-page>header{display:block}.signature-version{text-align:left;margin-top:8px}.signature-summary{grid-template-columns:repeat(2,1fr)}.signature-canvas-wrap{height:190px}.signature-history article{grid-template-columns:90px minmax(0,1fr)}.signature-history img{width:90px}}
@media(max-width:760px){.lead-page .page-head{flex-direction:row;align-items:center}.lead-page .page-head h1{font-size:23px}.lead-page .page-head p{display:none}.lead-page .page-head>.btn{min-height:44px}.lead-shortcuts{padding:8px 10px}.lead-shortcuts button{min-height:44px}.lead-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}.lead-search{grid-column:1/-1}.lead-filters input,.lead-filters select{height:44px}.lead-result-meta{padding:0 10px}.lead-result-meta span:last-child{display:none}.lead-table{overflow:visible}.lead-table-head{display:none}.lead-row{min-width:0;min-height:0;padding:13px 10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px}.lead-person,.lead-actions{grid-column:1/-1}.lead-row small{white-space:normal}.lead-actions{justify-content:flex-start}.lead-actions .btn{min-height:44px;padding:0 10px;font-size:10px;flex:1 1 auto}.lead-records article{grid-template-columns:1fr;gap:5px}.modal-mask{padding:10px}.modal-head,.modal-body{padding:15px}.modal-foot{padding:12px 15px}.modal-foot .btn{min-height:44px}}
.handoff-item>header{height:48px;box-sizing:border-box}
.profile-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-asset-panel{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfd}.profile-asset-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.profile-asset-panel h3{margin:0;font-size:13px}.profile-asset-panel p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.5}.profile-asset-panel>header input{display:none}.profile-asset-legacy{margin:-2px 0 10px;padding:8px 9px;border-radius:7px;background:var(--surface-2);color:var(--muted);font-size:9px}.profile-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.profile-asset-item{min-width:0;overflow:hidden;border:1px solid var(--line-2);border-radius:8px;background:#fff}.profile-asset-item>a{height:104px;display:grid;place-items:center;background:#eef1f5}.profile-asset-item img{width:100%;height:100%;object-fit:cover}.profile-asset-file{color:var(--muted);font-size:14px;font-weight:800}.profile-asset-item>div{padding:8px 9px 4px}.profile-asset-item b,.profile-asset-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-asset-item b{font-size:10px}.profile-asset-item span{margin-top:3px;color:var(--muted);font-size:8px}.profile-asset-item>button{width:100%;min-height:44px;border:0;background:transparent;color:var(--red);font-size:9px}.profile-asset-empty{min-height:104px;padding:18px;display:grid;place-content:center;text-align:center;border:1px dashed var(--line);border-radius:8px;color:var(--muted)}.profile-asset-empty b,.profile-asset-empty span{display:block}.profile-asset-empty b{color:var(--ink);font-size:11px}.profile-asset-empty span{margin-top:4px;font-size:9px}
.profile-space-field{display:grid;gap:5px;margin-top:9px}.profile-space-field>span{margin:0;color:#4e596e;font-size:9px;font-weight:700}.profile-space-field input{width:100%;height:38px;min-width:0;padding:0 9px;border:1px solid #ccd4df;border-radius:7px;background:#fff;color:var(--ink);font:inherit}.profile-space-field input:focus{outline:2px solid rgba(45,91,209,.18);border-color:var(--blue)}.profile-space-field small{color:var(--muted);font-size:8px;line-height:1.45}.profile-space-field.is-missing input{border-color:#c96c57;background:#fff9f7}.profile-space-field.is-missing small{color:#a54935}.profile-asset-item.needs-space-name{border-color:#d8a091}
@media(max-width:760px){.coordination-meta .field input,.coordination-meta .field select,.handoff-item>header select{height:44px}.handoff-item>header{padding-top:2px;padding-bottom:2px}}
@media(max-width:760px){.profile-assets{grid-template-columns:1fr}.profile-asset-panel>header{align-items:flex-start}.profile-asset-panel>header .btn{min-height:44px}.profile-asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.profile-asset-grid{grid-template-columns:1fr}.profile-space-field input{height:44px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{body{background:#fff}.topbar,.journey,.customer-head,.stage-head,.stage-foot,.quote-summary,.no-print{display:none!important}.main{width:100%;padding:0}.stage,.card{border:0;box-shadow:none}.stage-body{padding:0}.doc-preview{border:0;padding:0}}
