:root{font:15px/1.55 system-ui,-apple-system,sans-serif;color:#263b33;background:#f4f3ee;--green:#24483e;--muted:#66766e;--border:#d9dfd9}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #b38640;outline-offset:3px}button,.button{border:1px solid var(--border);background:white;color:var(--green);padding:11px 16px;border-radius:10px;min-height:44px;text-align:center;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#f0f4ef}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:#17392f}.danger{color:#9c352c}.quiet{background:transparent}.full{width:100%}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 28px;background:#fff;border-bottom:1px solid var(--border)}.brand{letter-spacing:4px;font-size:24px;font-weight:650}.brand span{display:block;letter-spacing:3px;font-size:10px;color:var(--muted)}.prototype{background:#f4e9d1;color:#705421;border-radius:5px;font-size:12px;padding:4px 9px}.shell{display:grid;grid-template-columns:210px minmax(0,1fr);max-width:1400px;margin:auto;min-height:calc(100vh - 90px)}nav{padding:26px 16px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:8px}nav button{background:transparent;border:0;text-align:left}nav button.active{background:#e3eae2;font-weight:600}nav .identity{padding:0 12px 20px;font-size:12px;color:var(--muted)}main{padding:32px;min-width:0}.pagehead{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:24px}h1{font-size:30px;letter-spacing:-1px;font-weight:550;margin:0}h2{font-size:19px;font-weight:550;margin:0 0 14px}h3{font-size:15px;font-weight:600;margin:0 0 8px}p{margin:8px 0 14px}.muted{color:var(--muted);font-size:13px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-bottom:7px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px}.panel{background:white;border:1px solid var(--border);border-radius:16px;padding:22px;margin-bottom:20px;min-width:0}.panel p:last-child{margin-bottom:0}.row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.actions{display:flex;gap:9px;flex-wrap:wrap}.badge{font-size:12px;border-radius:6px;padding:4px 8px;background:#edf1ea;display:inline-block}.badge.delayed,.badge.disabled{background:#fae5df;color:#913b2a}.badge.completed{background:#e2eddf}.progress{height:7px;background:#e8ece6;border-radius:10px;margin:18px 0 10px}.progress span{display:block;height:100%;background:#73917b;border-radius:10px}.project-title{font-size:22px;margin:10px 0 3px}.project-meta{border-top:1px solid var(--border);margin-top:18px;padding-top:14px;display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted)}label{display:block;font-size:13px;margin:14px 0 5px}input,select,textarea{width:100%;min-width:0;background:#fff;border:1px solid #bcc9c0;border-radius:8px;padding:11px;color:#263b33;font-size:16px}textarea{min-height:100px;resize:vertical}form button{margin-top:16px}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.notice{padding:12px 18px;background:#e5eddf;border:1px solid #bdcfb8;border-radius:9px;margin-bottom:20px;overflow-wrap:anywhere}.error{background:#fae5df;border-color:#e5b1a4;color:#913b2a}.login{max-width:880px;margin:60px auto;padding:24px}.login .panel{padding:32px}.login-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.login-intro{padding:24px 10px}.login-intro h1{font-size:42px;line-height:1.15;margin:20px 0}.roles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.roles button{padding:22px 12px}.roles button.selected{border-color:var(--green);background:#e9eee6}.login .fineprint{font-size:12px;color:var(--muted);margin-top:18px}.timeline-item{border-left:2px solid #c6d2c6;padding:0 0 24px 22px;margin-left:8px;position:relative}.timeline-item:before{content:'';position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:#8fa38c}.timeline-item.completed:before{background:var(--green)}.timeline-item:last-child{padding-bottom:4px}.step-edit{border-bottom:1px solid var(--border);padding:18px 0}.step-edit .two{gap:10px}.step-actions{display:flex;gap:6px;margin:10px 0}.step-actions button{padding:6px 10px;min-height:40px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:10px;margin:12px 0}.photo-grid img{width:100%;height:180px;object-fit:cover;border-radius:8px}.empty-media{height:100px;border:1px dashed #c6d2c6;background:#f5f6f1;border-radius:8px;display:grid;place-items:center;color:var(--muted);font-size:12px}.chat-message{padding:14px 16px;background:#f1f4ef;border-radius:12px;margin:12px 0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message.own{background:#e4ecdf;margin-left:24px}.chat-message .muted{font-size:11px}.account{padding:18px 0;border-bottom:1px solid var(--border)}.account:last-child{border:0}.credential{white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f6f1;padding:16px;border-radius:8px}.selected-project{max-width:300px}.preview-warning{font-size:12px;padding:10px 28px;border-bottom:1px solid #e4d8bd;background:#fff8e8;color:#6f592e}.spaced{margin-top:16px}.back{font-size:13px;margin-bottom:20px}.stage-summary{padding:14px;background:#f1f4ec;border-radius:9px;margin-top:18px}.no-project{max-width:600px}.file-link{display:inline-block;margin:8px 0;word-break:break-word}footer{padding-top:15px;color:var(--muted);font-size:12px}@media(max-width:700px){header{padding:15px 18px}.brand{font-size:21px}.shell{display:flex;flex-direction:column;min-height:0}nav{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;flex-wrap:wrap;padding:8px;gap:3px}nav .identity{width:100%;padding:5px 9px}nav button{font-size:12px;padding:9px 10px;flex-grow:1;text-align:center}main{padding:22px 16px}.two,.login-grid{grid-template-columns:1fr}.login{margin:16px auto;padding:16px}.login-intro{padding:0 8px}.login-intro h1{font-size:32px}.login .panel{padding:22px}h1{font-size:26px}.panel{padding:18px}.preview-warning{padding:9px 18px}.selected-project{max-width:100%;width:100%}}
[hidden]{display:none!important}#install-controls{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:12px 18px}#install-controls:has([hidden]):not(:has(:not([hidden]))){padding:0}#connection-status{color:#705421;font-size:13px}#app[aria-busy=true]{cursor:progress}

.login-more{margin-top:24px;text-align:center}.media-preview img,.media-preview video{display:block;width:100%;max-height:70vh;object-fit:contain;margin-top:14px}.timeline-item.current-planned{border-color:#24483e;background:#edf1ea;border-radius:0 8px 8px 0;padding-top:10px;padding-right:12px}

.schedule-health{margin:16px 0;padding:14px 16px;border-radius:12px;border:1px solid;line-height:1.6}.schedule-health strong{display:block}.schedule-health.ahead{background:#e5f5e9;color:#1b6532;border-color:#94cba2}.schedule-health.on-time{background:#e8f1fb;color:#205681;border-color:#a9c8e4}.schedule-health.behind{background:#fff0ee;color:#a42d24;border-color:#e7aaa4}

.project-lists{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.completion-control{margin-top:22px;padding:16px;border:1px solid #bdcfb8;border-radius:10px;background:#f1f7ee}.completion-control label{display:flex;align-items:center;gap:10px;margin:0;font-size:16px;font-weight:600;cursor:pointer}.completion-control input[type=checkbox]{width:22px;height:22px;flex-shrink:0;accent-color:#24483e}.completion-control p{margin-top:10px}

.media-thumb{padding:0;overflow:hidden;position:relative;min-height:150px;background:#e9eee7;display:grid;place-items:center;border-radius:12px}.media-thumb img{width:100%;height:170px;object-fit:cover;margin:0}.media-thumb img:not([src]),.media-thumb img.thumbnail-unavailable{display:none}.media-thumb span:last-child{position:absolute;bottom:0;left:0;right:0;background:#17392fd9;color:white;padding:7px;font-size:13px}.video-thumb-icon{font-size:36px;color:#24483e}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr))}.upload-progress{margin-top:18px;padding:16px;background:#edf5ed;border-radius:12px;border:1px solid #b5cfba}.upload-progress strong{display:block;margin-bottom:10px}.upload-progress progress{width:100%;height:16px;accent-color:#24483e}.upload-progress .muted{overflow-wrap:anywhere;margin-top:8px}.upload-progress.upload-error{background:#fff0ee;border-color:#e7aaa4}.mobile-menu-toggle,.mobile-bottom-nav{display:none}
