:root{--background:#f7f8fa;--foreground:#1a1d23;--card:#fff;--border:#e3e6ea;--primary:#2563eb;--primary-hover:#1d4ed8;--danger:#dc2626;--muted:#6b7280}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}*{box-sizing:border-box}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0 0 12px}p{margin:0 0 8px}button{background:var(--primary);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s}button:hover{background:var(--primary-hover)}button:disabled{cursor:not-allowed;background:#c7ccd1}button.secondary{color:var(--foreground);border:1px solid var(--border);background:0 0}button.secondary:hover{background:var(--border)}button.danger{background:var(--danger)}a.secondary{border:1px solid var(--border);color:var(--foreground);cursor:pointer;background:0 0;border-radius:8px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s;display:inline-block}a.secondary:hover{background:var(--border)}input,textarea,select{border:1px solid var(--border);background:var(--card);color:var(--foreground);border-radius:8px;padding:9px 12px;font-family:inherit;font-size:14px}input:focus,textarea:focus,select:focus{outline:2px solid var(--primary);outline-offset:-1px}.page{width:100%;max-width:760px;margin:32px auto;padding:0 20px 64px}.wide-page{max-width:1120px}.section-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.section-header.compact{margin-bottom:12px}.section-spacing{margin-top:32px}.eyebrow,.label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.form-stack{flex-direction:column;gap:20px;margin-bottom:28px;display:flex}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.field{flex-direction:column;gap:6px;font-size:13px;font-weight:650;display:flex}.field-full{grid-column:1/-1}.inline-field{min-width:170px}.header-actions{align-items:flex-end;gap:12px;display:flex}.form-actions{justify-content:flex-end;display:flex}.project-grid,.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-card{transition:border-color .15s,transform .15s;display:block}.project-card:hover{border-color:var(--primary);transform:translateY(-1px)}.project-meta{border-top:1px solid var(--border);justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;font-size:13px;display:flex}.status-pill,.priority{text-transform:capitalize;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:750}.status-pill{color:#31558d;background:#e8eef9}.status-active{color:#166534;background:#dcfce7}.status-completed{color:#1e40af;background:#dbeafe}.status-on_hold{color:#92400e;background:#fef3c7}.priority-low{color:#59616c;background:#f1f2f4}.priority-normal{color:#31558d;background:#e8eef9}.priority-high{color:#9a3412;background:#ffedd5}.priority-critical{color:#991b1b;background:#fee2e2}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0;display:grid}.stat-card{border:1px solid var(--border);background:var(--card);border-radius:12px;flex-direction:column;gap:4px;padding:18px;display:flex}.stat-card strong{font-size:24px}.stat-card span{color:var(--muted);font-size:13px}.project-overview,.review-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}.project-overview>div,.review-summary>div{flex-direction:column;gap:3px;display:flex}.overview-scope{border-top:1px solid var(--border);grid-column:1/-1;padding-top:16px}.task-table{flex-direction:column;gap:8px;display:flex}.detailed-task-row{gap:20px}.task-title-line{align-items:center;gap:8px;margin-bottom:5px;display:flex}.task-row-right{white-space:nowrap;align-items:center;gap:16px;font-size:13px;display:flex}.empty-state{color:var(--muted);text-align:center;border:1px dashed #b7bec8;border-radius:12px;padding:28px}.error-message{color:var(--danger);margin:16px 0}.back-link{color:var(--primary);margin-bottom:20px;font-weight:650;display:inline-block}.review-actions{border-color:#93c5fd;justify-content:space-between;align-items:center;gap:20px;display:flex}.review-actions>div:last-child{gap:8px;display:flex}.photo-card{flex-direction:column;gap:8px;padding:12px;display:flex}.photo-preview{background-color:#edf0f4;background-position:50%;background-size:cover;border-radius:8px;height:220px}.data-table{border:1px solid var(--border);background:var(--card);border-radius:12px;overflow:hidden}.data-row{border-top:1px solid var(--border);grid-template-columns:1fr 1.4fr 1.4fr .6fr .6fr;align-items:center;gap:12px;padding:12px 16px;font-size:13px;display:grid}.worker-row{grid-template-columns:1fr 1fr 1.5fr 1fr .7fr .6fr}.data-row:first-child{border-top:0}.data-header{color:var(--muted);background:#f1f3f6;font-weight:700}.flagged{color:var(--danger);font-weight:700}.ok{color:#166534;font-weight:700}.two-column{grid-template-columns:1fr 1fr;gap:20px;display:grid}.log-list{flex-direction:column;gap:0;display:flex}.log-item{border-top:1px solid var(--border);justify-content:space-between;gap:16px;padding:12px 0;display:flex}.log-item:first-child{border-top:0;padding-top:0}.log-item:last-child{padding-bottom:0}.log-item>div{flex-direction:column;gap:3px;display:flex}@media (max-width:760px){.form-grid,.project-grid,.stats-grid,.project-overview,.review-summary,.photo-grid,.two-column{grid-template-columns:1fr}.field-full,.overview-scope{grid-column:auto}.section-header,.review-actions,.detailed-task-row{flex-direction:column}.header-actions{flex-direction:column;align-items:stretch;width:100%}.task-row-right{justify-content:space-between;width:100%}.data-table{overflow-x:auto}.data-row{min-width:760px}}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px}.muted{color:var(--muted);font-size:14px}.task-list{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.task-row{background:var(--card);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.task-row:hover{border-color:var(--primary)}.badge{text-transform:capitalize;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.badge-not_started{color:var(--muted);background:#f1f2f4}.badge-in_progress{color:#92400e;background:#fef3c7}.badge-submitted{color:#1e40af;background:#dbeafe}.badge-approved{color:#166534;background:#dcfce7}.badge-rejected{color:#991b1b;background:#fee2e2}.delay-log{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.delay-entry{border:1px solid var(--border);background:var(--card);border-left:3px solid #9ca3af;border-radius:10px;padding:14px 16px}.delay-entry.is-open{background:#fffbeb;border-left-color:#f59e0b}.delay-entry-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.delay-state{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.delay-state.open{color:#92400e;background:#fef3c7}.delay-state.resolved{color:#166534;background:#dcfce7}.delay-note{white-space:pre-wrap;margin:0 0 8px;line-height:1.5}.delay-facts{color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin-bottom:6px;font-size:13px;display:flex}.delay-trail{font-size:12px}.delay-evidence{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.delay-evidence-item{flex-direction:column;gap:4px;width:120px;font-size:12px;display:flex}.delay-evidence-thumb{border:1px solid var(--border);background-color:#edf0f4;background-position:50%;background-size:cover;border-radius:8px;height:90px}.delay-evidence-item:hover .delay-evidence-thumb{border-color:var(--primary)}.tl-filters{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.tl-chip{border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;transition:background .12s,color .12s,border-color .12s}.tl-chip:hover{border-color:var(--primary);color:var(--primary)}.tl-chip.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.tl-day+.tl-day{margin-top:22px}.tl-day-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:12px;font-weight:700}.tl-list{margin:0;padding:0 0 0 28px;list-style:none;position:relative}.tl-list:before{content:"";background:var(--border);width:2px;position:absolute;top:4px;bottom:4px;left:11px}.tl-item{padding:0 0 18px;position:relative}.tl-item:last-child{padding-bottom:0}.tl-mark{background:var(--card);border:2px solid var(--border);width:24px;height:24px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:700;line-height:1;display:flex;position:absolute;top:1px;left:-28px}.tl-item.tone-note .tl-mark{color:#2563eb;border-color:#2563eb}.tl-item.tone-photo .tl-mark{color:#7c3aed;border-color:#7c3aed}.tl-item.tone-time .tl-mark{color:#0891b2;border-color:#0891b2}.tl-item.tone-money .tl-mark{color:#d97706;border-color:#d97706}.tl-item.tone-delay .tl-mark{color:#dc2626;border-color:#dc2626}.tl-item.tone-cleared .tl-mark{color:#16a34a;border-color:#16a34a}.tl-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.tl-title{font-size:15px}.tl-time{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.tl-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;font-size:13px;display:flex}.tl-pill{color:#374151;background:#eef1f5;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.tl-pill.is-warn{color:#92400e;background:#fef3c7}.tl-detail{border-left:2px solid var(--border);white-space:pre-wrap;margin:8px 0 0;padding-left:10px;line-height:1.5}.tl-photo{border:1px solid var(--border);background-color:#edf0f4;background-position:50%;background-size:cover;border-radius:8px;width:140px;height:100px;margin-top:10px;display:block}.tl-photo:hover{border-color:var(--primary)}.tl-footnote{margin-top:18px;font-size:12px}.getstarted-card{background:var(--card);border:1px solid var(--border);border-radius:16px;margin-bottom:28px;padding:22px 24px;box-shadow:0 1px 2px #1018280a}.getstarted-header{align-items:center;gap:16px;margin-bottom:18px;display:flex}.getstarted-heading{flex:1;min-width:0}.getstarted-heading h2{margin:0 0 2px;font-size:17px}.getstarted-heading p{margin:0}.getstarted-ring{--pct:0;background:conic-gradient(var(--primary) calc(var(--pct) * 1%), #e8eef9 0);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:background .4s;display:flex;position:relative}.getstarted-ring:before{content:"";background:var(--card);border-radius:999px;position:absolute;inset:5px}.getstarted-ring span{color:var(--foreground);font-size:12px;font-weight:750;position:relative}.getstarted-dismiss{flex-shrink:0}.getstarted-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.getstarted-row{border:1px solid var(--border);background:var(--background);border-radius:12px;align-items:flex-start;gap:14px;padding:14px 16px;transition:background .3s,opacity .3s,transform .3s;display:flex}.getstarted-row.is-done{background:#f3faf6;border-color:#cdebd9;align-items:center;padding:10px 16px;animation:.4s getstarted-done-pop}@keyframes getstarted-done-pop{0%{opacity:.6;transform:scale(.98)}60%{transform:scale(1.01)}to{opacity:1;transform:scale(1)}}.getstarted-badge{width:26px;height:26px;color:var(--primary);background:#e8eef9;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:750;display:flex}.getstarted-check{color:#166534;background:#dcfce7;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;font-weight:750;display:flex}.getstarted-row-body{flex:1;min-width:0}.getstarted-row-title{font-size:14px;font-weight:700;display:block}.getstarted-row.is-done .getstarted-row-title{font-weight:650}.getstarted-row-blurb{color:var(--muted);margin:3px 0 10px;font-size:13px}.getstarted-row-actions{flex-wrap:wrap;gap:8px;display:flex}.getstarted-row-actions button{padding:7px 14px;font-size:13px}.getstarted-congrats{align-items:center;gap:16px;animation:.5s getstarted-done-pop;display:flex}.getstarted-congrats-icon{font-size:28px}.getstarted-congrats h2{margin:0 0 2px;font-size:16px}.getstarted-congrats p{margin:0}.getstarted-congrats-link{color:var(--primary);white-space:nowrap;flex-shrink:0;margin-left:auto;font-weight:700}@media (max-width:640px){.getstarted-header{flex-wrap:wrap}.getstarted-dismiss{margin-left:auto}.getstarted-congrats{flex-wrap:wrap}.getstarted-congrats-link{margin-left:0}}.step-pointer-wrap{display:inline-block;position:relative}.step-pointer{z-index:40;cursor:pointer;flex-direction:column;align-items:flex-start;animation:.25s step-pointer-in;display:flex;position:absolute;top:calc(100% + 14px);left:0}@keyframes step-pointer-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.step-pointer-arrow{background:var(--foreground);border-radius:3px;width:14px;height:14px;margin-bottom:-7px;margin-left:14px;transform:rotate(45deg)}.step-pointer-bubble{background:var(--foreground);color:#fff;border-radius:10px;max-width:min(260px,100vw - 32px);padding:10px 14px;font-size:13px;line-height:1.4;animation:1.6s ease-in-out infinite step-pointer-bounce;display:block;box-shadow:0 8px 20px #1018282e}@keyframes step-pointer-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.step-pointer-close{color:#ffffffb3;margin-top:6px;font-size:11px;text-decoration:underline;display:inline-block}@media (max-width:480px){.step-pointer{position:fixed;inset:auto 16px 16px}.step-pointer-arrow{display:none}.step-pointer-bubble{max-width:none}}.app-header{z-index:50;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header-row{justify-content:space-between;align-items:center;gap:16px;padding:12px 32px;display:flex}.app-header-left{align-items:center;gap:24px;min-width:0;display:flex}.app-brand{white-space:nowrap;font-size:18px;font-weight:700}.app-nav{gap:4px;font-size:14px;display:flex}.app-nav a,.app-mobile-nav a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:6px 10px;font-weight:500;transition:background .15s,color .15s}.app-nav a:hover,.app-mobile-nav a:hover{background:var(--background);color:var(--foreground)}.app-nav a.is-active,.app-mobile-nav a.is-active{color:var(--primary);background:#e8efff;font-weight:600}.app-header-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.app-menu-toggle{padding:8px 12px;font-size:16px;line-height:1;display:none}.app-mobile-nav{display:none}@media (max-width:1100px){.app-nav a{padding:6px 7px}.app-header-row{padding:12px 20px}}@media (max-width:960px){.app-nav,.app-logout{display:none}.app-menu-toggle{display:inline-flex}.app-mobile-nav{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:8px 12px 14px;display:flex}.app-mobile-nav[hidden]{display:none}.app-mobile-nav a{padding:12px;font-size:16px}}.thinking{align-items:center;gap:10px;padding:4px 0;display:flex}.thinking-dots{gap:4px;display:inline-flex}.thinking-dots i{background:var(--primary);opacity:.35;border-radius:999px;width:6px;height:6px;animation:1.2s ease-in-out infinite thinking-pulse}.thinking-dots i:nth-child(2){animation-delay:.2s}.thinking-dots i:nth-child(3){animation-delay:.4s}@keyframes thinking-pulse{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.thinking-dots i{opacity:.7;animation:none}}.training-section+.training-section{margin-top:32px}.training-section h2{margin-bottom:12px;font-size:16px;font-weight:700}.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.lesson-card{flex-direction:column;gap:8px;transition:border-color .15s,transform .15s;display:flex}.lesson-card:hover{border-color:var(--primary);transform:translateY(-1px)}.lesson-card-title{font-size:15px;font-weight:700}.audience-tag{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;width:fit-content;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.audience-admin{color:#31558d;background:#e8eef9}.audience-worker{color:#166534;background:#dcfce7}.audience-both{color:#59616c;background:#f1f2f4}.lesson-body{font-size:14px;line-height:1.65}.lesson-body h1{margin:0 0 12px;font-size:20px}.lesson-body h2{margin:24px 0 10px;font-size:16px}.lesson-body h3{margin:20px 0 8px;font-size:14px}.lesson-body p{margin:0 0 12px}.lesson-body ul,.lesson-body ol{margin:0 0 12px;padding-left:22px}.lesson-body li{margin-bottom:6px}.lesson-body strong{font-weight:700}.lesson-body a{color:var(--primary);text-decoration:underline}.lesson-body code{background:#f1f3f6;border-radius:4px;padding:1px 5px;font-size:13px}.lesson-screenshot{border:1px solid var(--border);border-radius:10px;width:100%;margin-bottom:20px;display:block}.lesson-nav{border-top:1px solid var(--border);justify-content:space-between;gap:16px;margin-top:32px;padding-top:20px;display:flex}.lesson-nav a{color:var(--primary);font-size:13px;font-weight:650}.lesson-nav .lesson-nav-next{text-align:right;margin-left:auto}.real-screen-cta{color:var(--primary);align-items:center;gap:6px;margin-top:8px;font-size:14px;font-weight:650;display:inline-flex}.crew-page{max-width:760px;margin:0 auto;padding:40px 20px 80px}.crew-hero{text-align:center;margin-bottom:32px}.crew-hero h1{margin-bottom:8px;font-size:26px}.store-badges{flex-wrap:wrap;justify-content:center;gap:12px;margin:20px 0;display:flex}.store-badge{text-align:left;border:1px solid var(--border);background:var(--card);border-radius:10px;align-items:center;gap:10px;padding:10px 18px;font-size:14px;font-weight:650;display:inline-flex}.store-badge svg{flex:none;width:24px;height:24px}.store-badge small{opacity:.7;font-size:11px;font-weight:500;line-height:1.1;display:block}.store-badge strong{font-size:16px;font-weight:600;line-height:1.15;display:block}.store-badge:hover{border-color:var(--primary)}.copy-link-row{justify-content:center;margin-top:12px;display:flex}.doc-section+.doc-section{margin-top:20px}.doc-section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:12px;font-weight:700}.doc-dropzone{text-align:center;cursor:pointer;border:1px dashed #b7bec8;border-radius:12px;padding:22px;transition:border-color .15s,background .15s}.doc-dropzone:hover,.doc-dropzone.is-dragover{border-color:var(--primary);background:#f2f6ff}.doc-upload-queue{flex-direction:column;gap:8px;display:flex}.doc-upload-row{border:1px solid var(--border);border-radius:8px;align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex}.doc-upload-row.is-error{background:#fef2f2;border-color:#fca5a5}.doc-upload-name{text-overflow:ellipsis;white-space:nowrap;flex:none;width:160px;font-weight:600;overflow:hidden}.doc-progress{background:#f1f3f6;border-radius:3px;flex:1;height:6px;overflow:hidden}.doc-progress-fill{background:var(--primary);border-radius:3px;height:100%;transition:width .15s}.doc-row-list{flex-direction:column;gap:8px;display:flex}.doc-row{align-items:center;gap:12px;padding:10px 14px;display:flex}.doc-row-icon{width:34px;height:34px;color:var(--muted);background:#edf0f4;border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex}.doc-row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.doc-title{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.doc-actions{flex:none;gap:6px;display:flex}.doc-plan-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.doc-plan-tile{flex-direction:column;gap:8px;padding:10px;display:flex}.doc-plan-thumb{border:1px solid var(--border);background-color:#edf0f4;background-position:50%;background-size:cover;border-radius:8px;height:110px}.doc-plan-thumb.is-pdf{color:var(--primary);background:#eef2ff;justify-content:center;align-items:center;display:flex}.doc-plan-info{flex-direction:column;gap:2px;display:flex}@media (max-width:760px){.doc-upload-row{flex-wrap:wrap}.doc-upload-name{width:auto}}.plan-viewer{padding:0;overflow:hidden}.plan-viewer-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex}.plan-viewer-toolbar-group{align-items:center;gap:6px;display:flex}.plan-viewer-toolbar-group button{min-width:34px;padding:6px 10px}.plan-viewer-page-indicator,.plan-viewer-zoom-indicator{color:var(--muted);text-align:center;min-width:34px;font-size:13px;font-weight:600}.plan-viewer-body{align-items:stretch;min-height:480px;display:flex}.plan-viewer-stage{background:#14161a radial-gradient(circle at 1px 1px,#ffffff0f 1px,#0000 0) 0 0/22px 22px;flex:1;justify-content:center;align-items:flex-start;min-width:0;padding:32px;display:flex;position:relative;overflow:auto}.plan-viewer-stage.is-capturing{cursor:crosshair}.plan-viewer-state{color:#e5e7eb;text-align:center;font-size:14px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.plan-viewer-state.is-error{color:#fca5a5}.plan-viewer-page{background:#fff;flex:none;position:relative;box-shadow:0 8px 30px #00000073}.plan-viewer-page canvas{display:block}.plan-viewer-pin{background:var(--primary);color:#fff;cursor:pointer;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:12px;font-weight:700;transition:transform .1s,background .15s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000059}.plan-viewer-pin:hover{transform:translate(-50%,-50%)scale(1.1)}.plan-viewer-pin.is-selected{background:#f59e0b;transform:translate(-50%,-50%)scale(1.15)}.plan-viewer-capture-layer{cursor:crosshair;background:#2563eb0f;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.plan-viewer-capture-layer span{color:#fff;pointer-events:none;background:#14161ad9;border-radius:20px;margin:12px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-block;position:sticky;top:12px}.plan-viewer-panel{border-left:1px solid var(--border);flex:none;width:280px;max-height:640px;padding:16px;overflow-y:auto}.plan-viewer-panel-header{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:12px 0 10px;font-size:12px;font-weight:700}.plan-viewer-panel-list{flex-direction:column;gap:6px;display:flex}.plan-viewer-panel-item{border:1px solid var(--border);width:100%;color:var(--foreground);text-align:left;background:#fff;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;display:flex}.plan-viewer-panel-item:hover{border-color:var(--primary);background:#f8fafc}.plan-viewer-panel-item.is-selected{border-color:var(--primary);background:#eff6ff}.plan-viewer-panel-item-body{flex-direction:column;gap:2px;min-width:0;font-size:13px;display:flex}.plan-viewer-panel-item-body strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plan-viewer-pin-card{border:1px solid var(--border);background:#f9fafb;border-radius:10px;margin-bottom:8px;padding:12px}.plan-viewer-pin-card-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.plan-viewer-pin-badge{background:var(--primary);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:flex}.plan-viewer-pin-task-link{color:var(--primary);margin-top:6px;font-size:13px;font-weight:600;display:inline-block}.plan-viewer-doc-pin-badge{background:var(--primary);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}@media (max-width:760px){.plan-viewer-body{flex-direction:column}.plan-viewer-panel{border-left:none;border-top:1px solid var(--border);width:auto;max-height:none}.plan-viewer-stage{padding:16px}}.task-pin-chips{flex-wrap:wrap;gap:8px;margin:4px 0 16px;display:flex}.task-pin-chip{color:var(--primary);background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.task-pin-chip:hover{background:#dbeafe}@media (max-width:760px){.lesson-grid{grid-template-columns:1fr}}.project-shell{grid-template-columns:248px minmax(0,1fr);align-items:start;gap:32px;display:grid}.project-rail{flex-direction:column;gap:18px;display:flex;position:sticky;top:24px}.project-rail-head{padding:0 4px}.project-rail-back{color:var(--muted);margin-bottom:14px;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}.project-rail-back:hover{color:var(--primary)}.project-rail-title{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0 0 6px;font-size:22px;line-height:1.2}.project-rail-client{color:var(--muted);margin:0 0 12px;font-size:13px}.project-rail-status{color:var(--foreground);border:1px solid var(--border);background:var(--card);border-radius:999px;align-items:center;gap:7px;padding:4px 10px 4px 8px;font-size:12px;font-weight:600;display:inline-flex}.project-rail-status i{background:#9ca3af;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #9ca3af2e}.project-rail-status.is-active i{background:#22c55e;box-shadow:0 0 0 3px #22c55e33}.project-rail-status.is-planning i{background:#2563eb;box-shadow:0 0 0 3px #2563eb2e}.project-rail-status.is-on_hold i{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}.project-rail-status.is-completed i{background:#0ea5e9;box-shadow:0 0 0 3px #0ea5e92e}.project-rail-nav{border:1px solid var(--border);background:var(--card);border-radius:14px;flex-direction:column;gap:2px;padding:6px;display:flex}.project-rail-link{color:var(--foreground);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex;position:relative}.project-rail-link:before{content:"";background:var(--primary);opacity:0;border-radius:3px;width:3px;transition:opacity .15s,transform .2s;position:absolute;top:10px;bottom:10px;left:4px;transform:scaleY(.4)}.project-rail-link:hover{background:#f4f6f9}.project-rail-link.active{color:#1d4ed8;background:#eef3ff;font-weight:600}.project-rail-link.active:before{opacity:1;transform:scaleY(1)}.project-rail-meta{font-variant-numeric:tabular-nums;color:var(--muted);background:#f1f3f6;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.project-rail-link.active .project-rail-meta{color:#1d4ed8;background:#dbe6ff}.project-rail-progress{border:1px solid var(--border);background:var(--card);border-radius:14px;padding:14px 16px}.project-rail-progress-row{color:var(--muted);justify-content:space-between;margin-bottom:8px;font-size:12px;display:flex}.project-rail-progress-row strong{color:var(--foreground);font-variant-numeric:tabular-nums}.project-rail-bar{background:#eef0f3;border-radius:3px;height:6px;overflow:hidden}.project-rail-bar>div{background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:3px;height:100%;transition:width .4s}.project-pane{min-width:0;animation:.18s pane-in}@keyframes pane-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (max-width:960px){.project-shell{grid-template-columns:minmax(0,1fr);gap:20px}.project-rail{min-width:0;position:static}.project-rail-nav{scrollbar-width:none;flex-direction:row;overflow-x:auto}.project-rail-nav::-webkit-scrollbar{display:none}.project-rail-link{flex:none;padding:8px 12px}.project-rail-link:before,.project-rail-progress{display:none}}@media (prefers-reduced-motion:reduce){.project-pane{animation:none}}.job-record-saved{color:#166534;background:#ecfdf3;border:1px solid #b7e4c7;border-radius:10px;margin:0;padding:10px 14px;font-size:13px}.job-record-saved a{color:#166534;font-weight:600;text-decoration:underline}
