.project-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:start center;overflow:auto;padding:clamp(24px,6vh,70px) 20px;background:linear-gradient(145deg,#eef5f3,#f8fbfa 52%,#e8f1ef)}
.project-gate[hidden]{display:none}.project-gate-panel{width:min(1080px,100%)}.project-gate-brand{display:flex;justify-content:center;margin-bottom:25px}.project-gate-brand img{display:block;width:min(330px,78vw);height:auto;object-fit:contain}.project-gate-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.project-gate-heading h1{margin:0;color:var(--ink);font-size:clamp(27px,4vw,40px);letter-spacing:-.035em}.project-gate-heading p{margin:7px 0 0;color:var(--muted)}
.project-add-button{border:0;border-radius:12px;background:var(--brand);color:#fff;padding:12px 17px;font-weight:750;white-space:nowrap}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:16px}.project-card{--project-status-accent:var(--success);--project-status-bg:color-mix(in srgb,var(--success) 6%,var(--surface));display:flex;min-height:240px;flex-direction:column;border:1px solid color-mix(in srgb,var(--project-status-accent) 30%,var(--line));border-radius:18px;background:var(--project-status-bg);padding:18px;box-shadow:inset 4px 0 0 var(--project-status-accent),var(--shadow)}.project-card.status-inactive{--project-status-accent:var(--warning);--project-status-bg:color-mix(in srgb,var(--warning) 7%,var(--surface))}.project-card.status-finished{--project-status-accent:var(--muted);--project-status-bg:color-mix(in srgb,var(--muted) 7%,var(--surface))}.project-card-top{display:flex;align-items:start;justify-content:space-between;gap:12px}.project-card-logo{display:grid;width:68px;height:54px;place-items:center;margin-bottom:14px;border-radius:12px;background:#eff6f4;color:var(--brand);font-size:18px;font-weight:850;overflow:hidden}.project-card-logo img{display:block;width:100%;height:100%;object-fit:contain}.project-card h2{margin:0 0 6px;font-size:20px}.project-card-meta{display:grid;gap:5px;color:var(--muted);font-size:13px}.project-state{display:inline-flex;width:max-content;align-items:center;gap:6px;margin:12px 0;color:var(--project-status-accent);font-size:12px;font-weight:800}.project-state::before{content:'';width:8px;height:8px;border-radius:50%;background:currentColor}.project-card-actions{display:flex;gap:8px;margin-top:auto}.project-card-actions button{flex:1;border-radius:10px;padding:10px;font-weight:700}.project-open{border:0;background:var(--brand);color:#fff}.project-menu{position:relative}.project-menu summary{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--muted);font-size:22px;line-height:1;list-style:none;cursor:pointer}.project-menu summary::-webkit-details-marker{display:none}.project-menu>div{position:absolute;z-index:3;top:39px;right:0;display:grid;width:180px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 12px 30px #10201d26}.project-menu button{border:0;border-radius:8px;background:transparent;padding:9px;text-align:left;font-size:12px;font-weight:700}.project-menu button:hover{background:#eef6f4}.project-menu button.danger{color:var(--danger)}.project-empty{grid-column:1/-1;display:grid;gap:7px;place-items:center;padding:42px 20px;border:1px dashed var(--line);border-radius:18px;background:#ffffffb8;color:var(--muted);text-align:center}.project-empty strong{color:var(--ink)}
.project-dialog{border:0;border-radius:20px;padding:0;width:min(92vw,610px);box-shadow:0 24px 65px #10201d55}.project-dialog::backdrop{background:#10201da3}.project-dialog form{padding:22px}.project-dialog h2{margin:0 0 6px}.project-dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.project-dialog-grid .wide{grid-column:1/-1}.project-dialog label{display:block;margin:13px 0 6px;font-size:13px;font-weight:700}.project-dialog input,.project-dialog select,.project-dialog textarea{width:100%;border:1px solid #cbd8d4;border-radius:11px;padding:11px;background:#fff}.project-dialog textarea{min-height:75px;resize:vertical}.project-logo-preview{display:grid;width:100%;height:86px;place-items:center;border:1px dashed #b9cbc7;border-radius:12px;background:#f7faf9;overflow:hidden}.project-logo-preview img{width:100%;height:100%;object-fit:contain}.project-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.project-context,.project-contractor-context{display:none}.project-context select{min-width:0;width:100%;border:1px solid #c7ddd8;border-radius:10px;background:#f7fbfa;color:var(--ink);padding:9px 30px 9px 10px;font-size:12px;font-weight:700}.project-context small{display:none}.project-contractor-context small{display:block;margin-bottom:5px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-align:center;text-transform:uppercase}.project-contractor-context[hidden]{display:none!important}.project-contractor-context>div{display:grid;place-items:center;min-height:76px;padding:9px;background:transparent}.project-contractor-context img{display:block;width:100%;max-width:210px;height:62px;object-fit:contain}.mobile-project-context{display:grid;gap:4px;margin-top:10px}.mobile-project-context select{width:min(72vw,270px);border:0;border-radius:9px;padding:8px 30px 8px 10px;background:#fff;color:var(--ink);font-size:12px;font-weight:750}.project-nav-btn{border-bottom:1px solid var(--line)!important;margin-bottom:4px!important;padding-bottom:13px!important}
.project-delete-content{padding:22px}.project-delete-content h2{margin:0 0 12px}.project-delete-content p{color:var(--muted);line-height:1.5}.project-delete-content>label{display:block;margin:14px 0 6px;font-size:13px;font-weight:750}.project-delete-content>input{width:100%;border:1px solid #cbd8d4;border-radius:11px;padding:11px}.project-confirm-name{border-radius:10px;background:#f3f6f5;padding:10px 12px;color:var(--ink)!important;font-weight:800}.project-danger-button{border:0;border-radius:11px;background:var(--danger);color:#fff;padding:10px 14px;font-weight:750}.project-danger-button:disabled{cursor:not-allowed;opacity:.42}.project-toast{position:fixed;z-index:1200;left:50%;bottom:30px;transform:translate(-50%,18px);border-radius:22px;background:#16332e;color:#fff;padding:11px 17px;opacity:0;pointer-events:none;transition:.2s}.project-toast.show{transform:translate(-50%,0);opacity:1}
.project-status-dialog{width:min(92vw,430px)}.project-status-dialog form{padding:22px}.project-status-dialog h2{margin:0 0 16px}.project-status-dialog p{margin:8px 0;color:var(--muted);line-height:1.45}.project-status-dialog p strong{color:var(--ink)}.project-status-dialog label{display:block;margin:17px 0 6px;font-size:13px;font-weight:750}.project-status-dialog select{width:100%;border:1px solid #cbd8d4;border-radius:11px;padding:11px;background:#fff}.project-status-dialog .project-add-button:disabled{cursor:not-allowed;opacity:.45}
@media(min-width:1100px){.project-context{display:block;margin:0 2px 9px;padding:0 6px}.project-contractor-context{display:block;margin:0 2px 13px;padding:0 6px 13px;border-bottom:1px solid var(--line)}.mobile-project-context{display:none}}
@media(max-width:620px){.project-gate{padding:22px 14px}.project-gate-heading{align-items:stretch;flex-direction:column}.project-add-button{width:100%}.project-dialog-grid{grid-template-columns:1fr}.project-dialog-grid .wide{grid-column:auto}}

/* Project logos retain their original image and fit beside the project details. */
.project-card:has(.project-card-logo img){position:relative}
.project-card:has(.project-card-logo img) .project-card-top{min-height:68px;justify-content:flex-end}
.project-card:has(.project-card-logo img) .project-card-logo{position:absolute;right:18px;top:60px;width:min(180px,40%);height:100px;margin:0;background:transparent;border-radius:0;overflow:visible}
.project-card:has(.project-card-logo img)>h2,.project-card:has(.project-card-logo img)>.project-card-meta,.project-card:has(.project-card-logo img)>.project-state{max-width:calc(100% - min(180px,40%) - 12px);overflow-wrap:anywhere}
.project-card:has(.project-card-logo img) .project-card-logo img{object-fit:contain;filter:none;min-width:0;min-height:0;max-width:180px;max-height:100%;height:100%}
@media(max-width:480px){.project-card:has(.project-card-logo img) .project-card-logo{width:34%;height:90px}.project-card:has(.project-card-logo img)>h2,.project-card:has(.project-card-logo img)>.project-card-meta,.project-card:has(.project-card-logo img)>.project-state{max-width:calc(66% - 12px)}}

/* Project cards use the two logos configured for their own project. */
.project-card-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(132px,42%);gap:14px;align-items:start;flex:1}.project-card-copy{min-width:0;padding-top:2px}.project-card-copy h2{overflow-wrap:anywhere}.project-card-side{display:grid;grid-template-rows:auto 1fr;min-width:0;min-height:126px}.project-card-side .project-menu{justify-self:end}.project-card-logos{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;padding-top:8px}.project-card-logos>span{display:grid;flex:1 1 0;min-width:0;height:92px;place-items:center}.project-card-logos img{display:block;width:100%;height:100%;max-width:180px;max-height:110px;object-fit:contain;filter:none}.project-card-logo-fallback{border-radius:12px;background:#eff6f4;color:var(--brand);font-size:18px;font-weight:850}.project-card-actions{padding-top:10px}
@media(max-width:480px){.project-card-main{grid-template-columns:minmax(0,1fr) minmax(118px,40%);gap:10px}.project-card-logos{gap:5px}.project-card-logos>span{height:82px}}
