:root{--ink:#1C2733;--muted:#67707B;--green:#1E4E8C;--line:#e3e9f0;--bg:#F4F7FB}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);border-radius:8px;padding:10px 16px}button:hover{background:#EEF4FB}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{border:1px solid #d5dde8;border-radius:8px;background:white;padding:11px 13px;width:100%;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #a9c4e4;outline-offset:2px}textarea{min-height:80px;resize:vertical}h1,h2,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;margin-bottom:10px}h2{font-size:17px;margin-bottom:0}small{font-size:12px}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:#16395F}.wide{width:100%;margin:8px 0 26px;padding:14px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;color:#67707B;font-weight:700;margin-bottom:12px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:24px}.brand>span{font-size:20px;letter-spacing:-.7px}.brand b{font-size:9px;background:#E8F0F8;color:var(--green);padding:4px 5px;border-radius:4px;letter-spacing:0}.field{display:block;margin-bottom:18px}.field>span{display:block;margin-bottom:8px;font-size:12px;font-weight:600}.error,.notice{padding:12px 16px;border-radius:8px;line-height:1.7}.error{color:#ad3f35;background:#fff0ee}.notice{color:#1E4E8C;background:#E8F0F8}.loading{padding:25vh 0;text-align:center}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:#16395F;color:#eef4fb;padding:65px 12%;position:relative;overflow:hidden}.login-story .eyebrow{margin-top:120px;color:#a9bed6}.login-story h1{font-size:56px;line-height:1.4}.login-story p{color:#b8c9be;line-height:2}.login-story small{position:absolute;bottom:45px;color:#a9bed6}.story-lines{width:350px;height:350px;right:-80px;bottom:-80px}.story-lines,.story-lines i{position:absolute;border:1px solid #4b5f78;border-radius:50%}.story-lines i{inset:35px}.story-lines i:nth-child(2){inset:70px}.story-lines i:nth-child(3){inset:105px}.login-panel{display:grid;place-items:center;background:#fafbfd;padding:40px}.login-panel>div{width:100%;max-width:360px}.login-panel h2{font-size:27px;margin-bottom:14px}.login-panel form{margin-top:36px}.workspace{display:flex;min-height:100vh}.sidebar{width:242px;position:fixed;inset:0 auto 0 0;padding:28px 20px 20px;border-right:1px solid var(--line);background:#fff;display:flex;flex-direction:column;overflow-y:auto}.sidebar .brand{margin:0 12px 34px}.tenant-card{display:flex;gap:10px;align-items:center;background:#F4F7FB;border:1px solid var(--line);padding:13px 10px;border-radius:9px}.tenant-avatar{width:33px;height:33px;display:grid;place-items:center;background:#dcece2;border-radius:8px;color:#347859;font-weight:700;flex-shrink:0}.identity strong,.tenant-card strong{font-size:12px}.identity small,.tenant-card small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.dot{width:6px;height:6px;border-radius:50%;background:#4a86c8;margin-left:auto}.nav-label{color:#a4ada7;font-size:10px;margin:30px 12px 12px;letter-spacing:2px}nav button{width:100%;display:flex;gap:12px;border:0;text-align:left;margin-bottom:7px;color:#73817a}nav button span{font-size:18px;width:22px}nav button.selected{background:#e9f3ed;color:var(--green);font-weight:600}.sidebar-bottom{margin-top:auto}.agent-note{background:#f4f7fb;border:1px solid #e5eadc;padding:17px;border-radius:9px;margin-bottom:23px;color:#6b846b}.agent-note strong{display:block;margin:7px 0;font-size:12px}.agent-note small{line-height:1.8;font-size:10px}.identity{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:20px}.identity button{margin-left:auto;border:0;padding:8px}.main{margin-left:242px;width:calc(100% - 242px)}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 40px;font-size:12px}.topbar .muted{margin:0 12px}.connection{display:flex;gap:8px;align-items:center;color:#67707B;font-size:10px}.connection i{width:5px;height:5px;background:#4a86c8;border-radius:50%}.content{padding:36px 40px 20px;max-width:1600px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.page-heading p:last-child{margin-bottom:0;font-size:12px}.actions{display:flex;gap:10px;justify-content:flex-end}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}.stat{background:#fff;border:1px solid var(--line);border-radius:11px;padding:23px}.stat>div{color:#67707B;font-size:12px;display:flex;align-items:center;justify-content:space-between}.stat span{color:#6e9b83;background:#f0f6f1;font-size:18px;padding:5px 9px;border-radius:7px}.stat>strong{display:block;font-size:29px;font-weight:600;margin:15px 0 12px;letter-spacing:-1px}.stat small{color:#a1aaa4;font-size:10px}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;margin-bottom:24px;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;gap:16px}.panel-heading h2{display:flex;align-items:center;gap:10px}.text-button{border:0;color:var(--green);font-size:11px;padding:0}.overview-grid{display:grid;grid-template-columns:1.9fr 1fr;gap:24px}.agent-promo{background:#e7efe2;border:1px solid #dbe5d5;border-radius:11px;padding:26px;margin-bottom:24px;position:relative}.agent-promo>span{position:absolute;right:24px;top:30px;font-size:40px;color:#839b73}.agent-promo h2{font-size:25px;line-height:1.5;margin:22px 0 16px}.agent-promo p:not(.eyebrow){color:#809076;font-size:11px;line-height:1.9}.agent-promo button{background:transparent;border-color:#bacbb2;margin-top:10px;font-size:11px}.project-list{padding:0 24px 12px}.project-list>div{padding:19px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px}.project-list>div>div{flex:1 1}.project-list small{display:block;color:var(--muted);margin-top:7px}.project-list strong{font-size:12px}.project-icon{background:#f2f5fa;padding:12px;border-radius:8px;color:#769383}.empty{padding:58px 24px;color:#95a198;text-align:center}.empty>span{font-size:33px;color:#bbcec1}.empty p{font-size:12px;margin:16px 0}.badge{display:inline-block;font-size:10px;padding:5px 9px;border-radius:5px;white-space:nowrap;background:#eef1ed;color:#7a897e}.active,.completed,.succeeded{background:#eaf5ec;color:#52846b}.planning,.queued,.running{background:#f8f2e2;color:#a18d51}.failed,.paused{background:#faece8;color:#b58271}.workflow{padding:24px}.workflow h2{font-size:14px}.workflow>div{display:grid;grid-template-columns:repeat(4,1fr);margin-top:24px}.workflow span{color:#809083;font-size:12px}.workflow b{font-weight:400;color:#b9caba;padding-right:12px;font-size:20px}.search{width:230px;font-size:12px}.count{background:#f1f5fa;color:#7b8d7c;padding:3px 8px;border-radius:4px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{background:#fafbfd;color:#8c9990;font-weight:400;padding:15px 24px}td{padding:19px 24px;border-top:1px solid #f0f3ee;max-width:260px;overflow-wrap:anywhere}.row-actions{white-space:nowrap}.row-actions button{border:0;padding:5px 8px;font-size:11px;color:var(--green)}.row-actions button.danger{color:#b68177}.list-note{color:#9ba69e;padding:10px 24px;font-size:10px}.agent-form{padding:26px}.agent-form p{margin-top:14px;font-size:12px}.agent-form form{display:flex;gap:14px;margin-top:22px}.agent-form select{max-width:380px}.job-card{padding:20px 24px;border-top:1px solid var(--line)}.job-card>div{display:flex;gap:14px;align-items:center}.job-card p{margin:16px 0;line-height:1.8;font-size:12px}.job-card small{color:var(--muted);font-size:10px}footer{display:flex;justify-content:space-between;color:#a4afa5;font-size:10px;margin-top:30px}.modal-overlay{position:fixed;inset:0;background:#14362955;display:grid;place-items:center;padding:20px;z-index:10}.modal{width:460px;max-width:100%;background:white;border-radius:12px;max-height:90vh;overflow:auto;box-shadow:0 20px 80px #14362930}.modal form{padding:0 24px 24px}.modal .panel-heading button{border:0;font-size:20px}@media (max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.overview-grid{grid-template-columns:1fr}.content{padding:28px 24px}}@media (max-width:700px){.sidebar{width:76px;padding:24px 8px}.sidebar .brand{margin:0 auto 30px}.nav-label,.sidebar .brand span,.sidebar-bottom,.tenant-card{display:none}nav button{font-size:0;justify-content:center;padding:12px 8px}nav button span{font-size:22px}.main{margin-left:76px;width:calc(100% - 76px)}.topbar{padding:0 20px}.connection{display:none}.stats{gap:10px}.stat{padding:15px}.stat>strong{font-size:21px}.stat small{line-height:1.7}.content{padding:25px 16px}.page-heading{align-items:flex-start;gap:15px}h1{font-size:23px}.actions{flex-wrap:wrap}.workflow>div{grid-template-columns:1fr 1fr;gap:20px}.login-shell{grid-template-columns:1fr}.login-story{display:none}.panel-heading{padding:18px;flex-wrap:wrap}.agent-form form{flex-direction:column}}.pager{display:flex;align-items:center;gap:8px;justify-content:flex-end}.pager button:disabled{opacity:.45;cursor:not-allowed}.inset{padding:0 24px 20px}.notice{color:var(--green)}.progress-line{display:flex;align-items:center;gap:16px}.progress{flex:1 1;height:8px;background:#eef1ef;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:var(--green)}.inline-form{gap:10px;margin-bottom:10px}.inline-form label{font-size:12px}.stack-form{display:flex;flex-direction:column;gap:10px}.checklist{margin:8px 0;padding-left:18px;font-size:13px}@media (max-height:820px){.sidebar .agent-note{display:none}}.password-field{position:relative;display:block}.password-field input{padding-right:44px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.password-toggle:hover{color:var(--ink)}.password-toggle:focus-visible{outline:2px solid #a9c4e4;outline-offset:1px}.budget-filters{flex-wrap:wrap;align-items:center;margin-bottom:12px}.budget-filters .checkbox{display:inline-flex;gap:6px;align-items:center}.budget-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.budget-meta div{display:flex;flex-direction:column;gap:2px}.budget-section summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:4px 0}.budget-section table tr.muted td{opacity:.55}.steps{display:flex;gap:8px;list-style:none;padding:0;margin:8px 0}.steps button{display:inline-flex;gap:8px;align-items:center}.steps button b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e6efe9}.steps button.selected{border-color:#1E4E8C;color:#1E4E8C;font-weight:600}.editable-hint{font-size:13px}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.editor-side{position:sticky;top:12px;display:flex;flex-direction:column;gap:12px}.editor-main .panel,.editor-side .panel{margin:0 0 12px}.side-form{display:flex;flex-direction:column;gap:8px}.side-form .field input,.side-form .field select{width:100%}.side-form .check{display:flex;gap:6px;align-items:center;font-size:14px}.total-card strong{display:block;font-size:28px;margin:4px 0 8px;color:#1E4E8C}.total-card dl{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0 0 6px}.total-card dd{margin:0;text-align:right}.picker-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px}.chapter-list{display:flex;flex-direction:column;gap:4px}.chapter-list>button{display:flex;justify-content:space-between;text-align:left}.chapter-list>button.selected{border-color:#1E4E8C;background:#eef6f1;font-weight:600}.add-section{gap:4px;margin-top:8px}.add-section,.item-picks{display:flex;flex-direction:column}.item-picks{list-style:none;padding:0;margin:0;gap:6px}.item-picks li{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid #e3e9f0;border-radius:8px}.item-picks li.picked{border-color:#1E4E8C;background:#EEF4FB}.item-picks label{display:flex;gap:8px;align-items:center;flex:1 1;cursor:pointer}.item-picks label input:not([type]),.item-picks label input[type=text]{flex:1 1}.budget-section td input{width:100%;min-width:60px}@media (max-width:1100px){.editor-grid,.picker-grid{grid-template-columns:1fr}.editor-side{position:static}}.budget-editor input[type=checkbox],.budget-filters input[type=checkbox],.budget-section input[type=checkbox]{width:auto;padding:0;flex:none}.budget-editor .panel{padding:18px 20px;overflow:visible}.budget-editor .panel-heading{padding:0 0 12px}.chapter-list>button{width:100%;padding:9px 12px}.chapter-list>button span{width:auto;font-size:inherit}.budget-section td input,.item-picks input:not([type=checkbox]){padding:6px 8px}.stage-steps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0 20px;margin:12px 0}.stage-steps li{display:flex;flex-direction:column;padding:6px 10px;border-radius:8px;border:1px solid #e3e1da;min-width:72px}.stage-steps li small{color:#8a877f;font-size:11px}.stage-steps li.done{background:#f1f5ef;border-color:#cfdcc8}.stage-steps li.current{background:#1C2733;color:#fff;border-color:#1C2733}.stage-steps li.current small{color:#cfd8d2}.stage-steps li.lost{background:#8a2c2c;border-color:#8a2c2c}.flow-board{display:flex;gap:0;list-style:none;margin:12px 0 0;padding:12px 16px 20px;overflow-x:auto;-webkit-overflow-scrolling:touch}.flow-col{position:relative;flex:0 0 140px;min-width:132px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px 8px 12px;margin-right:10px}.flow-col.focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(30,78,140,.15)}.flow-col.empty{opacity:.72}.flow-col-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}.flow-col-head b{font-size:13px;white-space:nowrap}.flow-col-head .count{margin-left:auto;background:#e8eef5;border-radius:999px;padding:0 7px;font-size:11px;color:var(--muted)}.flow-idx{width:20px;height:20px;border-radius:50%;background:#1C2733;color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.flow-chips{list-style:none;margin:0;padding:0;gap:6px;min-height:48px}.flow-chip,.flow-chips{display:flex;flex-direction:column}.flow-chip{width:100%;text-align:left;padding:8px 9px;border-radius:8px;border:1px solid #d8dee6;background:#fff;gap:2px}.flow-chip strong{font-size:12px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-chip small{color:var(--muted);font-size:10px}.flow-chip.selected,.flow-chip[aria-pressed=true]{background:#1C2733;color:#fff;border-color:#1C2733}.flow-chip.selected small,.flow-chip[aria-pressed=true] small{color:#c5d0db}.flow-empty{font-size:12px;padding:8px 4px}.flow-arrow{display:none}.flow-detail{margin:16px 16px 8px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}.flow-detail-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px}.flow-detail-head h3{margin:0;font-size:16px}.flow-mini{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0 0 12px}.flow-mini li{padding:4px 10px;border-radius:999px;border:1px solid #e3e1da;font-size:12px;color:#8a877f;background:#f4f4f2}.flow-mini li.done{background:#e8f0e4;border-color:#cfdcc8;color:#3d5a34}.flow-mini li.current{background:#1C2733;border-color:#1C2733;color:#fff}.flow-mini li.future{opacity:.55}.flow-mini li.lost{background:#8a2c2c;border-color:#8a2c2c;color:#fff}@media (max-width:700px){.flow-board{flex-direction:column;padding:8px 12px 16px;overflow-x:visible}.flow-col{flex:none;width:100%;min-width:0;margin-right:0;margin-bottom:8px}.flow-chips{flex-direction:row;flex-wrap:wrap}.flow-chip{width:auto;max-width:100%;min-width:42%}.flow-arrow{display:none}}.inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0 20px 12px}.inline-form label{display:flex;gap:6px;align-items:center}.inline-form input,.inline-form select{width:auto}.inline-form input[type=number]{width:80px}.role-notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 16px;padding:0 20px;font-size:13px;color:#6b685f}.role-notes b{color:#1C2733;margin-right:6px}.plan-table input:not([type=checkbox]),.plan-table select{min-width:110px;padding:6px 8px}.plan-table td{padding:8px 6px}.item-picks li{flex-wrap:wrap}.thumbs{margin-top:6px;flex-basis:100%}.thumb{position:relative;display:inline-block}.thumb-open{padding:0;border:1px solid #d5dde8;border-radius:6px;overflow:hidden;background:#fff;cursor:zoom-in;display:block}.thumb-open img{width:64px;height:64px;object-fit:cover;display:block}.thumb-remove{top:-6px;right:-6px;width:20px;height:20px;padding:0;border-radius:50%;background:#b42318;border:none;font-size:13px;line-height:20px;cursor:pointer}.thumb-remove,.thumb-tag{position:absolute;color:#fff}.thumb-tag{left:2px;bottom:2px;background:rgba(31,111,74,.85);font-size:10px;padding:0 4px;border-radius:3px}.thumb-add{width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center;border:1px dashed #1e4e8c;border-radius:6px;color:#1E4E8C;font-size:12px;cursor:pointer;background:#F5F9FD}.thumb-add.busy{opacity:.6;cursor:progress}.quote-preview li .thumbs{margin-bottom:6px}.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.82);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.lightbox img{max-width:92vw;max-height:80vh;object-fit:contain;border-radius:6px;background:#fff}.lightbox-bar{display:flex;gap:10px;align-items:center;color:#fff}:root{--sky:#1E4E8C;--sky-dark:#16395F;--sky-soft:#E8F0F8;--accent:#F26A21;--danger:#C0392B}.role-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;color:#1f2d3d;border-top:3px solid var(--sky);background-image:linear-gradient(180deg,var(--sky-soft),#fff 70%)}.role-hero h2{font-size:22px;margin:4px 0;color:var(--sky-dark)}.role-hero .muted{color:#5f6f80}.role-hero .eyebrow{color:var(--sky)}@media (max-width:640px){.role-hero{flex-direction:column;align-items:stretch}.role-hero .hero-action{width:100%;min-height:44px}.role-hero h2{font-size:20px}}.hero-action{background:var(--accent)!important;border-color:var(--accent)!important;font-size:16px;padding:14px 26px}.todo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:16px 0}.todo-card{text-align:left;display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:12px;border:1px solid var(--line);background:#fff}.todo-card strong{font-size:28px;color:var(--sky)}.todo-card.warn strong{color:var(--accent)}.todo-card.danger strong{color:var(--danger)}.nav-more{opacity:.8}.tone-rigorous .todo-card strong{font-family:ui-monospace,Menlo,monospace}.sla-columns{display:grid;grid-template-columns:repeat(4,minmax(200px,1fr));gap:12px;overflow-x:auto}.sla-column h3{font-size:13px;margin:0 0 8px;display:flex;justify-content:space-between;border-bottom:2px solid var(--sky);padding-bottom:6px}.sla-card{border:1px solid var(--line);border-left:4px solid var(--sky);border-radius:8px;padding:10px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px;background:#fff}.sla-card.late{border-left-color:var(--danger);background:#fff6f5}.sla-card dl{display:grid;grid-template-columns:40px 1fr;gap:2px 8px;margin:0;font-size:12px}.sla-card dt{color:var(--muted)}.sla-card dd{margin:0;font-family:ui-monospace,Menlo,monospace}.over{color:var(--danger)!important;font-weight:700}.ok{color:var(--sky)}.badge.danger{background:#fdecea;color:var(--danger)}.room-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px;background:#fff}.room-card h3{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 10px;color:var(--sky-dark)}.room-card h3 b{color:var(--sky);font-size:16px}.line-cards{display:flex;flex-direction:column;gap:8px}.line-card{border:1px solid #e6edf5;border-radius:10px;padding:10px;background:#fbfdff}.line-main{display:flex;flex-direction:column;gap:4px}.line-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.stepper{display:inline-flex;align-items:center;border:1px solid #cdd9e6;border-radius:8px;overflow:hidden}.stepper button{border:none;border-radius:0;padding:6px 12px;background:var(--sky-soft);color:var(--sky);font-weight:700}.stepper input{width:80px;border:none;text-align:center;border-radius:0;padding:6px}.line-controls .price{display:inline-flex;align-items:center;gap:4px}.line-controls .price input{width:110px;padding:6px 8px}.line-amount{margin-left:auto;font-size:17px;color:var(--sky-dark)}.line-more{margin-top:6px;font-size:12px;color:var(--muted)}.line-more label{display:inline-flex;gap:6px;align-items:center;margin-right:12px}.line-more input{width:160px;padding:5px 8px}button.ghost{border:none;background:transparent;color:var(--muted)}.margin-warn{background:#fff4ec;color:#b4500f;border-radius:8px;padding:10px 12px;font-size:13px}.margin-ok{color:var(--sky);font-size:13px}.quote-actions .link-box{display:flex;flex-direction:column;gap:8px;margin-top:10px}.quote-actions label.inline{display:inline-flex;align-items:center;gap:6px}.quote-actions label.inline select{width:auto}a.button{display:inline-block;border:1px solid var(--line);border-radius:8px;padding:10px 16px;color:var(--ink);text-decoration:none;background:#fff}.recorder-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.shot-preview{max-width:100%;max-height:360px;margin-top:12px;border-radius:8px;border:1px solid var(--line)}.payment-upload-retry{margin:12px 16px;padding:12px;border:1px solid #edc792;border-radius:8px;background:#fff8eb}.payment-upload-retry p{margin:0 0 8px}.payment-evidence-upload{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer}@media (max-width:700px){#record_payment .recorder-grid{grid-template-columns:minmax(0,1fr);gap:0}#record_payment .recorder-grid>div{min-width:0}#record_payment .recorder-grid .actions{flex-wrap:wrap}#record_payment .recorder-grid .actions button{flex:1 1 140px;white-space:normal}#review_payments .panel-heading{align-items:flex-start;flex-wrap:wrap}#review_payments .panel-heading h2{flex-wrap:wrap}#review_payments table.payment-records td{max-width:none}#review_payments table.payment-records td:last-child .actions{flex:1 1;flex-wrap:wrap}#review_payments table.payment-records td:last-child button{flex:1 1;min-height:44px}}.portal{max-width:560px;margin:0 auto;min-height:100vh;background:#F4F7FB;padding-bottom:40px;font-size:15px;color:#1C2733}.portal-hero{background:linear-gradient(160deg,#16395F,#1E4E8C 60%,#3a73b8);color:#fff;padding:36px 24px 90px;position:relative}.portal-hero small{letter-spacing:3px;opacity:.8}.portal-hero h1{font-size:28px;margin:10px 0 6px;letter-spacing:0}.portal-hero p{opacity:.85;margin:0}.portal-ring{position:absolute;right:24px;bottom:-48px;width:120px;height:120px;border-radius:50%;padding:8px;box-shadow:0 10px 30px rgba(22,57,95,.35);--sky:#F26A21}.portal-ring>div{width:100%;height:100%;border-radius:50%;background:#fff;color:#16395F;display:flex;flex-direction:column;align-items:center;justify-content:center}.portal-ring strong{font-size:26px}.portal-ring span{font-size:12px;color:#67707B}.portal-card{background:#fff;margin:16px;border-radius:16px;padding:18px;box-shadow:0 4px 18px rgba(22,57,95,.06)}.portal-card:first-of-type{margin-top:64px}.portal-card h2{font-size:17px;color:#16395F;margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.portal-card h2 small{color:#67707B;font-weight:400;font-size:12px}.portal-timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.portal-timeline li{display:flex;align-items:center;gap:10px;color:#9aa4b0}.portal-timeline i{width:12px;height:12px;border-radius:50%;border:2px solid #c9d4e0}.portal-timeline li.done{color:#1C2733}.portal-timeline li.done i{background:#1E4E8C;border-color:#1E4E8C}.portal-timeline li.current{color:#1E4E8C;font-weight:700}.portal-timeline li.current i{border-color:#F26A21;background:#F26A21;box-shadow:0 0 0 4px #ffe4d4}.portal-timeline small{margin-left:auto;color:#F26A21}.portal-phases{list-style:none;padding:0;margin:14px 0 0}.portal-phases li{display:grid;grid-template-columns:80px 1fr 60px;gap:8px;align-items:center;margin-bottom:6px;font-size:13px}.portal-phases .bar{height:6px;background:#E8F0F8;border-radius:3px;overflow:hidden}.portal-phases .bar b{display:block;height:100%;background:#1E4E8C}.portal-total{background:linear-gradient(120deg,#E8F0F8,#fff);border-radius:12px;padding:14px;display:flex;flex-direction:column;margin-bottom:12px}.portal-total span{font-size:12px;color:#67707B}.portal-total strong{font-size:28px;color:#16395F}.portal-room{border-top:1px solid #edf1f6}.portal-room-head{width:100%;display:flex;justify-content:space-between;border:none;background:none;padding:14px 2px;font-size:15px;color:#1C2733}.portal-room-head b{color:#1E4E8C}.portal-room ul{list-style:none;padding:0 0 10px;margin:0}.portal-room li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed #edf1f6}.portal-room li>div{display:flex;flex-direction:column;gap:2px}.portal-room li small,.portal-room li span{font-size:12px;color:#67707B}.portal-room li b{color:#16395F}.portal-thumb{padding:0;border:none;position:relative;border-radius:8px;overflow:hidden}.portal-thumb img{width:56px;height:56px;object-fit:cover;display:block}.portal-thumb small{position:absolute;right:2px;bottom:2px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;padding:0 4px;border-radius:4px}.portal-fees{display:grid;grid-template-columns:1fr auto;gap:6px;margin:12px 0 0;padding-top:10px;border-top:1px solid #edf1f6}.portal-fees dd{margin:0;text-align:right}.portal-pay{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.portal-pay>div{border:1px solid #e3eaf3;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px}.portal-pay>div.paid{background:#E8F0F8;border-color:#c4d6ec}.portal-pay small{font-size:11px;color:#67707B}.portal-pay span{color:#16395F;font-weight:700}.portal-pay em{font-style:normal;font-size:11px;color:#F26A21}.portal-note{font-size:12px;color:#67707B;margin:10px 0 0}.warranty-card{border-radius:14px;padding:22px;color:#fff;background:radial-gradient(circle at 85% 20%,#3a73b8,#16395F 70%);display:flex;flex-direction:column;gap:6px}.warranty-card strong{font-size:30px;letter-spacing:2px}.warranty-card small{opacity:.8;letter-spacing:2px}.portal-loading{text-align:center;padding-top:40vh;color:#67707B}.portal-error{margin-top:30vh;text-align:center}@media (max-width:420px){.portal-pay{grid-template-columns:1fr}}.advice{border:1px solid #d6e2f0;border-radius:12px;padding:14px 16px;background:#F4F7FB;margin:8px 0 16px}.advice.urgency-high{border-color:#E8B4AD;background:#FDF3F1}.advice-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.advice-points{margin:6px 0 10px 18px;color:#1C2733}.advice-scripts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}.advice-scripts>div{background:#fff;border-radius:10px;padding:10px 12px;border:1px solid #e8f0f8}.advice-scripts p{margin:6px 0;white-space:pre-wrap}.followup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.followup-card{border:1px solid #e8f0f8;border-radius:12px;padding:12px 14px;background:#fff}.followup-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}.timeline-list{list-style:none;padding:0}.timeline-list li{padding:8px 0;border-bottom:1px solid #eef2f6}.messages-layout{display:grid;grid-template-columns:280px 1fr;gap:16px}.thread-list{list-style:none;padding:0;margin:0}.thread-list li button{width:100%;text-align:left;display:grid;gap:2px;background:#fff;border:1px solid #e8f0f8;border-radius:10px;padding:10px;margin-bottom:8px}.thread-list li.active button{border-color:#1E4E8C;background:#E8F0F8}.thread{display:grid;gap:10px;align-content:start}.bubble{max-width:80%;padding:10px 12px;border-radius:12px;background:#F4F7FB}.bubble.staff{justify-self:end;background:#E8F0F8;border:1px solid #c9daee}.bubble p{margin:4px 0;white-space:pre-wrap}.thumbs{display:flex;gap:6px;flex-wrap:wrap}.thumbs img{width:72px;height:72px;object-fit:cover;border-radius:8px;cursor:zoom-in}.summary-box{margin-top:8px;background:#fff;border:1px dashed #9fb9d8;border-radius:10px;padding:8px 10px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin-top:6px;font-size:13px}.portal-chat textarea{width:100%;box-sizing:border-box}.portal-chat .bubble{max-width:88%}@media (max-width:800px){.advice-scripts,.messages-layout{grid-template-columns:1fr}}.avatar{border-radius:50%;object-fit:cover;flex:none;display:inline-flex;align-items:center;justify-content:center}.avatar.placeholder{background:#E8F0F8;color:#1E4E8C;font-weight:600}.profile-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 14px}.birthday-box{margin:14px 0;padding:12px 14px;border-radius:12px;background:#F4F7FB;border:1px solid #e8f0f8}.lunar-picker label{display:inline-flex;align-items:center;gap:6px}.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.member-card{display:flex;gap:10px;padding:12px;border:1px solid #e8f0f8;border-radius:12px;background:#fff}.member-card>div{display:grid;gap:2px}.chat-scroll{display:grid;gap:8px;max-height:56vh;overflow-y:auto;padding-right:4px}.mention,button.link{color:#1E4E8C}button.link{background:none;border:0;padding:0;cursor:pointer;font:inherit}.birthday-reminder ul{margin:0;padding-left:18px}.contract-sign{max-width:860px;margin:0 auto;min-height:100vh;background:#EEF7FD;padding-bottom:40px;color:#1C2733}.contract-hero{background:linear-gradient(160deg,#1E88D8,#3AA8F0 60%,#7CCBF7);color:#fff;padding:28px 22px}.contract-hero small{letter-spacing:2px;opacity:.85}.contract-hero h1{font-size:24px;margin:8px 0 6px}.contract-hero p{margin:2px 0;opacity:.95}.contract-frame{display:block;width:100%;min-height:70vh;border:0;background:#fff}.contract-card{background:#fff;margin:14px;border-radius:14px;padding:16px;box-shadow:0 4px 18px rgba(30,136,216,.1)}.contract-card h2{font-size:16px;color:#1E6FB3;margin:0 0 10px}.contract-canvas{width:100%;height:180px;border:1.5px dashed #7cb9e8;border-radius:10px;background:#fff;touch-action:none;display:block}.contract-row{display:flex;justify-content:space-between;align-items:center;margin:8px 0;color:#5c6b7a;font-size:13px}.contract-agree{display:flex;gap:8px;align-items:flex-start;margin:12px 0;font-size:14px}.contract-primary{display:block;width:100%;text-align:center;padding:14px;border:0;border-radius:12px;background:#1E88D8;color:#fff;font-size:16px;text-decoration:none}.contract-primary:disabled{background:#a9cdea}.contract-note{font-size:12px;color:#7a8794;margin-top:8px}.contract-card code{word-break:break-all;font-size:12px}.contract-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 12px;margin:10px 0}.contract-form label{display:flex;flex-direction:column;font-size:13px;gap:4px}.contract-pay{grid-column:1/-1}.password-form{display:grid;gap:10px;max-width:420px}.password-gate{width:460px;max-width:100%;padding:24px;display:grid;gap:12px}.drawer-backdrop,.menu-toggle{display:none}@media (max-width:700px){body{-webkit-text-size-adjust:100%}.menu-toggle{display:inline-flex;justify-content:center;width:44px;height:44px;margin-right:8px;font-size:22px;border:1px solid var(--line);border-radius:10px}.menu-toggle,.topbar{align-items:center;background:#fff}.topbar{position:sticky;top:0;z-index:30;display:flex;padding:0 12px}.sidebar{width:270px;padding:22px 16px;transform:translateX(-100%);transition:transform .2s ease;z-index:50;box-shadow:none;visibility:hidden}.sidebar.open{transform:none;box-shadow:0 0 40px #0003;visibility:visible}.sidebar .brand{margin:0 8px 22px}.nav-label,.sidebar .brand span,.sidebar-bottom,.tenant-card{display:revert}.sidebar .agent-note{display:none}nav button{font-size:15px;justify-content:flex-start;padding:12px 14px;min-height:44px}nav button span{font-size:18px}.drawer-backdrop{display:block;position:fixed;inset:0;background:#0f233d66;z-index:40}.main{margin-left:0;width:100%}.content{padding:16px 12px}.page-heading{flex-direction:column}.page-heading .actions{width:100%}.button,button,input,select,textarea{min-height:44px}input,select,textarea{font-size:16px}.advice-scripts,.editor-grid,.form-grid,.member-grid,.messages-layout,.overview-grid,.picker-grid{grid-template-columns:1fr!important}.stats{grid-template-columns:1fr 1fr}.todo-grid{grid-template-columns:1fr 1fr!important}.modal-overlay{padding:0;place-items:end stretch}.modal{width:100%;max-height:92vh;border-radius:14px 14px 0 0}.panel{border-radius:10px;margin-bottom:14px}.panel-heading{padding:14px}table.cards-on-phone,table.cards-on-phone tbody,table.cards-on-phone td,table.cards-on-phone tr{display:block;width:100%}table.cards-on-phone thead{display:none}table.cards-on-phone tr{border:1px solid var(--line);border-radius:10px;margin:10px 0;padding:8px 12px;background:#fff}table.cards-on-phone td{border:0;padding:6px 0;display:flex;gap:10px;justify-content:space-between;align-items:center;text-align:right;word-break:break-all}table.cards-on-phone td:before{content:attr(data-label);color:#7a8794;font-size:12px;text-align:left;flex:0 0 auto;max-width:40%}table.cards-on-phone td[data-label=""]:before{content:none}.panel table.cards-on-phone,.panel>table.cards-on-phone{padding:0 10px}.editor-side{position:static!important}.material-picker{max-height:none}.material-picker .picker-list,.material-picker ul{max-height:55vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.chapter-list{display:flex;overflow-x:auto;gap:6px}.chapter-list>*{flex:0 0 auto}.contract-panel iframe,.contract-preview{width:100%}.handoff-card .actions,.handoff-card>div{flex-wrap:wrap}.handoff-card .actions button{flex:1 1 auto}.chat-layout,.chat-panel{grid-template-columns:1fr!important}.profile-head{flex-direction:column;align-items:flex-start}.lightbox img{max-width:100vw}}.handover-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 12px;padding:0;list-style:none;margin:12px 0}.handover-counts b{color:var(--sky);font-size:18px;margin-right:4px}button.danger{color:var(--danger);border-color:#f1c7c1}button.danger.primary{background:var(--danger);color:#fff;border-color:var(--danger)}@media (max-width:700px){.handover-counts{grid-template-columns:1fr 1fr}}.platform{max-width:1180px;margin:0 auto;padding:24px 20px 60px}.platform-top{display:flex;align-items:center;gap:14px;margin-bottom:22px}.platform-top .brand{margin:0 auto 0 0}.platform-actions button,.platform-top button{min-height:40px;padding:0 16px;border-radius:8px}.platform-form{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:14px;align-items:end;padding:0 24px 22px}.modal .field,.password-gate .field,.platform-form .field{display:grid;gap:6px;font-size:12px;margin-bottom:10px}.platform-form button.primary{min-height:44px;margin-bottom:10px}.platform-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:0 24px 24px}.platform-card{border:1px solid var(--line);border-radius:10px;padding:18px;display:grid;gap:8px}.platform-card.off{background:#faf6f5}.platform-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.platform-card .badge.on{color:var(--green)}.platform-card .badge.off{color:#b65d4f}.platform-card dl{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:6px 0}.platform-card dt{font-size:10px;color:var(--muted)}.platform-card dd{margin:0;font-size:18px;font-weight:600}.platform-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}@media (max-width:760px){.platform{padding:14px 12px 40px}.platform-cards,.platform-form{grid-template-columns:1fr;padding:0 16px 16px}.platform-actions button,.platform-top button{min-height:44px;flex:1 1}}.dial{flex-wrap:wrap;gap:6px}.dial,.tel-link{display:inline-flex;align-items:center}.tel-link{color:var(--green);text-decoration:none;white-space:nowrap;min-height:32px}.wechat-copy{border:1px solid var(--line);border-radius:6px;padding:2px 8px;font-size:11px;background:#fff}.fuzzy-entry{display:grid;gap:8px;margin-bottom:12px}.fuzzy-entry textarea{width:100%}@media (max-width:700px){.tel-link,.wechat-copy{min-height:44px}.tel-link{padding:0 6px}}.flow-chip.handoff-only{display:flex;flex-direction:column;gap:6px;cursor:default}.flow-chip.handoff-only button{font-size:12px;padding:4px 8px}.flow-next{margin:8px 0}.portal-build h3{font-size:14px;margin:14px 0 6px}.portal-nodes{display:flex;list-style:none;padding:0;margin:8px 0 10px;gap:4px}.portal-nodes li{flex:1 1;text-align:center;font-size:12px;color:#94a3b8;position:relative}.portal-nodes li i{display:block;width:22px;height:22px;margin:0 auto 4px;border-radius:50%;border:2px solid #cbd5e1;background:#fff;font-style:normal;font-size:12px;line-height:18px}.portal-nodes li.done{color:#0f766e}.portal-nodes li.done i{background:#0f766e;border-color:#0f766e;color:#fff}.portal-nodes li.current{color:#0369a1;font-weight:600}.portal-nodes li.current i{border-color:#0369a1;box-shadow:0 0 0 4px rgba(3,105,161,.15)}.portal-meter{height:8px;border-radius:4px;background:#e2e8f0;overflow:hidden;margin-bottom:10px}.portal-meter b{display:block;height:100%;background:linear-gradient(90deg,#0ea5e9,#0f766e)}.portal-build-phases{list-style:none;padding:0;margin:0;display:grid;gap:10px}.portal-build-phases li{border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;display:grid;gap:4px}.portal-build-phases .bar{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.portal-build-phases .bar b{display:block;height:100%;background:#0ea5e9}.portal-build-phases small,.portal-inspection small{color:#64748b;font-size:12px}.ph-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.ph-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#f1f5f9;color:#475569;white-space:nowrap}.ph-badge.in_progress,.ph-badge.ready{background:#e0f2fe;color:#0369a1}.ph-badge.completed,.ph-badge.passed{background:#dcfce7;color:#15803d}.ph-badge.delayed,.ph-badge.rectifying{background:#fef3c7;color:#b45309}.portal-inspection{border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;margin-bottom:8px}.portal-inspection ul{list-style:none;padding:0;margin:6px 0 0}.portal-inspection li{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;border-top:1px dashed #e2e8f0}.res-pass{color:#15803d}.res-fail{color:#b91c1c}.res-na,.res-pending{color:#64748b}.portal-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.portal-photo-grid button{padding:0;border:0;background:none;text-align:left}.portal-photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}.portal-photo-grid small{font-size:11px;color:#64748b}.portal-schedule{background:linear-gradient(135deg,#e0f2fe,#f0fdfa);border-radius:12px;padding:12px;margin:6px 0 12px}.portal-schedule.pending p{margin:0;font-size:13px;color:#475569}.sched-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.sched-row>div{flex:1 1;display:grid;gap:2px}.sched-row small{color:#0369a1;font-size:12px;font-weight:600}.sched-row strong{font-size:16px;color:#0f172a}.sched-row em{font-style:normal;font-size:11px;color:#64748b}.sched-arrow{color:#0ea5e9;font-size:20px}.sched-tip{margin:8px 0 0;font-size:13px;color:#0f766e;font-weight:600}.receipt{margin-top:4px;font-size:12px}.receipt-toggle{align-items:center;gap:6px;font-size:12px;color:#64748b;padding:0}.receipt-avatars,.receipt-toggle{display:inline-flex}.receipt-avatars>*{margin-right:-4px;border:1px solid #fff;border-radius:50%}.receipt-list{margin-top:6px;padding:6px 8px;background:#f8fafc;border-radius:8px;display:grid;gap:6px;color:#334155}.receipt-list b{margin-right:6px}.receipt-person{display:inline-flex;align-items:center;gap:4px;margin:2px 8px 2px 0}.receipt-person.unread{opacity:.55}.thread-list li{position:relative}.chat-remove,.chat-restore{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:12px;opacity:.55}.chat-restore,.thread-list li:hover .chat-remove{opacity:1}.departed-head{padding:8px 10px 2px;border-top:1px solid #e5e7eb;margin-top:6px}.thread-list li.departed strong{color:#94a3b8}.photo-update{display:grid;gap:10px}.photo-big{display:flex!important;justify-content:center;align-items:center;min-height:64px;font-size:18px;border-radius:14px;cursor:pointer}.photo-strip{display:flex;gap:8px;overflow-x:auto}.photo-strip span{position:relative;flex:0 0 auto}.photo-strip img{width:76px;height:76px;object-fit:cover;border-radius:8px;display:block}.photo-strip button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;padding:0;line-height:20px;background:#0f172a;color:#fff;border:0}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:8px 14px;font-size:14px;min-height:40px}.chip.on{background:#0369a1;border-color:#0369a1;color:#fff}.chip small{opacity:.7}.photo-note{min-height:44px;font-size:15px}.photo-submit{min-height:52px;font-size:17px}.log-files{display:flex;flex-wrap:wrap;gap:6px}.log-thumb{width:72px;height:72px;object-fit:cover;border-radius:6px}.cm-cols{display:flex;gap:10px;list-style:none;margin:0;padding:12px 16px 20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.cm-col{flex:0 0 260px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px 8px;display:flex;flex-direction:column;gap:8px;scroll-snap-align:start}.cm-col.empty{flex-basis:120px;opacity:.7}.cm-card{background:#fff;border:1px solid #d8dee6;border-radius:10px;padding:9px;display:flex;flex-direction:column;gap:6px}.cm-card.late{border-color:#f1a7a7}.cm-card.selected{border-color:var(--green);box-shadow:0 0 0 2px rgba(30,78,140,.15)}.cm-top{display:flex;gap:8px;align-items:flex-start}.cm-thumb{width:52px;height:52px;border-radius:8px;object-fit:cover;flex:none;background:#eef2f6;display:grid;place-items:center;font-size:22px}.cm-info{display:flex;flex-direction:column;min-width:0;flex:1 1;gap:1px}.cm-info strong{font-size:13px}.cm-info small,.cm-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-dates,.cm-info small{font-size:11.5px}.cm-dates{display:flex;justify-content:space-between}.cm-dates b{color:var(--ink,#111)}.cm-note{font-size:12px;margin:0}.cm-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cm-actions button{min-height:36px;padding:6px 12px}.cm-actions .link{margin-left:auto}.cm-actions .ok,.cm-actions .ok:hover{background:#15803d;border-color:#15803d;color:#fff}.cm-col-head-wrap{white-space:nowrap}.cm-actions .bad{color:#b91c1c;border-color:#f1a7a7}.cm-sched{display:flex;gap:6px;width:100%}.cm-sched input{flex:1 1;min-width:0}.cm-fail{display:flex;gap:6px}.cm-fail input{flex:1 1;min-width:0}.cm-card .photo-update{margin:0;padding:8px;box-shadow:none;border:1px dashed var(--line)}details.more>summary{cursor:pointer;color:var(--muted);padding:6px 16px;font-size:13px}details.more.panel>summary{padding:12px 16px}@media (max-width:720px){.cm-cols{flex-direction:column;overflow-x:visible;padding:10px}.cm-col,.cm-col.empty{flex:none;width:auto}.cm-col.empty{display:none}}.solo-stages{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}.solo-stages li{background:#edf1f7;border-radius:18px;padding:8px 12px;font-size:13px}.solo-stages li[aria-current=step]{background:#2258ca;color:white;font-weight:700}.solo-project-list,.solo-section-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.solo-project-list button{display:flex;flex-direction:column;gap:8px;text-align:left}.solo-projects button{min-height:44px;white-space:normal}.solo-projects button[aria-pressed=true]{border-color:#2258ca;background:#eef3ff}.solo-projects .panel{min-width:0}.solo-create{display:grid;gap:12px}@media(max-width:640px){.solo-section-actions{display:grid;grid-template-columns:1fr 1fr}.solo-project-list{display:grid;grid-template-columns:1fr}.solo-projects .actions{flex-wrap:wrap}.solo-projects .actions button{flex:1 1 130px}.solo-projects h2{overflow-wrap:anywhere}}.solo-projects .photo-update .chip.on{background:#2258ca;color:#fff}.thumb-replace{display:block;padding:8px 4px;min-height:36px;text-align:center;color:#1e4e8c;background:#f5f9fd;cursor:pointer;border-radius:4px;font-size:12px}.thumb-default{align-self:center;min-height:44px;font-size:12px}.thumb-editable{width:96px}.thumb-editable .thumb-open img{width:94px;height:76px}.thumb-editable .thumb-actions{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:3px}.thumb-editable .thumb-remove,.thumb-editable .thumb-replace{position:static;display:flex;align-items:center;justify-content:center;width:auto;height:44px;min-height:44px;padding:0;border-radius:4px;font-size:12px;line-height:normal}.thumb-editable .thumb-remove{background:#fff1f0;color:#a32820}.thumb-editable .thumb-tag{display:none}.budget-editor{scroll-margin-top:70px}.editor-help summary,.picker-tools summary{cursor:pointer;min-height:40px;padding:8px 0;color:var(--sky);font-size:13px}.picker-tools .actions{padding-top:8px}.budget-searchbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px}.budget-searchbar input{flex:1 1 180px;min-width:0}.budget-searchbar button[aria-pressed=true]{background:var(--sky-soft);color:var(--sky-dark);border-color:var(--sky)}.chapter-items,.chapter-results,.editor-main{min-width:0}.chapter-items+.chapter-items{margin-top:24px}.budget-editor .item-picks>li{padding:14px;gap:10px;background:#fff}.budget-editor .item-picks>li.picked{border-color:var(--sky);box-shadow:inset 3px 0 var(--sky)}.budget-editor .pick-item-heading{min-height:44px;font-weight:600;align-items:start}.budget-editor .pick-item-heading input[type=checkbox]{width:22px;height:22px;min-height:22px;margin-top:2px;accent-color:var(--sky)}.pick-inline-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;width:100%}.pick-inline-edit>label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:12px}.pick-inline-edit input{min-width:0;width:100%;min-height:44px;font-size:16px}.pick-inline-edit .stepper{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;width:100%}.pick-inline-edit .stepper input{width:100%;padding:6px 2px;text-align:center}.pick-inline-edit .stepper button{width:42px;min-height:44px;padding:0}.pick-line-total{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:8px;border-top:1px dashed var(--line)}.pick-line-total strong{color:var(--sky-dark);font-size:19px}.thumbs:not(.thumbs-managing) .thumb-actions,.thumbs:not(.thumbs-managing) .thumb-default{display:none}.photo-tools-toggle{align-self:center;font-size:12px;min-height:44px}.thumb-gallery{display:flex;flex-wrap:wrap;gap:6px;max-width:100%;width:100%}.budget-editor .thumb-gallery,.budget-editor .thumbs{min-width:0;width:100%;max-width:100%}.thumb-toolbar{display:flex;flex-wrap:wrap;gap:6px;width:100%}.budget-editor .thumb-toolbar .thumb-add,.thumb-toolbar .thumb-camera{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;min-width:66px;height:44px;min-height:44px;padding:8px 10px;border:1px dashed var(--sky);border-radius:6px;color:var(--sky);background:#f5f9fd;font-size:12px;cursor:pointer;white-space:nowrap}.line-controls .price,.line-controls .quantity-label,.line-controls .unit-label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.customer-project-panel{scroll-margin-top:76px}.budget-mobile-bar{display:none}@media (max-width:700px){.budget-editor{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.budget-editor .panel{padding:14px 12px}.budget-editor .steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.budget-editor .steps button{width:100%;padding:6px 4px;font-size:12px;gap:4px;justify-content:center}.budget-editor .steps button b{width:18px;height:18px;flex:none}.budget-editor .chapter-list{flex-direction:row;overflow-x:auto;max-width:100%;gap:8px;padding-bottom:10px;margin-bottom:4px}.budget-editor .chapter-list>button{width:auto;flex:0 0 auto;display:flex;flex-direction:column;gap:4px;min-width:108px;padding:10px 12px}.budget-editor .chapter-list>button small{white-space:nowrap;font-size:11px}.budget-editor .chapter-list .add-section{min-width:180px;margin:0}.budget-editor .picker-grid{display:block}.budget-editor .chapter-items .panel-heading,.budget-editor .room-card h3{flex-wrap:wrap}.budget-editor .chapter-items .actions{flex-wrap:wrap;gap:6px}.budget-editor .item-picks>li{padding:12px}.budget-editor .pick-item-heading{flex-basis:100%}.budget-editor .thumbs:not(.thumbs-managing) .thumb-gallery{flex-wrap:nowrap;max-width:100%;overflow-x:auto;padding-bottom:4px;align-items:center}.budget-editor .thumb-gallery>*{flex-shrink:0}.budget-editor .thumb-open img{width:94px;height:76px}.budget-editor .editor-side .total-card{margin-top:14px}.budget-mobile-bar{position:fixed;bottom:0;left:0;right:0;z-index:35;display:flex;gap:8px;align-items:center;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 22px #16395f12}.budget-mobile-bar>div{flex:1 1;min-width:0}.budget-mobile-bar small{display:block;color:var(--muted);font-size:10px}.budget-mobile-bar strong{display:block;color:var(--sky-dark);font-size:18px;overflow-wrap:anywhere}.budget-mobile-bar button{flex:none;padding:8px;font-size:12px}.budget-editor .line-controls{display:grid;grid-template-columns:minmax(0,1fr) 66px}.budget-editor .line-controls .times{display:none}.budget-editor .line-controls .stepper{display:grid;grid-template-columns:40px minmax(0,1fr) 40px}.budget-editor .line-controls .stepper input{width:100%;min-width:0}.budget-editor .line-controls .stepper button{padding:6px}.budget-editor .line-controls .unit-edit{width:100%;min-width:0}.budget-editor .line-controls .price{grid-column:1/3}.budget-editor .line-controls .line-amount{grid-column:1;margin:0}.budget-editor .line-controls .ghost{grid-column:2;grid-row:3}.budget-editor .line-more label{display:grid;gap:6px}.budget-editor .line-more input,.budget-editor .line-more textarea{width:100%;min-width:0}}.render-form{display:grid;gap:12px;margin:16px 0}.render-form .render-upload{display:flex;flex-wrap:wrap;gap:10px;align-items:center;overflow-wrap:anywhere}.render-upload input{max-width:100%}.render-styles{display:flex;gap:8px;flex-wrap:wrap}.render-styles button[aria-pressed=true]{background:#1e4e8c;color:white}.render-card a.button,.render-card button,.render-form button{min-height:44px}.render-preview{width:100%;max-width:480px;max-height:280px;object-fit:contain}.render-form textarea{width:100%;min-height:90px;margin-top:8px}.render-card{border-top:1px solid #d5dde8;padding:16px 0}.render-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.render-comparison figure{margin:0;min-width:0}.render-comparison img{width:100%;max-height:420px;object-fit:contain;border-radius:8px;background:#f1f5f9}.render-comparison figcaption{text-align:center;margin-top:6px;font-size:13px}.room-renders{min-width:0}@media(max-width:640px){.render-comparison{grid-template-columns:1fr}.render-card .actions{flex-wrap:wrap}}.room-renders{padding:20px}.render-form .render-upload{justify-content:center;border:1px dashed #1e4e8c;padding:12px;min-height:48px;border-radius:8px;cursor:pointer}.render-upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.room-renders .render-rooms{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px}.room-renders .render-rooms button{flex:none;min-height:44px;padding:8px 16px;border:1px solid #d5dde8;border-radius:999px;background:#fff;color:#172b45}.room-renders .render-rooms button[aria-pressed=true]{border-color:#1e4e8c;background:#1e4e8c;color:#fff}.room-renders .render-styles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.room-renders .render-style-card{padding:0 0 12px;overflow:hidden;text-align:left;border:2px solid transparent;border-radius:12px;background:#f5f7fa;color:#172b45;min-width:0}.render-style-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.render-style-title{display:block;font-weight:700;padding:10px 10px 4px}.render-style-card small{display:block;padding:0 10px;font-size:12px;color:#58667b}.room-renders .render-style-card[aria-pressed=true]{border-color:#1e4e8c;background:#edf4ff;color:#153d6b;box-shadow:0 0 0 1px #1e4e8c}@media(max-width:800px){.room-renders .render-styles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:480px){.room-renders .render-styles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.measure-photos{padding:20px;min-width:0}.measure-photos textarea{width:100%;min-height:80px;margin-top:10px}.measure-upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.measure-upload-actions label{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px dashed #1e4e8c;border-radius:8px;padding:10px;cursor:pointer}.measure-upload-actions .busy{opacity:.6;cursor:wait}.measure-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-top:16px}.measure-gallery figure{min-width:0;margin:0;padding:10px;border:1px solid #d5dde8;border-radius:10px}.measure-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}.measure-gallery figcaption{overflow-wrap:anywhere}.measure-gallery figcaption>a,.measure-gallery small,.measure-gallery strong{display:block;margin-top:8px}@media(max-width:480px){.measure-gallery{grid-template-columns:1fr 1fr;gap:10px}}.recovery-toggle{display:block;min-height:44px;margin:10px 0}.recovery-result{padding:24px;max-height:90dvh;overflow:auto}.recovery-result code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.recovery-result .actions{flex-wrap:wrap}.recovery-accounts{display:grid;gap:12px;margin:16px 0}.recovery-accounts article{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #d5dde8;padding-bottom:12px}.recovery-accounts article div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;overflow-wrap:anywhere}.recovery-accounts button{min-height:44px}.render-presets{display:flex;flex-wrap:wrap;gap:8px}.render-presets button[aria-pressed=true]{background:#1e4e8c;color:#fff}.render-prompt-summary{margin:0;font-size:13px}.render-prompt-text{line-height:1.8;overflow-wrap:anywhere}.render-results-only .render-card{margin:0}.render-results-only img{display:block;max-width:100%;width:100%;max-height:640px;object-fit:contain;border-radius:8px}.render-results-only figcaption{padding:10px 0}.quote-render-entry{margin:16px 0;min-width:0}.quote-render-entry>summary{min-height:44px;cursor:pointer;font-weight:600}.staffing-settings{min-width:0;padding:20px}.staffing-settings a{display:inline-flex;align-items:center;min-height:44px;color:var(--green)}.staffing-intro{margin:20px 0 12px}.staffing-card p,.staffing-intro p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.staffing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.staffing-card{min-width:0;border:1px solid var(--line);border-radius:12px;padding:16px}.staffing-open{border-color:#b9cee9;background:#f8fbff}.staffing-card-heading{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}.staffing-card-heading>div{flex:1 1;min-width:120px}.staffing-card h3{margin:0;font-size:16px}.staffing-number{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e5eef9;color:#214d83;font-weight:700}.staffing-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.staffing-more>summary,.staffing-settings button{min-height:44px}.staffing-member{display:flex;align-items:center;gap:10px;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.staffing-member span{min-width:0;overflow-wrap:anywhere}.staffing-member small{display:block;color:var(--muted)}.staffing-member button{flex:none;font-size:12px;padding:8px}.staffing-more{margin-top:14px}.staffing-more>summary{cursor:pointer;padding:10px 0}.staffing-add{border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:16px;max-width:560px}.staffing-add input{width:100%;min-width:0}@media(max-width:640px){.staffing-grid{grid-template-columns:1fr}.staffing-card,.staffing-settings{padding:12px}}@media(max-width:700px){table.members-table td{max-width:none;flex-wrap:wrap}.members-table select{max-width:55%}.members-table button{min-height:44px}}.portal-expected-phases{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}.portal-expected-phases li{display:grid;gap:4px;border-bottom:1px solid #e2e8f0;padding:8px 0}.portal-expected-phases span{color:#64748b;font-size:13px;overflow-wrap:anywhere}@media(max-width:420px){.portal-expected-schedule .sched-row{align-items:flex-start}.portal-expected-schedule .sched-row strong{font-size:14px}}.topbar>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .menu-toggle{flex-shrink:0}.topbar-tools{margin-left:auto;display:flex;align-items:center;gap:16px;flex-shrink:0}.feedback-entry{min-height:40px;white-space:nowrap;color:var(--green);font-weight:600}.feedback-dialog{padding:0;border:0;border-radius:14px;width:720px;max-width:calc(100vw - 32px);max-height:90vh;max-height:90dvh;color:var(--ink);box-shadow:0 20px 80px #14362940}.feedback-dialog[open]{display:flex;flex-direction:column}.feedback-dialog::backdrop{background:#0f233d70}.feedback-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line);background:#fff}.feedback-heading h2{margin:0 0 6px}.feedback-heading>button{min-width:44px;min-height:44px;font-size:24px;padding:4px}.feedback-body{overflow-y:auto;overscroll-behavior:contain;padding:20px 24px}.feedback-form{padding:0}.feedback-form textarea{min-height:100px}.feedback-buttons,.feedback-upload{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.feedback-preview{display:flex;gap:12px;align-items:center;margin-top:12px}.feedback-preview img{width:100px;height:80px;object-fit:contain;border:1px solid var(--line);border-radius:8px}.feedback-context{display:block;line-height:1.6;margin:12px 0}.feedback-submit{width:100%;min-height:46px}.feedback-pending{display:grid;gap:12px;padding:14px;background:#fff7e5;border-radius:8px}.feedback-records{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.feedback-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.feedback-list-heading h3{margin:0}.feedback-filters{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.feedback-filters button{padding:8px 12px}.feedback-filters button[aria-pressed=true]{background:#e8f0f8;border-color:#92b2db;color:var(--green)}.feedback-card{border:1px solid var(--line);border-radius:10px;padding:16px;margin:12px 0;overflow-wrap:anywhere}.feedback-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}.feedback-status{flex-shrink:0;border-radius:20px;padding:4px 9px;font-size:12px;background:#edf1f6;color:#526070}.feedback-new{background:#fff2d7;color:#805b1c}.feedback-in_progress{background:#e8f0f8;color:#1e4e8c}.feedback-fixed{background:#e8f5ea;color:#326b3d}.feedback-description{white-space:pre-wrap;line-height:1.7;margin:12px 0}.feedback-screenshot{display:inline-flex;align-items:center;gap:10px;color:var(--green);margin-bottom:12px}.feedback-screenshot img{display:block;width:80px;height:64px;object-fit:contain;border:1px solid var(--line);border-radius:6px}.feedback-response{white-space:pre-wrap;line-height:1.7;background:#eef4fb;padding:12px;border-radius:8px}.feedback-management{border-top:1px solid var(--line);padding-top:12px;margin-top:8px}.feedback-management .field{margin-bottom:8px}.feedback-management textarea{min-height:68px}.feedback-history{margin-top:12px;font-size:12px;color:var(--muted)}.feedback-history summary{cursor:pointer;padding:6px 0}.feedback-history ul{padding-left:18px;line-height:1.8}.feedback-history p{white-space:pre-wrap;margin:0 0 8px}.feedback-load-more{width:100%}@media(max-width:700px){.topbar-tools{gap:8px}.feedback-entry{padding:8px 10px;min-height:44px}.feedback-dialog{width:100%;max-width:100%;max-height:94vh;max-height:94dvh;margin:auto 0 0;border-radius:14px 14px 0 0}.feedback-heading{padding:14px 16px}.feedback-body{padding:16px 14px max(20px,env(safe-area-inset-bottom))}.feedback-card{padding:14px 12px}.feedback-buttons button{flex:1 1;padding:10px 12px}}.worker-shell{max-width:780px;margin:auto;padding:20px 16px 60px;min-height:100vh}.worker-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.worker-top small{display:block;color:#64748b;margin-top:5px}.worker-shell .panel{padding:20px;margin-top:18px}.worker-shell h1{font-size:26px}.worker-availability{padding:20px;border:1px solid #e2e8f0;border-radius:14px;margin:16px 0}.worker-availability small{display:block;margin-bottom:8px}.worker-availability strong{display:block;font-size:24px}.worker-availability p{margin:8px 0 0}.worker-availability.is-ready{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.worker-availability.is-pending{background:#fffbeb;border-color:#fde68a;color:#92400e}.worker-reminder{color:#b45309;font-size:13px}.worker-steps{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:13px;color:#64748b;padding-left:20px;margin:20px 0}.worker-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.worker-form-grid input,.worker-form-grid select{width:100%;min-width:0;box-sizing:border-box}.worker-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.worker-photo-card{padding:12px;border:1px solid #dbe3ef;border-radius:12px;min-width:0}.worker-photo-card strong{display:block;margin-bottom:10px}.worker-photo-card img{width:100%;height:120px;object-fit:contain;background:#f1f5f9;margin-bottom:10px}.worker-photo-card p{font-size:13px}.worker-photo-card .actions{gap:6px}.worker-photo-card button{padding:9px;flex:1 1;min-height:42px}.worker-contract-text{font-size:14px;line-height:1.8;overflow-wrap:anywhere}.worker-contract-text h3{font-size:15px;margin:16px 0 6px}.worker-contract-text p{margin:6px 0}.worker-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:18px 0}.worker-list>button{display:flex;text-align:left;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border:1px solid #dbe3ef;border-radius:12px;white-space:normal;min-width:0}.worker-list>button.selected{border-color:#24558e;background:#eff6ff}.worker-list small,.worker-list span{font-size:13px}.worker-detail,.worker-management>.panel{padding:22px;margin-bottom:20px}.worker-review-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.worker-review-photos img{display:block;width:100%;height:150px;object-fit:contain;background:#f1f5f9}.worker-review-photos span{display:block;font-size:13px;margin-top:8px}.worker-private{background:#f8fafc;border-radius:10px;padding:16px}.worker-private>div{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.worker-private dt{color:#64748b;min-width:85px}.worker-private dd{margin:0;overflow-wrap:anywhere}.worker-policy{padding:14px;border:1px solid #dbe3ef;border-radius:10px;margin:14px 0}.worker-insurance form{border-top:1px solid #e2e8f0;margin-top:20px;padding-top:14px}.worker-employment{margin-top:20px}.worker-detail>details{margin-top:22px}.worker-create{padding:16px;background:#f8fafc;border-radius:12px;margin-bottom:18px}@media(max-width:640px){.worker-form-grid,.worker-photo-grid,.worker-review-photos{grid-template-columns:1fr}.worker-photo-card img{height:155px}.worker-photo-card .actions button{min-height:44px}.worker-detail,.worker-management>.panel,.worker-shell .panel{padding:16px}.worker-list{grid-template-columns:1fr}.worker-availability strong{font-size:22px}.worker-private>div{display:block}.worker-private dd{margin-top:4px}.worker-detail .actions{flex-wrap:wrap}.worker-shell .wide{min-height:46px}.worker-steps{font-size:12px;gap:8px 20px}.worker-review-photos img{height:190px}}.worker-training-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:65vh;overflow-y:auto;line-height:1.85;padding:14px;background:#f6f8fb}.worker-records{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}.worker-records article{padding:12px;border:1px solid #dce3ee;border-radius:12px;overflow-wrap:anywhere}.worker-records img{width:100%;height:210px;object-fit:contain;border-radius:8px;background:#f4f6f9}.worker-project-choices{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.worker-preparation .actions,.worker-work .actions{flex-wrap:wrap}.worker-onboarding-records>summary{padding:16px;margin:16px 0;cursor:pointer;border:1px solid #dce3ee;border-radius:12px;background:#fff}.worker-shell{font-family:system-ui,-apple-system,Segoe UI,Microsoft YaHei,sans-serif;line-height:1.6}.worker-agreement-attachments{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.worker-agreement-attachments figure{margin:0;page-break-inside:avoid;break-inside:avoid}.worker-agreement-attachments img{display:block;width:100%;max-height:360px;object-fit:contain;background:#f1f5f9;border:1px solid #dce3ee;border-radius:8px}.enterprise-entry{padding:0 24px 20px}.login-options{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 16px;margin:-4px 0 18px}.login-check{display:inline-flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;min-height:44px;-webkit-user-select:none;user-select:none}.login-check input[type=checkbox]{width:20px;height:20px;min-height:20px;margin:0;padding:0;flex:none;accent-color:var(--sky)}@media (max-width:700px){.login-panel{padding:28px 20px;align-items:start}.login-panel form{margin-top:24px}.login-panel input{font-size:16px}.login-panel .primary.wide{min-height:48px}}.next-action{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid #e2e8f0}.next-action p{margin:6px 0}.next-action small{overflow-wrap:anywhere}.next-action-buttons{display:flex;flex-direction:column;gap:8px;min-width:130px}.next-action-buttons details button{display:block;margin-top:8px;width:100%}.next-action summary,.reminder-settings summary{cursor:pointer;padding:10px 0}.daily-reminder{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#eff6ff;border-radius:10px}.reminder-settings{margin-top:18px}.reminder-settings form{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.daily-reminder,.next-action{flex-direction:column}.next-action-buttons{width:100%}.reminder-settings form{grid-template-columns:1fr}}.next-actions{padding:24px}.next-actions>.panel-heading{padding:0 0 16px}@media(max-width:600px){.next-actions{padding:18px}}.customer-site-gallery{margin:20px 0}.customer-site-gallery h3{display:flex;align-items:center;justify-content:space-between;gap:12px}.customer-site-gallery h3 small{font-size:12px;color:#64748b;font-weight:400}.site-gallery-preview{position:fixed;inset:0;z-index:1100;background:rgba(0,0,0,.9);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;gap:12px}.site-gallery-preview img{max-width:100%;max-height:85vh;object-fit:contain}.site-gallery-preview button{align-self:flex-end}.supplier-panel{padding:24px;margin-bottom:18px}.supplier-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.supplier-stats{display:flex;gap:24px;flex-wrap:wrap;margin:16px 0}.supplier-filters{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:18px}.supplier-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.supplier-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:18px;gap:8px;white-space:normal;overflow-wrap:anywhere}.supplier-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.supplier-form-grid input,.supplier-form-grid select{width:100%;min-width:0;box-sizing:border-box}.supplier-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.supplier-info dt{color:#64748b;font-size:13px}.supplier-info dd{margin:4px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.supplier-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px}.supplier-history{border-top:1px solid #e2e8f0;padding:16px 0;overflow-wrap:anywhere}.supplier-history p{margin:8px 0}.supplier-history button{display:block;margin-top:12px}.supplier-pages{margin-top:16px}.supplier-log-text{white-space:pre-wrap}.supplier-workspace summary{cursor:pointer;padding:12px 0}@media(max-width:900px){.supplier-sections{grid-template-columns:1fr}}@media(max-width:600px){.supplier-panel{padding:18px}.supplier-heading{flex-direction:column;align-items:stretch}.supplier-filters,.supplier-form-grid,.supplier-info{grid-template-columns:1fr}.supplier-list{grid-template-columns:minmax(0,1fr)}}.management-home{display:flex;flex-direction:column;gap:18px}.management-intro{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:4px 0}.management-intro h2{font-size:24px;margin:6px 0}.management-intro p{margin:0}.management-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.management-metric{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;padding:18px;border:1px solid #dfe6ef;border-radius:12px;background:#fff;white-space:normal}.management-metric span{font-size:13px;color:#5b6b80}.management-metric strong{font-size:30px;line-height:1.1;color:#1e3a5f}.management-metric small{font-size:12px;color:#758396}.management-metric.warn{border-top:3px solid #e5a243}.management-metric.warn strong{color:#a16207}.management-metric.danger strong{color:#b91c1c}.management-shortcuts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.management-shortcuts>span{font-size:12px;color:#64748b;margin-right:4px}.management-shortcuts button{background:#fff;padding:9px 12px;font-size:13px}.management-alerts{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 16px;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px}.management-alerts>strong{color:#9a3412;font-size:13px}.management-alerts button{padding:8px 10px;background:#fff}.management-work-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:18px;align-items:start}.management-home .panel{margin:0}.management-approvals,.management-home .next-actions,.management-updates{padding:22px}.management-section-heading{display:flex;align-items:center;justify-content:space-between}.management-section-heading h2,.management-updates h2{font-size:18px;margin:0}.management-section-heading h2 small{margin-left:8px;color:#64748b;font-size:13px}.management-approvals>.muted{font-size:12px;margin:10px 0 16px}.management-approval{border-top:1px solid #e2e8f0;padding:16px 0}.management-approval h3{margin:0 0 12px;font-size:15px;overflow-wrap:anywhere}.management-approval-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.management-approval>small{display:block}.management-approval>button{width:100%;margin-top:12px}.management-empty{padding:20px 0;color:#64748b}.management-reminder-hint{font-size:12px;color:#64748b}.compact-reminders .panel-heading{padding-bottom:4px}.compact-reminders>.muted{font-size:12px}.compact-reminders .next-action{gap:12px;padding:14px 0}.compact-reminders .next-action>div:first-child{min-width:0}.compact-reminders .next-action strong{font-size:14px}.compact-reminders .next-action p{font-size:12px;overflow-wrap:anywhere}.compact-reminders .next-action-buttons{min-width:106px}.compact-reminders .next-action-buttons>button{padding:9px 12px;font-size:13px}.compact-reminders .next-action summary{font-size:12px}.compact-reminders .daily-reminder{font-size:12px;margin:12px 0}.compact-reminders .daily-reminder strong{font-weight:500}.management-task-filters{display:flex;gap:8px;margin:14px 0}.management-task-filters button{font-size:12px;padding:8px 12px}.management-task-filters button[aria-pressed=true]{background:#eaf2fc;border-color:#9bb7dd;color:#1e4b82}.management-followup>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px;cursor:pointer;list-style:revert}.management-followup>summary span{font-size:12px;color:#64748b}.management-followup>.panel{border:0;border-top:1px solid #e2e8f0;border-radius:0 0 12px 12px}.management-update-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.management-update-links button{display:flex;gap:12px;align-items:center;padding:10px 12px;font-size:13px}.management-birthdays{border-top:1px solid #e2e8f0;margin-top:16px;padding-top:12px}.management-birthdays h3{font-size:14px;margin:0}#approvals{scroll-margin-top:84px}@media(max-width:1100px){.management-work-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr)}}@media(max-width:800px){.management-work-grid{grid-template-columns:minmax(0,1fr)}.management-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.management-intro{align-items:flex-start}.management-intro>button{font-size:12px;padding:10px}}@media(max-width:600px){.management-home{gap:14px}.management-intro{flex-direction:column;gap:10px}.management-intro h2{font-size:21px}.management-intro>button{width:100%}.management-metric{padding:14px}.management-metric strong{font-size:26px}.management-shortcuts{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.management-shortcuts button,.management-shortcuts>span{flex-shrink:0}.management-approvals,.management-home .next-actions,.management-updates{padding:18px}.compact-reminders .next-action{flex-direction:row;align-items:flex-start}.compact-reminders .next-action-buttons{width:auto;max-width:112px}.management-followup>summary{flex-direction:column;align-items:flex-start;padding:18px}}.compact-reminders .next-action strong{overflow-wrap:anywhere}.content:has(.management-home)>.page-heading{display:none}.management-intro h1{font-size:28px;line-height:1.3;margin:6px 0;color:#1f2d3d}.management-header-actions{display:flex;align-items:center;gap:10px}.management-shortcuts{flex-direction:row}.management-shortcuts button{width:auto;flex:0 0 auto}@media(max-width:600px){.management-intro h1{font-size:24px}.management-header-actions{width:100%}.management-header-actions>button{flex:1 1;padding:10px 8px;font-size:12px}}.sidebar-nav-group{margin:10px 0 6px;padding-top:10px;border-top:1px solid #e5eaf0}.sidebar-nav-group h3{font-size:11px;font-weight:500;color:#829084;margin:2px 12px 10px;letter-spacing:1px}.sidebar nav button[aria-current=page]{background:#e9f3ed;color:var(--green);font-weight:600}@media(max-width:640px){.sidebar .tenant-card{display:flex;align-items:center;gap:10px}.sidebar .tenant-card>div{min-width:0}.sidebar .tenant-card strong{overflow-wrap:anywhere}}@media(min-width:641px) and (max-width:700px){.sidebar-nav-group h3{display:none}}.supplier-portal{max-width:1080px;margin:0 auto;padding:24px}.purchase-table{overflow-x:auto;max-width:100%;margin:16px 0}.purchase-table table{width:100%;min-width:520px;border-collapse:collapse;text-align:left}.purchase-table td,.purchase-table th{padding:12px;border-bottom:1px solid var(--line,#e4e8ed)}.purchase-table small{display:block;color:#677782;margin-top:4px}.purchase-exception{color:#a33b13;font-weight:600}.purchase-report{border-top:1px solid #e4e8ed;margin-top:24px;padding-top:16px}.supplier-workspace fieldset{border:1px solid #e4e8ed;border-radius:12px;margin:16px 0;padding:16px;min-width:0}.supplier-workspace textarea{min-height:80px}@media (max-width:600px){.supplier-portal{padding:12px}.supplier-workspace fieldset{padding:10px}}.supplier-workspace input[type=checkbox]{width:18px;height:18px;min-height:0;display:inline-block;vertical-align:middle;margin-right:8px}.login-icp{display:block;width:100%;align-self:stretch;margin-top:32px;padding-bottom:8px;text-align:center;font-size:12px;line-height:1.6}.login-icp a{color:#9aa3b2;text-decoration:none}.login-icp a:focus-visible,.login-icp a:hover{color:#6b7385;text-decoration:underline}.worker-conversation{padding:20px;min-width:0}.worker-chat-contacts{display:flex;gap:8px;flex-wrap:wrap}.worker-chat-history{display:flex;flex-direction:column;gap:12px;max-height:440px;overflow-y:auto;margin:16px 0}.worker-chat-history article{max-width:90%;background:#f1f5f9;border-radius:12px;padding:12px}.worker-chat-history article.mine{align-self:flex-end;background:#e7f3ed}.worker-chat-history p{white-space:pre-wrap;overflow-wrap:anywhere}.worker-conversation textarea{min-height:84px;width:100%}.worker-chat-entry{margin:16px 0}.worker-chat-entry>summary{padding:14px;background:#e7f3ed;border-radius:12px;cursor:pointer}.supplier-empty{margin:14px 0;padding:22px 16px;text-align:center;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px}.supplier-empty strong{display:block;color:#334155;font-size:15px;margin-bottom:6px}.supplier-empty p{margin:0;font-size:13px;line-height:1.6}.supplier-item-fold{border:1px solid #e2e8f0;border-radius:10px;margin:10px 0;padding:0 12px 10px;background:#fff}.supplier-item-fold.flagged{border-color:#fcd34d;background:#fffdf5}.supplier-item-fold>summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;cursor:pointer;list-style:none;padding:12px 0}.supplier-item-fold>summary::-webkit-details-marker{display:none}.supplier-item-fold>summary:before{content:"▸";color:#64748b;font-size:12px}.supplier-item-fold[open]>summary:before{content:"▾"}.supplier-item-fold-title{font-weight:600;min-width:0;overflow-wrap:anywhere}.supplier-item-fold .supplier-entry-item{border-top:0;margin-top:0;padding-top:0}.supplier-item-fold .supplier-entry-item-head{display:none}.supplier-invite-history{margin-top:12px}.supplier-invite-history>summary{cursor:pointer;color:#475569;padding:8px 0}.supplier-list-more{width:100%;margin-top:10px}@media (min-width:641px){.supplier-list.supplier-list-fold>.supplier-card{display:flex!important}.supplier-list-more{display:none}}@media (max-width:640px){.supplier-item-fold>summary{padding:14px 0}.supplier-list.supplier-list-fold>.supplier-card:nth-child(n+9){display:none}.supplier-list.supplier-list-fold.is-expanded>.supplier-card{display:flex}}.supplier-join{max-width:760px}.supplier-join h1{margin:6px 0;font-size:22px}.supplier-entry-item{border-top:1px solid #e2e8f0;padding-top:12px;margin-top:12px}.supplier-entry-item-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.supplier-flag{display:inline;font-size:11px;font-weight:500;color:#a16207;background:none;padding:0;border-radius:0}.supplier-flag-line{margin:4px 0 8px;font-size:12px;line-height:1.4;color:#a16207}.supplier-flag-box{background:#fffbeb;border:1px solid #fde68a;padding:8px 10px;border-radius:8px;font-size:13px}.supplier-upload{display:block;border:2px dashed #94a3b8;border-radius:12px;padding:18px;text-align:center;margin:12px 0;cursor:pointer}.supplier-upload input{display:block;margin:8px auto 0;max-width:100%}.supplier-upload-hint{margin:8px 0 0;font-size:13px}.supplier-join-actions{position:sticky;bottom:0;background:#fff;padding:12px 0}.supplier-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.supplier-chip{display:inline-flex;gap:6px;align-items:center;border:1px solid #cbd5e1;border-radius:999px;padding:4px 10px}.supplier-chip button{padding:0 6px}.supplier-review-item{border-radius:10px;padding:0 10px 10px;margin:10px 0;border:1px solid #e2e8f0}.supplier-review-item.flagged{border-color:#fcd34d;background:#fffdf5}.supplier-invite-row{align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e5e7eb}.supplier-invite-actions,.supplier-invite-row{display:flex;flex-wrap:wrap;gap:8px}.supplier-invite-actions button{min-height:40px}.supplier-restart button{margin-top:8px;min-height:44px}@media (max-width:640px){.supplier-invite-row>span:first-child{flex-basis:100%}.supplier-invite-actions{width:100%}.supplier-invite-actions button,.supplier-join-actions button{flex:1 1}.supplier-review-actions .actions button{width:100%}}.supplier-url-import{margin:12px 0}.supplier-url-import textarea{width:100%;box-sizing:border-box;min-height:64px}.supplier-url-import button{margin-top:8px}.supplier-url-import>button{min-height:44px}.supplier-login-toggle{display:block;background:none;border:0;padding:4px 0;color:var(--accent,#2563eb)}.supplier-login-fields{display:grid;gap:8px}.supplier-login-fields input{width:100%;box-sizing:border-box;min-height:44px;font-size:16px}.supplier-login-saved{list-style:none;padding:0;margin:8px 0;display:grid;gap:6px}.supplier-login-saved li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;word-break:break-all}.supplier-login-actions{display:flex;gap:6px}.supplier-login-actions button{margin-top:0;min-height:36px}@media (min-width:720px){.supplier-login-fields{grid-template-columns:1fr 1fr}.supplier-login-fields label:nth-child(3),.supplier-login-fields p{grid-column:1/-1}}