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