:root{--olive-primary: #006679;--olive-primary-soft: #e5f1f2;--olive-primary-dark: #004854;--olive-accent: #ec5122;--olive-accent-soft: #fff0ea;--olive-sand: #bfb58b;--olive-sand-soft: #f3f0e6;--olive-ink: #17252b;--olive-text: #1f2d31;--olive-muted: #68777a;--olive-bg: #f5f7f6;--olive-surface: #ffffff;--olive-surface-soft: #f0f3f1;--olive-border: #dde4e1;--olive-error: #dc2626;--olive-error-soft: #fdecec;--olive-success: #1a7a4c;--olive-success-soft: #e7f6ee;--olive-radius-lg: 20px;--olive-radius-md: 14px;--olive-radius-sm: 10px;--olive-shadow: 0 2px 10px rgba(23, 37, 43, .06)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Pretendard,Noto Sans KR,sans-serif;background:var(--olive-bg);color:var(--olive-text);-webkit-tap-highlight-color:transparent}a{color:inherit}.app-root{min-height:100dvh;display:flex;flex-direction:column}.header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;background:var(--olive-surface);border-bottom:1px solid var(--olive-border);position:sticky;top:0;z-index:40}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:800;font-size:18px;letter-spacing:-.02em;color:var(--olive-primary)}.brand-mark{width:30px;height:30px;border-radius:9px;background:var(--olive-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0}.tenant-tag{font-size:12px;color:var(--olive-muted);font-weight:500;border-left:1px solid var(--olive-border);padding-left:10px;margin-left:2px}.nav{display:flex;align-items:center;gap:6px}.nav a,.nav .icon-btn{color:var(--olive-text);text-decoration:none;font-size:13px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:999px;border:none;background:transparent;color:var(--olive-text);cursor:pointer}.icon-btn:hover{background:var(--olive-surface-soft)}.icon-btn.active{color:var(--olive-primary);background:var(--olive-primary-soft)}main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:20px 20px 96px}@media (min-width: 900px){main{padding-bottom:32px}}.desktop-grid{display:grid;grid-template-columns:1fr;gap:20px;align-items:start}@media (min-width: 900px){.desktop-grid{grid-template-columns:minmax(0,1fr) 320px}}.sidebar-stack{display:flex;flex-direction:column;gap:16px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--olive-surface);border-top:1px solid var(--olive-border);padding-bottom:env(safe-area-inset-bottom,0);z-index:40}@media (min-width: 900px){.bottom-nav{display:none}}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 4px 8px;font-size:11px;color:var(--olive-muted);text-decoration:none;min-height:56px;position:relative}.bottom-nav-item.active{color:var(--olive-primary)}.bottom-nav-badge{position:absolute;top:2px;right:calc(50% - 20px);background:var(--olive-accent);color:#fff;font-size:9px;font-weight:700;border-radius:999px;min-width:15px;height:15px;display:flex;align-items:center;justify-content:center;padding:0 3px}button{font-family:inherit;padding:11px 18px;border-radius:var(--olive-radius-sm);border:none;background:var(--olive-primary);color:#fff;cursor:pointer;font-size:14px;font-weight:600;transition:opacity .15s,transform .05s}button:hover{opacity:.92}button:active{transform:scale(.98)}button:disabled{background:var(--olive-border);color:var(--olive-muted);cursor:not-allowed;transform:none}button.secondary{background:var(--olive-surface);color:var(--olive-primary);border:1px solid var(--olive-primary)}button.outline{background:var(--olive-surface);color:var(--olive-text);border:1px solid var(--olive-border)}button.danger{background:var(--olive-surface);color:var(--olive-error);border:1px solid var(--olive-error-soft)}button.link,.link{background:none;color:var(--olive-primary);padding:0;font-size:13px;font-weight:600;text-decoration:none;border:none;cursor:pointer}.link:hover{text-decoration:underline}.error{color:var(--olive-error);font-size:13px}.page{max-width:720px;margin:0 auto}.page h1{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:0 0 4px}.page>h2{font-size:19px;font-weight:700;margin:28px 0 10px;display:flex;align-items:center;justify-content:space-between}.page-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--olive-primary);text-transform:uppercase;margin:0}.center-page{display:flex;align-items:center;justify-content:center;min-height:100dvh;background:var(--olive-bg);padding:20px}.card{background:var(--olive-surface);padding:28px;border-radius:var(--olive-radius-lg);border:1px solid var(--olive-border);box-shadow:var(--olive-shadow);width:360px;max-width:100%}.card label,.panel label{display:block;margin-bottom:12px;font-size:13px;font-weight:600;color:var(--olive-muted)}.card input,.panel input,.panel select,.panel textarea,input,select,textarea{width:100%;padding:11px 12px;margin-top:5px;border:1px solid var(--olive-border);border-radius:var(--olive-radius-sm);font-size:14px;font-family:inherit;background:var(--olive-surface);color:var(--olive-text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--olive-primary-soft);border-color:var(--olive-primary)}.panel{background:var(--olive-surface);padding:18px;border-radius:var(--olive-radius-md);border:1px solid var(--olive-border);box-shadow:var(--olive-shadow);margin:10px 0}.panel textarea{width:100%;margin:8px 0;min-height:84px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:8px}.form-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.cell-input{width:60px}.action-row{margin:16px 0;display:flex;align-items:center;gap:12px}.hero{background:linear-gradient(135deg,var(--olive-primary) 0%,#08798a 100%);color:#fff;border-radius:var(--olive-radius-lg);padding:22px 22px 20px;margin-bottom:18px}.hero-eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#b9d6da;margin:0}.hero h1{color:#fff;margin:6px 0 2px}.hero-sub{color:#c4d3d6;font-size:13px;margin:2px 0 14px}.hero-stats{display:flex;gap:22px;flex-wrap:wrap}.hero-stat-label{font-size:11px;color:#9fb9bd;margin:0}.hero-stat-value{font-size:16px;font-weight:700;margin:2px 0 0}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}@media (max-width: 420px){.quick-actions{grid-template-columns:repeat(3,1fr)}}.quick-action{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 4px;border-radius:var(--olive-radius-md);background:var(--olive-surface);border:1px solid var(--olive-border);text-decoration:none;color:var(--olive-text);font-size:12px;font-weight:600;text-align:center}.quick-action svg{color:var(--olive-primary)}.quick-action:hover{border-color:var(--olive-primary)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.badge-neutral{background:var(--olive-surface-soft);color:var(--olive-muted)}.badge-primary{background:var(--olive-primary-soft);color:var(--olive-primary-dark)}.badge-accent{background:var(--olive-accent-soft);color:var(--olive-accent)}.badge-sand{background:var(--olive-sand-soft);color:#6b6547}.badge-success{background:var(--olive-success-soft);color:var(--olive-success)}.badge-error{background:var(--olive-error-soft);color:var(--olive-error)}.dot{width:7px;height:7px;border-radius:999px;display:inline-block}.dot-primary{background:var(--olive-primary)}.dot-accent{background:var(--olive-accent)}.dot-neutral{background:var(--olive-border)}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.list li{padding:0;border:none}.list a{color:var(--olive-text);text-decoration:none;font-weight:500}.item-card{display:block;width:100%;text-align:left;background:var(--olive-surface);border:1px solid var(--olive-border);border-radius:var(--olive-radius-md);padding:16px;text-decoration:none;color:inherit}.item-card-title{font-size:15px;font-weight:700;margin:0 0 4px;display:flex;align-items:center;justify-content:space-between;gap:8px}.item-card-row{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--olive-muted);margin-top:6px}.meta{color:var(--olive-muted);font-size:13px;margin:4px 0}.table-scroll{overflow-x:auto;border:1px solid var(--olive-border);border-radius:var(--olive-radius-md)}.table{width:100%;border-collapse:collapse;background:var(--olive-surface)}.table th,.table td{padding:11px 14px;border-bottom:1px solid var(--olive-border);text-align:left;font-size:13px;white-space:nowrap}.table tr:last-child td{border-bottom:none}.table th{background:var(--olive-surface-soft);color:var(--olive-muted);font-weight:600;font-size:12px}.table tr.delayed-row{background:var(--olive-error-soft)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 20px;border:1px dashed var(--olive-border);border-radius:var(--olive-radius-lg);background:var(--olive-surface-soft)}.empty-state-icon{width:48px;height:48px;border-radius:999px;background:var(--olive-primary-soft);color:var(--olive-primary);display:flex;align-items:center;justify-content:center}.empty-state-title{font-weight:700;font-size:14px;margin:0}.empty-state-desc{font-size:13px;color:var(--olive-muted);margin:0;max-width:280px}.stage-progress{display:flex;align-items:center;margin-top:6px}.stage-step{display:flex;flex:1;align-items:center}.stage-step:last-child{flex:0}.stage-dot{width:26px;height:26px;border-radius:999px;border:1px solid var(--olive-border);color:var(--olive-muted);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;background:#fff}.stage-dot.done{border-color:var(--olive-primary);background:var(--olive-primary);color:#fff}.stage-line{flex:1;height:2px;background:var(--olive-border);margin:0 4px}.stage-line.done{background:var(--olive-primary)}.stage-labels{display:flex;justify-content:space-between;margin-top:6px;font-size:11px}.stage-labels span{color:var(--olive-muted)}.stage-labels span.done{color:var(--olive-primary);font-weight:700}.bell{position:relative;display:inline-flex}.bell-badge{position:absolute;top:2px;right:2px;background:var(--olive-accent);color:#fff;font-size:10px;border-radius:999px;min-width:15px;height:15px;display:flex;align-items:center;justify-content:center;font-weight:700}.notification-row{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;background:var(--olive-surface);padding:14px 16px;border-radius:var(--olive-radius-md);border:1px solid var(--olive-border)}.notification-row.unread{background:var(--olive-primary-soft);border-color:var(--olive-primary-soft)}.thread{display:flex;flex-direction:column;gap:10px}.thread-message{max-width:82%;padding:10px 14px;border-radius:var(--olive-radius-md);font-size:14px}.thread-message.customer{align-self:flex-start;background:var(--olive-sand-soft);border-bottom-left-radius:4px}.thread-message.staff{align-self:flex-end;background:var(--olive-primary-soft);border-bottom-right-radius:4px}.thread-meta{font-size:11px;color:var(--olive-muted);margin-bottom:3px;display:flex;gap:6px}.photo-grid{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}.photo-thumb{width:120px}.photo-thumb img,.photo-thumb-placeholder{width:120px;height:90px;object-fit:cover;border-radius:var(--olive-radius-sm);background:var(--olive-surface-soft);display:block}.photo-thumb input{width:100%;margin-top:4px;font-size:12px;padding:6px}.photo-thumb-button{display:block;background:none;padding:0;border:none;text-align:left;cursor:pointer}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#17252b80;display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}.modal{background:#fff;padding:20px;border-radius:var(--olive-radius-lg);max-width:90vw;max-height:90vh;overflow:auto}.modal-image{max-width:100%;max-height:70vh;display:block;border-radius:var(--olive-radius-sm)}.panel-link{display:block;text-decoration:none;color:inherit}.panel-link .panel{cursor:pointer;transition:border-color .15s}.panel-link:hover .panel{border-color:var(--olive-primary)}@media (max-width: 480px){main{padding:14px}.card{width:100%}}.workspace-page{width:100%;max-width:1180px;margin:0 auto;padding:10px 0 36px}.workspace-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.workspace-title-row h1{margin:4px 0 0;font-size:clamp(26px,3vw,36px);line-height:1.15;letter-spacing:-.045em;color:var(--olive-ink)}.workspace-subtitle{margin:8px 0 0;color:var(--olive-muted);font-size:14px}.workspace-kpis{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));gap:8px}.workspace-kpis>div{min-width:92px;border:1px solid var(--olive-border);border-radius:16px;background:var(--olive-surface);padding:12px 14px;box-shadow:0 8px 24px #17252b0a}.workspace-kpis strong{display:block;font-size:20px;line-height:1;color:var(--olive-primary)}.workspace-kpis span{display:block;margin-top:6px;color:var(--olive-muted);font-size:11px}.loading-card{border:1px solid var(--olive-border);border-radius:20px;background:var(--olive-surface);padding:32px;text-align:center;color:var(--olive-muted)}.focus-project{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,.8fr);overflow:hidden;margin-bottom:24px;border-radius:26px;background:linear-gradient(135deg,var(--olive-primary) 0%,#08798a 100%);color:#fff;box-shadow:0 18px 40px #0066792e}.focus-project-main{padding:28px 30px 26px}.focus-project-label{margin-bottom:8px;color:#9fc7cc;font-size:11px;font-weight:800;letter-spacing:.12em}.focus-project-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.focus-project-heading h2{margin:0;color:#fff;font-size:27px;letter-spacing:-.045em}.focus-project-heading p{margin:5px 0 0;color:#bdd0d3;font-size:13px}.focus-progress{max-width:520px;margin-top:22px}.focus-progress-head{display:flex;justify-content:space-between;margin-bottom:8px;font-size:12px;color:#c8d8da}.focus-progress-head strong{color:#fff;font-size:15px}.focus-project-note{margin:22px 0 0;color:#a9c1c4;font-size:13px}.focus-project-actions{display:flex;align-items:center;gap:16px;margin-top:24px;font-size:12px;color:#a9c1c4}.focus-project-actions a{display:inline-flex;align-items:center;gap:5px;color:#fff;font-weight:700;text-decoration:none}.focus-quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#ffffff12;border-left:1px solid rgba(255,255,255,.08)}.focus-quick-grid a{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-height:94px;padding:18px 20px;background:#ffffff06;color:#e9f0f1;text-decoration:none;transition:background .15s ease,color .15s ease}.focus-quick-grid a:hover{background:#ffffff14;color:#fff}.focus-quick-grid svg{color:#75b4bd}.focus-quick-grid span{font-size:12px;font-weight:700}.focus-quick-grid b{position:absolute;top:13px;right:14px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--olive-accent);color:#fff;font-size:10px;line-height:20px;text-align:center}.workspace-columns{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.workspace-section{border:1px solid var(--olive-border);border-radius:22px;background:var(--olive-surface);padding:20px;box-shadow:0 10px 28px #17252b0b}.workspace-section+.workspace-section{margin-top:16px}.workspace-section.compact{padding:18px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.section-heading h2{margin:2px 0 0;font-size:19px;letter-spacing:-.035em}.section-heading>span{color:var(--olive-muted);font-size:12px}.section-kicker{margin:0;color:var(--olive-primary);font-size:10px;font-weight:800;letter-spacing:.14em}.project-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workspace-project-card{position:relative;display:flex;min-height:110px;overflow:hidden;border:1px solid var(--olive-border);border-radius:18px;background:#fff;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.workspace-project-card:hover{border-color:#b8c9c7;box-shadow:0 10px 24px #17252b0f;transform:translateY(-1px)}.workspace-project-card.selected{border-color:var(--olive-primary);box-shadow:0 0 0 2px var(--olive-primary-soft)}.workspace-project-select{flex:1;min-width:0;padding:16px 46px 16px 16px;border:0;border-radius:0;background:transparent;color:inherit;text-align:left}.workspace-project-select:hover{opacity:1;background:var(--olive-surface-soft)}.workspace-project-select:active{transform:none}.workspace-project-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.workspace-project-customer{overflow:hidden;color:var(--olive-ink);font-size:14px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.workspace-project-select>strong{display:block;overflow:hidden;margin-bottom:7px;color:var(--olive-text);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.workspace-project-select>span{color:var(--olive-muted);font-size:11px}.workspace-project-open{position:absolute;top:50%;right:10px;display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:999px;color:var(--olive-primary);transform:translateY(-50%)}.workspace-project-open:hover{background:var(--olive-primary-soft)}.workspace-side{display:flex;flex-direction:column;gap:16px}.schedule-mini-list,.activity-mini-list{display:flex;flex-direction:column;gap:12px}.schedule-mini-item{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--olive-border)}.schedule-mini-item:last-child{padding-bottom:0;border-bottom:0}.schedule-mini-date{display:flex;min-height:44px;align-items:center;justify-content:center;border-radius:12px;background:var(--olive-primary-soft);color:var(--olive-primary);font-size:10px;font-weight:800;text-align:center}.schedule-mini-item strong,.activity-mini-item strong{color:var(--olive-text);font-size:12px}.schedule-mini-item p,.activity-mini-item p{margin:3px 0 0;color:var(--olive-muted);font-size:10px}.activity-mini-item{display:grid;grid-template-columns:9px 1fr;gap:10px;align-items:flex-start}.activity-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--olive-sand);box-shadow:0 0 0 4px var(--olive-sand-soft)}.activity-mini-item span :not(.activity-dot){display:inline-block;margin-top:4px;color:#8b999b;font-size:9px}.empty-copy{margin:0;color:var(--olive-muted);font-size:12px}.request-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.request-board-card{display:block;padding:18px;border:1px solid var(--olive-border);border-radius:18px;background:var(--olive-surface);color:inherit;text-decoration:none;box-shadow:0 8px 24px #17252b0a}.request-board-card:hover{border-color:var(--olive-primary)}.request-board-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.request-project-name{color:var(--olive-primary);font-size:11px;font-weight:800}.request-board-card>strong{display:block;color:var(--olive-ink);font-size:15px}.request-board-card>p{display:-webkit-box;overflow:hidden;margin:8px 0 14px;color:var(--olive-muted);font-size:12px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.request-board-meta{display:flex;justify-content:space-between;gap:10px;color:#889597;font-size:10px}.document-hub-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.document-hub-card{display:flex;gap:13px;padding:16px;border:1px solid var(--olive-border);border-radius:18px;background:#fff;color:inherit;text-decoration:none}.document-hub-card:hover{border-color:var(--olive-primary)}.document-hub-icon{display:flex;width:42px;height:42px;flex:0 0 42px;align-items:center;justify-content:center;border-radius:13px;background:var(--olive-sand-soft);color:#766e4f}.document-hub-body{min-width:0}.document-hub-body strong{display:block;overflow:hidden;color:var(--olive-text);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.document-hub-body p{margin:5px 0 3px;color:var(--olive-muted);font-size:11px}.document-hub-body span{color:#8d999b;font-size:10px}.project-overview .hero{padding:28px 30px;border-radius:26px}.project-overview .quick-actions{grid-template-columns:repeat(7,minmax(0,1fr));margin:18px 0 24px}.project-overview .quick-action{min-height:86px;justify-content:center;border-radius:17px}.project-overview .desktop-grid>div>h2{margin-top:22px;font-size:17px}.project-overview .panel{border-radius:17px;box-shadow:none}.project-overview .sidebar-stack .panel{border-left:3px solid var(--olive-primary-soft)}@media (max-width: 899px){main{padding:14px 14px 92px}.header{padding:11px 14px}.workspace-page{padding-top:4px}.workspace-title-row{display:block;margin-bottom:16px}.workspace-title-row h1{font-size:27px}.workspace-subtitle{font-size:12px}.workspace-kpis{margin-top:14px;grid-template-columns:repeat(3,1fr)}.workspace-kpis>div{min-width:0;padding:10px;border-radius:14px}.workspace-kpis strong{font-size:18px}.workspace-kpis span{font-size:9px}.focus-project{grid-template-columns:1fr;border-radius:22px}.focus-project-main{padding:22px 20px}.focus-project-heading h2{font-size:23px}.focus-quick-grid{grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.08);border-left:0}.focus-quick-grid a{min-height:78px;padding:12px;align-items:center;text-align:center}.workspace-columns{grid-template-columns:1fr}.workspace-side{order:-1;display:grid;grid-template-columns:1fr 1fr}.project-card-grid,.request-board,.document-hub-list{grid-template-columns:1fr}.workspace-section{padding:16px;border-radius:18px}.workspace-project-card{min-height:100px}.project-overview .quick-actions{grid-template-columns:repeat(4,1fr)}}@media (max-width: 520px){.brand{font-size:16px}.brand-mark{width:28px;height:28px}.workspace-side{grid-template-columns:1fr}.focus-quick-grid{grid-template-columns:repeat(3,1fr)}.focus-project-actions{justify-content:space-between}.project-overview .quick-actions{grid-template-columns:repeat(3,1fr)}}@media (min-width: 900px){.header{padding:13px max(24px,calc((100vw - 1180px)/2))}main{max-width:1220px;padding:28px 20px 48px}}.customer-home{width:100%;max-width:760px;margin:0 auto;padding:6px 0 34px}.customer-welcome{position:relative;overflow:hidden;margin-bottom:16px;padding:28px 28px 30px;border-radius:26px;background:linear-gradient(135deg,#004854,#006679 72%,#0b778a);color:#fff;box-shadow:0 18px 40px #00667929}.customer-welcome:after{content:"";position:absolute;right:-42px;bottom:-72px;width:180px;height:180px;border-radius:50%;background:#bfb58b29}.customer-tenant{position:relative;z-index:1;margin:0 0 12px;color:#c3e0e4;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.customer-welcome h1{position:relative;z-index:1;margin:0;font-size:30px;letter-spacing:-.05em}.customer-welcome>p:last-child{position:relative;z-index:1;margin:9px 0 0;color:#d8e9eb;font-size:13px}.customer-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.customer-summary-card{display:flex;min-height:112px;flex-direction:column;justify-content:center;border:1px solid var(--olive-border);border-radius:19px;background:#fff;padding:16px;box-shadow:0 8px 22px #17252b0a}.customer-summary-card>span{color:var(--olive-muted);font-size:11px;font-weight:700}.customer-summary-card>strong{margin:5px 0 3px;color:var(--olive-primary);font-size:26px;line-height:1}.customer-summary-card>small{color:#929d9f;font-size:10px}.customer-summary-card.attention>strong{color:var(--olive-accent)}.customer-primary-project{display:block;margin-bottom:16px;padding:22px;border:1px solid var(--olive-border);border-radius:22px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 10px 28px #17252b0d}.customer-primary-project:hover{border-color:var(--olive-primary)}.customer-primary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.customer-primary-head p{margin:0 0 5px;color:var(--olive-primary);font-size:10px;font-weight:800;letter-spacing:.14em}.customer-primary-head h2{margin:0;color:var(--olive-ink);font-size:20px;letter-spacing:-.035em}.customer-content-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:20px 0 14px;overflow:hidden;border:1px solid var(--olive-border);border-radius:15px}.customer-content-stats span{padding:12px 8px;border-right:1px solid var(--olive-border);color:var(--olive-muted);font-size:10px;text-align:center}.customer-content-stats span:last-child{border-right:0}.customer-content-stats b{display:block;margin-bottom:3px;color:var(--olive-text);font-size:17px}.customer-latest{display:flex;align-items:center;gap:5px;margin:0;color:var(--olive-muted);font-size:10px}.customer-open-link{display:flex;align-items:center;justify-content:flex-end;gap:3px;margin-top:14px;color:var(--olive-primary);font-size:12px;font-weight:800}.customer-other-projects{margin:18px 0;padding:18px;border:1px solid var(--olive-border);border-radius:20px;background:#fff}.customer-project-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-top:1px solid var(--olive-border);color:inherit;text-decoration:none}.customer-project-row:first-of-type{border-top:0}.customer-project-row strong{display:block;font-size:13px}.customer-project-row span{display:block;margin-top:3px;color:var(--olive-muted);font-size:10px}.customer-action-strip{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #f7cfc1;border-radius:18px;background:var(--olive-accent-soft);color:var(--olive-text)}.customer-action-strip>svg{flex:0 0 auto;color:var(--olive-accent)}.customer-action-strip strong{display:block;font-size:12px}.customer-action-strip p{margin:3px 0 0;color:var(--olive-muted);font-size:10px}@media (max-width: 520px){.customer-welcome{padding:24px 20px 26px;border-radius:22px}.customer-welcome h1{font-size:26px}.customer-summary-grid{gap:7px}.customer-summary-card{min-height:96px;padding:12px;border-radius:16px}.customer-summary-card>strong{font-size:22px}.customer-primary-project{padding:18px;border-radius:19px}}.portal-project-page{max-width:860px}.portal-project-page .hero{margin-bottom:12px;background:linear-gradient(135deg,var(--olive-primary) 0%,#08798a 100%)}.portal-ack-note{margin:0 0 14px;padding:12px 14px;border:1px solid var(--olive-sand);border-radius:14px;background:var(--olive-sand-soft);color:var(--olive-muted);font-size:12px;line-height:1.55}.portal-section-nav{position:sticky;top:67px;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:16px;padding:6px;border:1px solid var(--olive-border);border-radius:16px;background:#fffffff5;box-shadow:0 8px 24px #17252b0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portal-section-nav a{display:flex;min-height:38px;align-items:center;justify-content:center;border-radius:11px;color:var(--olive-muted);font-size:12px;font-weight:700;text-decoration:none}.portal-section-nav a:hover,.portal-section-nav a:focus-visible{background:var(--olive-primary-soft);color:var(--olive-primary)}.portal-summary-section,.portal-content-section{margin:14px 0;padding:20px;border:1px solid var(--olive-border);border-radius:20px;background:var(--olive-surface);box-shadow:0 10px 28px #17252b0b}.portal-summary-section>h2,.portal-content-section>h2,.portal-interaction-section h2{margin:0 0 14px;color:var(--olive-ink);font-size:18px;letter-spacing:-.03em}.portal-project-page .table-scroll{border-radius:16px;box-shadow:none}.portal-project-page .photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.portal-project-page .photo-thumb{width:auto;padding:10px;border:1px solid var(--olive-border);border-radius:16px;background:var(--olive-surface-soft)}.portal-project-page .photo-thumb img,.portal-project-page .photo-thumb-placeholder{width:100%;height:120px}.portal-interaction-section>div+div{margin-top:22px;padding-top:22px;border-top:1px solid var(--olive-border)}.header{border-bottom:0;box-shadow:0 1px #00667914}.header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--olive-sand) 0 28%,var(--olive-accent) 28% 54%,var(--olive-primary) 54% 100%)}.workspace-kpis>div:nth-child(1){background:var(--olive-primary-soft);border-color:#c8e1e4}.workspace-kpis>div:nth-child(1) strong{color:var(--olive-primary)}.workspace-kpis>div:nth-child(2){background:var(--olive-accent-soft);border-color:#f7cfc1}.workspace-kpis>div:nth-child(2) strong{color:var(--olive-accent)}.workspace-kpis>div:nth-child(3){background:var(--olive-sand-soft);border-color:#e4ddc2}.workspace-kpis>div:nth-child(3) strong{color:#716846}.focus-project{position:relative;background:linear-gradient(135deg,#006679,#08798a 68%,#0b8798);box-shadow:0 18px 42px #00667933}.focus-project:before{content:"";position:absolute;z-index:2;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--olive-sand) 0 32%,var(--olive-accent) 32% 66%,rgba(255,255,255,.34) 66% 100%)}.focus-project-label{color:#e3dcc2}.focus-project-heading p,.focus-project-note,.focus-project-actions{color:#d5eaed}.focus-quick-grid svg{color:#c8edf1}.focus-quick-grid a:nth-child(3n+2) svg{color:#ff9b7b}.focus-quick-grid a:nth-child(3n) svg{color:#ddd4ad}.focus-quick-grid a:hover{background:#ffffff1c}.quick-action{position:relative;overflow:hidden;box-shadow:0 6px 18px #17252b09}.quick-action:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--olive-primary)}.quick-action:nth-child(3n+2):before{background:var(--olive-accent)}.quick-action:nth-child(3n):before{background:var(--olive-sand)}.quick-action:nth-child(3n+2) svg{color:var(--olive-accent)}.quick-action:nth-child(3n) svg{color:#8c825d}.quick-action:nth-child(3n+2):hover{border-color:#f4b39e;background:var(--olive-accent-soft)}.quick-action:nth-child(3n):hover{border-color:#d9cfaa;background:var(--olive-sand-soft)}.workspace-project-card{position:relative}.workspace-project-card:before{content:"";position:absolute;z-index:2;top:14px;bottom:14px;left:0;width:3px;border-radius:0 3px 3px 0;background:var(--olive-primary);opacity:.55}.workspace-project-card:nth-child(3n+2):before{background:var(--olive-accent)}.workspace-project-card:nth-child(3n):before{background:var(--olive-sand)}.workspace-project-card.selected:before{width:4px;opacity:1}.workspace-side .workspace-section:nth-child(1){border-top:3px solid var(--olive-sand)}.workspace-side .workspace-section:nth-child(2){border-top:3px solid var(--olive-accent)}.workspace-side .workspace-section:nth-child(2) .section-kicker{color:var(--olive-accent)}.project-overview .action-row>button:first-child{background:var(--olive-accent);box-shadow:0 8px 20px #ec51222e}.project-overview .sidebar-stack .panel:nth-child(1){border-top:3px solid var(--olive-primary);border-left-color:var(--olive-primary-soft)}.project-overview .sidebar-stack .panel:nth-child(2){border-top:3px solid var(--olive-accent);border-left-color:var(--olive-accent-soft)}.project-overview .sidebar-stack .panel:nth-child(3){border-top:3px solid var(--olive-sand);border-left-color:var(--olive-sand-soft)}.project-overview .sidebar-stack .panel:nth-child(4){border-top:3px solid var(--olive-primary)}.customer-welcome,.portal-project-page .hero{background:linear-gradient(135deg,#006679,#08798a 72%,#0b8798)}.customer-welcome:before,.portal-project-page .hero:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--olive-sand) 0 32%,var(--olive-accent) 32% 66%,rgba(255,255,255,.32) 66% 100%)}.portal-project-page .hero{position:relative;overflow:hidden}.customer-summary-card:nth-child(1){background:var(--olive-primary-soft);border-color:#c8e1e4}.customer-summary-card:nth-child(2){background:var(--olive-accent-soft);border-color:#f7cfc1}.customer-summary-card:nth-child(3){background:var(--olive-sand-soft);border-color:#e4ddc2}.customer-summary-card:nth-child(3)>strong{color:#716846}.customer-primary-project{border-left:4px solid var(--olive-sand)}.customer-action-strip{border-left:4px solid var(--olive-accent)}#portal-progress{border-top:3px solid var(--olive-primary)}#portal-photos{border-top:3px solid var(--olive-accent)}#portal-documents{border-top:3px solid var(--olive-sand)}#portal-requests{border-top:3px solid var(--olive-accent)}#portal-history{border-top:3px solid var(--olive-primary)}.request-board-card{position:relative;overflow:hidden}.request-board-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--olive-accent)}.document-hub-card{border-top:3px solid var(--olive-sand)}@media (max-width: 520px){.header:after{height:2px}.focus-project:before,.customer-welcome:before,.portal-project-page .hero:before{height:4px}}.subpage-shell{max-width:920px}.subpage-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:14px;color:var(--olive-muted);font-size:12px;font-weight:700;text-decoration:none}.subpage-back:hover{color:var(--olive-primary)}.subpage-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.subpage-heading h1{margin:3px 0 0;font-size:clamp(24px,3vw,32px);letter-spacing:-.045em}.subpage-desc{margin:8px 0 0;color:var(--olive-muted);font-size:13px;line-height:1.55}.subpage-count{flex:0 0 auto;min-width:78px;padding:9px 12px;border:1px solid #c8e1e4;border-radius:14px;background:var(--olive-primary-soft);color:var(--olive-primary);font-size:12px;font-weight:800;text-align:center}.subpage-count.accent{border-color:#f7cfc1;background:var(--olive-accent-soft);color:var(--olive-accent)}.subpage-actions{margin:0 0 16px}.subpage-actions>button:first-child,.accent-button{background:var(--olive-accent);box-shadow:0 8px 20px #ec512229}.subpage-toolbar{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(240px,1.3fr);gap:10px;margin:14px 0 18px;padding:12px;border:1px solid var(--olive-border);border-radius:16px;background:var(--olive-surface);box-shadow:0 8px 24px #17252b09}.subpage-toolbar select,.subpage-toolbar input{margin:0}.subpage-shell>.empty-state{min-height:260px;justify-content:center;border-style:solid;border-color:var(--olive-border);background:linear-gradient(135deg,#00667909,#bfb58b12),var(--olive-surface)}.subpage-shell .empty-state-icon{width:54px;height:54px}.subpage-shell .panel{border-radius:18px;box-shadow:0 8px 24px #17252b0a}.subpage-shell .table-scroll,.subpage-shell .item-card{border-radius:18px;box-shadow:0 8px 24px #17252b09}.subpage-shell .item-card:hover{border-color:#bad8dc;transform:translateY(-1px)}.button-like{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 14px;border-radius:10px;font-size:12px;font-weight:800;text-decoration:none}.button-like.secondary{color:var(--olive-primary);border:1px solid #bfd9dd;background:var(--olive-primary-soft)}.share-guide-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:14px;padding:16px 18px;border:1px solid #e4ddc2;border-radius:18px;background:linear-gradient(135deg,var(--olive-sand-soft),#fff)}.share-guide-card>svg{color:#8b8058}.share-guide-card strong{display:block;font-size:14px}.share-guide-card p{margin:4px 0 0;color:var(--olive-muted);font-size:12px}.segmented-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:16px;padding:5px;border-radius:14px;background:var(--olive-surface-soft)}.segmented-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:transparent;color:var(--olive-muted);box-shadow:none}.segmented-tabs button:nth-child(2) svg{color:var(--olive-accent)}.segmented-tabs button:nth-child(3) svg{color:#8c825d}.segmented-tabs button.active{background:var(--olive-surface);color:var(--olive-primary);box-shadow:0 4px 14px #17252b12}.segmented-tabs button.active:nth-child(2){color:var(--olive-accent)}.segmented-tabs button.active:nth-child(3){color:#716846}.subpage-shell .form-grid+textarea,.subpage-shell .panel textarea{background:#fbfcfb}.subpage-shell h2{letter-spacing:-.03em}.subpage-shell .table th{background:linear-gradient(180deg,#f4f7f6,#edf2f0)}.subpage-shell .delayed-row{background:#fff5f1}.subpage-shell .list>li>.item-card,.subpage-shell .list>li>.panel{position:relative;overflow:hidden}.subpage-shell .list>li>.item-card:before,.subpage-shell .list>li>.panel:before{content:"";position:absolute;inset:14px auto 14px 0;width:3px;border-radius:0 3px 3px 0;background:var(--olive-accent)}@media (max-width: 640px){.subpage-heading{gap:10px}.subpage-count{min-width:auto}.subpage-toolbar{grid-template-columns:1fr}.share-guide-card{grid-template-columns:auto 1fr}.share-guide-card .button-like{grid-column:1 / -1}}.photo-page,.schedule-page{max-width:860px}.photo-filter-card{margin-bottom:18px;padding:16px;border:1px solid var(--olive-border);border-radius:18px;background:var(--olive-surface);box-shadow:0 8px 24px #17252b0a}.photo-filter-title,.work-date-strip-head,.site-log-section-title,.section-title-row{display:flex;align-items:center;gap:8px}.photo-filter-title{margin-bottom:12px;color:var(--olive-ink)}.photo-filter-title svg{color:var(--olive-primary)}.photo-filter-title strong{font-size:14px}.filter-reset{margin-left:auto;min-height:32px;padding:6px 10px;background:var(--olive-surface-soft);color:var(--olive-muted);box-shadow:none;font-size:11px}.photo-date-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:8px}.photo-date-row label,.schedule-compact-form label,.site-log-basic-grid label{display:grid;gap:6px}.photo-date-row label>span,.schedule-compact-form label>span,.site-log-basic-grid label>span{color:var(--olive-muted);font-size:11px;font-weight:700}.photo-date-row input,.photo-filter-row select{min-height:42px;margin:0}.date-separator{padding-bottom:12px;color:var(--olive-muted);font-size:12px}.photo-filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.photo-filter-row select:only-child{grid-column:1 / -1}.photo-loading{padding:36px 16px;text-align:center;color:var(--olive-muted);font-size:13px}.photo-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.photo-gallery-grid .photo-thumb{padding:8px;border-radius:14px}.photo-gallery-grid .photo-thumb img,.photo-gallery-grid .photo-thumb-placeholder{height:132px;border-radius:10px}.photo-thumb-meta{display:flex;justify-content:space-between;gap:6px;padding:7px 2px 1px;color:var(--olive-muted);font-size:10px}.schedule-summary-strip{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:1px;overflow:hidden;margin-bottom:14px;border:1px solid var(--olive-border);border-radius:16px;background:var(--olive-border)}.schedule-summary-strip>div{display:grid;gap:4px;min-height:68px;padding:12px 14px;background:var(--olive-surface)}.schedule-summary-strip span{color:var(--olive-muted);font-size:10px;font-weight:700}.schedule-summary-strip strong{color:var(--olive-ink);font-size:13px}.schedule-summary-strip .warning strong{color:var(--olive-accent)}.schedule-calendar-card{margin-bottom:16px;padding:16px;border:1px solid var(--olive-border);border-radius:20px;background:var(--olive-surface);box-shadow:0 10px 28px #17252b0b}.calendar-header{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin-bottom:10px}.calendar-header strong{text-align:center;font-size:16px}.calendar-header button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--olive-border);border-radius:10px;background:#fff;color:var(--olive-ink);box-shadow:none;font-size:22px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays{margin-bottom:4px}.calendar-weekdays span{padding:6px 0;text-align:center;color:var(--olive-muted);font-size:10px;font-weight:700}.calendar-weekdays .sun{color:var(--olive-accent)}.calendar-weekdays .sat{color:var(--olive-primary)}.calendar-cell{position:relative;display:grid;place-items:center;align-content:center;min-height:58px;border-top:1px solid #eef1ef;color:var(--olive-ink)}.calendar-cell b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:12px;font-weight:700}.calendar-cell.today b{background:var(--olive-primary);color:#fff}.calendar-cell.empty{background:#fbfcfb}.calendar-dots{display:flex;gap:3px;height:7px}.calendar-dots i,.calendar-legend i{width:6px;height:6px;border-radius:50%;background:var(--olive-sand)}.calendar-dots i.active,.calendar-legend i.active{background:var(--olive-primary)}.calendar-dots i.delayed,.calendar-legend i.delayed{background:var(--olive-accent)}.calendar-dots i.done,.calendar-legend i.done{background:#8c825d}.calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;color:var(--olive-muted);font-size:10px}.calendar-legend span{display:inline-flex;align-items:center;gap:5px}.calendar-legend em{margin-left:auto;color:var(--olive-primary);font-style:normal;font-weight:800}.schedule-editor-card,.schedule-add-card,.schedule-list-section{margin-top:16px;padding:16px;border:1px solid var(--olive-border);border-radius:18px;background:var(--olive-surface);box-shadow:0 8px 24px #17252b09}.schedule-editor-card h2,.schedule-add-card h2,.schedule-list-section h2{margin:0 0 12px;font-size:17px}.schedule-compact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.schedule-compact-form input,.schedule-compact-form select,.schedule-compact-form textarea{min-height:42px;margin:0}.schedule-compact-form .span-2{grid-column:1 / -1}.schedule-compact-form button.span-2{width:100%;margin-top:2px}.section-title-row{justify-content:space-between}.section-title-row>span{color:var(--olive-muted);font-size:11px}.schedule-mobile-list{display:none}.schedule-mobile-card{padding:14px;border:1px solid var(--olive-border);border-radius:15px;background:#fff}.schedule-mobile-card+.schedule-mobile-card{margin-top:8px}.schedule-mobile-card.delayed{border-left:4px solid var(--olive-accent)}.schedule-mobile-card-head{display:flex;justify-content:space-between;gap:12px}.schedule-mobile-card-head>div{display:grid;gap:3px}.schedule-mobile-card-head span,.schedule-mobile-card p{color:var(--olive-muted);font-size:10px}.schedule-mobile-card-head strong{font-size:13px}.schedule-mobile-card-head>b{color:var(--olive-primary);font-size:13px}.schedule-mobile-card p{margin:7px 0}.schedule-mobile-controls{display:grid;grid-template-columns:minmax(0,1fr) 72px auto;gap:6px;align-items:center}.schedule-mobile-controls select,.schedule-mobile-controls input{min-height:36px;margin:0;padding:7px 9px;font-size:11px}.work-date-strip{margin-bottom:10px;padding:14px;border:1px solid var(--olive-border);border-radius:18px;background:var(--olive-surface);box-shadow:0 8px 24px #17252b09}.work-date-strip-head{justify-content:space-between;margin-bottom:10px}.work-date-strip-head>div{display:flex;align-items:center;gap:7px}.work-date-strip-head svg{color:var(--olive-primary)}.work-date-strip-head strong{font-size:13px}.work-date-strip-head button{padding:5px 8px;font-size:11px}.work-date-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.work-date-days button{display:grid;gap:3px;justify-items:center;min-height:54px;padding:7px 2px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--olive-ink);box-shadow:none}.work-date-days button span{color:var(--olive-muted);font-size:9px}.work-date-days button strong{font-size:13px}.work-date-days button:first-child span{color:var(--olive-accent)}.work-date-days button:last-child span{color:var(--olive-primary)}.work-date-days button.selected{background:var(--olive-primary);color:#fff;box-shadow:0 6px 14px #0066792e}.work-date-days button.selected span{color:#d9f1f4}.work-date-strip>p{margin:9px 0 0;text-align:center;color:var(--olive-muted);font-size:11px}.site-log-actions{justify-content:flex-end}.site-log-actions button{min-height:38px;padding:8px 13px;font-size:11px}.site-log-editor{display:grid;gap:10px}.site-log-card{padding:14px;border:1px solid var(--olive-border);border-radius:17px;background:var(--olive-surface);box-shadow:0 7px 20px #17252b08}.site-log-section-title{margin-bottom:10px;color:var(--olive-ink)}.site-log-section-title svg{color:var(--olive-primary)}.site-log-section-title strong{font-size:13px}.site-log-section-title em{color:var(--olive-accent);font-style:normal}.site-log-section-title.accent svg{color:var(--olive-accent)}.site-log-section-title.split{justify-content:space-between}.site-log-section-title.split>div{display:flex;align-items:center;gap:8px}.site-log-basic-grid{display:grid;grid-template-columns:1fr 1.3fr .8fr;gap:8px}.site-log-basic-grid input,.site-log-basic-grid select,.site-log-card textarea{min-height:40px;margin:0}.site-log-main-textarea{min-height:94px!important}.site-log-process-chips{display:flex;flex-wrap:wrap;gap:7px}.site-log-process-chips label{cursor:pointer}.site-log-process-chips input{display:none}.site-log-process-chips span{display:inline-flex;min-height:34px;align-items:center;padding:7px 11px;border:1px solid var(--olive-border);border-radius:999px;background:var(--olive-surface-soft);color:var(--olive-muted);font-size:11px}.site-log-process-chips label.selected span{border-color:#afd3d8;background:var(--olive-primary-soft);color:var(--olive-primary);font-weight:800}.site-log-helper{margin:0;color:var(--olive-muted);font-size:11px;line-height:1.55}.secondary-button.compact{min-height:32px;padding:6px 9px;border:1px solid #c8e1e4;background:var(--olive-primary-soft);color:var(--olive-primary);box-shadow:none;font-size:10px}.site-log-inline-empty{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:12px;background:var(--olive-surface-soft);color:var(--olive-muted);font-size:11px}.site-log-inline-empty svg{color:var(--olive-primary)}.crew-list{display:grid;gap:7px}.crew-row{display:grid;grid-template-columns:minmax(0,1fr) 80px auto;gap:7px;align-items:center}.crew-row input{min-height:38px;margin:0}.crew-count{text-align:center}.site-log-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.site-log-photo-guide{background:linear-gradient(135deg,var(--olive-primary-soft),#fff)}.site-log-photo-guide p{margin:0;color:var(--olive-muted);font-size:11px;line-height:1.55}.site-log-save{width:100%;min-height:44px;background:var(--olive-accent);box-shadow:0 8px 20px #ec51222b}@media (max-width: 720px){.page.subpage-shell{width:100%;padding:18px 14px 88px}.subpage-back{margin-bottom:10px;font-size:11px}.subpage-heading{margin-bottom:13px}.subpage-heading h1{font-size:22px;line-height:1.2}.page-eyebrow{font-size:9px;letter-spacing:.12em}.subpage-desc{margin-top:5px;font-size:11px;line-height:1.45}.subpage-count{padding:7px 9px;border-radius:12px;font-size:10px}.photo-filter-card,.schedule-calendar-card,.schedule-editor-card,.schedule-add-card,.schedule-list-section,.work-date-strip,.site-log-card{border-radius:15px}.photo-filter-card{padding:13px}.photo-date-row{grid-template-columns:1fr 18px 1fr;gap:4px}.photo-date-row label>span{display:none}.photo-date-row input,.photo-filter-row select{min-height:39px;padding:8px 9px;font-size:11px}.date-separator{padding-bottom:11px;text-align:center}.photo-filter-row{grid-template-columns:1fr;margin-top:7px}.photo-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.photo-gallery-grid .photo-thumb img,.photo-gallery-grid .photo-thumb-placeholder{height:118px}.schedule-summary-strip{grid-template-columns:repeat(2,1fr);border-radius:14px}.schedule-summary-strip>div{min-height:58px;padding:9px 10px}.schedule-summary-strip>div:first-child{grid-column:1 / -1}.schedule-summary-strip span{font-size:9px}.schedule-summary-strip strong{font-size:11px}.schedule-calendar-card{padding:12px 10px}.calendar-header strong{font-size:14px}.calendar-cell{min-height:43px}.calendar-cell b{width:26px;height:26px;font-size:11px}.calendar-legend{gap:8px;font-size:9px}.schedule-editor-card,.schedule-add-card,.schedule-list-section{padding:13px}.schedule-compact-form{grid-template-columns:1fr;gap:8px}.schedule-compact-form .span-2{grid-column:auto}.schedule-compact-form label>span{font-size:10px}.schedule-compact-form input,.schedule-compact-form select,.schedule-compact-form textarea{min-height:39px;font-size:11px}.schedule-table-desktop{display:none}.schedule-mobile-list{display:block}.site-log-actions{margin-bottom:10px}.work-date-strip{padding:12px 9px}.work-date-days{gap:2px}.work-date-days button{min-height:49px;border-radius:10px}.work-date-days button strong{font-size:12px}.site-log-card{padding:12px}.site-log-basic-grid{grid-template-columns:1fr 1fr}.site-log-basic-grid label:nth-child(3){grid-column:1 / -1}.site-log-basic-grid label>span{font-size:9px}.site-log-basic-grid input,.site-log-basic-grid select{min-height:38px;font-size:11px}.site-log-section-title{margin-bottom:8px}.site-log-section-title strong{font-size:12px}.site-log-card textarea{padding:10px;font-size:11px;line-height:1.45}.site-log-main-textarea{min-height:82px!important}.site-log-two-col{grid-template-columns:1fr}.crew-row{grid-template-columns:minmax(0,1fr) 66px auto}.crew-row input{font-size:11px}.site-log-save{min-height:42px;font-size:12px}}@media (min-width: 721px){.schedule-mobile-list{display:none}}.login-page{min-height:calc(100vh - 70px);padding:28px 16px}.login-card{width:min(430px,100%);padding:26px;border:1px solid var(--olive-border);border-radius:24px;background:var(--olive-surface);box-shadow:0 18px 50px #17252b14}.login-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px}.login-brand p{margin:0;color:var(--olive-primary);font-size:20px;font-weight:900;letter-spacing:-.03em}.login-brand-mark{width:42px;height:42px;border-radius:13px;font-size:18px}.login-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border-radius:14px;background:var(--olive-surface-soft)}.login-mode-tabs button{min-height:40px;padding:8px 10px;background:transparent;color:var(--olive-muted);box-shadow:none;font-size:12px}.login-mode-tabs button.active{background:#fff;color:var(--olive-primary);box-shadow:0 4px 14px #17252b12}.login-mode-tabs button:last-child.active{color:var(--olive-accent)}.login-copy{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin:22px 0 18px}.login-copy-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--olive-primary-soft);color:var(--olive-primary)}.login-copy h1{margin:0;font-size:21px;letter-spacing:-.04em}.login-copy p{margin:5px 0 0;color:var(--olive-muted);font-size:11px;line-height:1.5}.login-form{display:grid;gap:13px}.login-form label{display:grid;gap:7px;color:var(--olive-ink);font-size:11px;font-weight:800}.login-input-wrap{position:relative;display:block}.login-input-wrap>svg{position:absolute;z-index:2;top:50%;left:13px;color:var(--olive-muted);transform:translateY(-50%)}.login-input-wrap input{min-height:46px;margin:0;padding-left:39px}.login-submit{display:flex;width:100%;min-height:46px;align-items:center;justify-content:center;gap:7px;margin-top:2px}.login-help{margin:16px 0 0;text-align:center;color:var(--olive-muted);font-size:10px;line-height:1.45}.login-error{margin:0}.customer-account-card{margin-bottom:14px;padding:17px;border:1px solid #c8e1e4;border-radius:19px;background:linear-gradient(135deg,var(--olive-primary-soft),#fff 70%);box-shadow:0 8px 24px #17252b09}.customer-account-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}.customer-account-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#fff;color:var(--olive-primary);box-shadow:0 4px 12px #00667914}.customer-account-head strong{display:block;font-size:14px}.customer-account-head p{margin:4px 0 0;color:var(--olive-muted);font-size:10px;line-height:1.45}.account-ready{padding:6px 9px;border-radius:999px;background:#fff;color:var(--olive-primary);font-size:10px;font-weight:900}.customer-account-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}.customer-account-info>div{display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(0,102,121,.12);border-radius:12px;background:#fffc}.customer-account-info span,.customer-account-form label>span{color:var(--olive-muted);font-size:9px;font-weight:700}.customer-account-info strong{font-size:12px}.customer-account-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.secondary-button{min-height:38px;padding:8px 12px;border:1px solid #bfd9dd;background:var(--olive-primary-soft);color:var(--olive-primary);box-shadow:none}.customer-account-empty{margin-top:13px;padding:12px;border-radius:13px;background:#ffffffc7}.customer-account-empty strong{font-size:12px}.customer-account-empty p{margin:5px 0 0;color:var(--olive-muted);font-size:10px}.customer-account-issue{margin-top:10px}.customer-account-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(0,102,121,.12)}.customer-account-form label{display:grid;gap:5px}.customer-account-form input{min-height:39px;margin:0;font-size:11px}.customer-account-form button{grid-column:1 / -1;min-height:39px}.customer-account-form.compact{grid-template-columns:minmax(0,1fr) auto;align-items:end}.customer-account-form.compact button{grid-column:auto}.customer-project-detail{max-width:880px}.portal-preview-banner{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;margin-bottom:10px;padding:10px 13px;border:1px solid #e4ddc2;border-radius:13px;background:var(--olive-sand-soft)}.portal-preview-banner strong{color:#716846;font-size:11px}.portal-preview-banner span{color:var(--olive-muted);font-size:10px}.customer-project-hero{min-height:142px;padding:24px 26px}.portal-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:13px}.portal-section-heading p{margin:0 0 3px;color:var(--olive-primary);font-size:9px;font-weight:900}.portal-section-heading h2{margin:0;font-size:18px}.portal-section-heading>span{color:var(--olive-muted);font-size:10px}.portal-finance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-finance-card{overflow:hidden;border:1px solid var(--olive-border);border-radius:15px;background:#fff}.portal-finance-head{display:flex;justify-content:space-between;padding:11px 12px;background:var(--olive-surface-soft)}.portal-finance-head strong{font-size:12px}.portal-finance-head span{color:var(--olive-muted);font-size:9px}.portal-finance-card>p{margin:0;padding:14px 12px;color:var(--olive-muted);font-size:10px}.portal-finance-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px;border-top:1px solid #eef1ef}.portal-finance-list>div>div{display:grid;gap:2px}.portal-finance-list strong{font-size:11px}.portal-finance-list span{color:var(--olive-muted);font-size:9px}.portal-finance-list b{color:var(--olive-primary);font-size:11px}.portal-progress-list{display:grid;gap:9px}.portal-progress-card{padding:13px;border:1px solid var(--olive-border);border-radius:14px;background:#fff}.portal-progress-head{display:flex;justify-content:space-between;gap:12px}.portal-progress-head>div{display:grid;gap:3px}.portal-progress-head strong{font-size:12px}.portal-progress-head span{color:var(--olive-muted);font-size:9px}.portal-progress-head b{color:var(--olive-primary);font-size:13px}.portal-progress-bar{overflow:hidden;height:6px;margin:10px 0;border-radius:999px;background:#edf2f0}.portal-progress-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--olive-primary),#0b8798)}.portal-progress-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px}.portal-progress-foot>span{color:var(--olive-muted);font-size:9px}.portal-ack-action{display:flex;flex-wrap:wrap;align-items:center;gap:5px;color:var(--olive-muted);font-size:9px}.portal-ack-action button{min-height:28px;padding:5px 8px;border:1px solid #bfd9dd;background:var(--olive-primary-soft);color:var(--olive-primary);box-shadow:none;font-size:9px}.portal-ack-state{margin:6px 0 0;color:var(--olive-muted);font-size:9px}.portal-ack-state.complete{color:var(--olive-primary)}.portal-photo-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:9px}.portal-photo-card{width:auto;padding:8px}.portal-photo-card img,.portal-photo-card .photo-thumb-placeholder{width:100%;height:128px}.portal-photo-date{margin:6px 0 0;color:var(--olive-muted);font-size:9px}.portal-document-list{display:grid;gap:8px}.portal-document-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--olive-border);border-radius:14px;background:#fff}.portal-document-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--olive-sand-soft);color:#8c825d}.portal-document-main{min-width:0}.portal-document-main>strong{display:block;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.portal-document-main>p,.portal-document-main>span{margin:3px 0 0;color:var(--olive-muted);font-size:9px}.portal-preview-only{display:flex;gap:10px;align-items:center;padding:13px;border-radius:13px;background:var(--olive-surface-soft)}.portal-preview-only svg{color:var(--olive-accent)}.portal-preview-only strong{display:block;font-size:11px}.portal-preview-only p{margin:3px 0 0;color:var(--olive-muted);font-size:9px}.portal-timeline-list{display:grid;gap:0}.portal-timeline-list article{display:grid;grid-template-columns:12px 1fr;gap:8px;padding:9px 0}.portal-timeline-list article>i{position:relative;width:8px;height:8px;margin-top:4px;border:2px solid var(--olive-primary);border-radius:50%;background:#fff}.portal-timeline-list article>div{display:grid;gap:2px}.portal-timeline-list strong{font-size:11px}.portal-timeline-list p{margin:0;color:var(--olive-muted);font-size:9px}.portal-timeline-list span{color:var(--olive-muted);font-size:8px}@media (max-width: 640px){.login-card{padding:22px 18px;border-radius:20px}.login-copy h1{font-size:19px}.login-mode-tabs button{font-size:11px}.customer-account-head{grid-template-columns:auto minmax(0,1fr)}.account-ready{grid-column:1 / -1;justify-self:start}.customer-account-info,.customer-account-form,.customer-account-form.compact{grid-template-columns:1fr}.customer-account-form button,.customer-account-form.compact button{grid-column:auto}.customer-project-hero{min-height:120px;padding:20px 18px}.portal-finance-grid{grid-template-columns:1fr}.portal-project-page .portal-summary-section,.portal-project-page .portal-content-section{padding:14px;border-radius:15px}.portal-section-nav{top:64px;gap:3px;padding:4px;border-radius:13px}.portal-section-nav a{min-height:34px;padding:4px 2px;font-size:10px}.portal-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-document-card{grid-template-columns:auto minmax(0,1fr)}.portal-document-card>button{grid-column:1 / -1;justify-self:stretch}}
