@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap');
:root{--navy:#0e2034;--navy2:#142b44;--ink:#17253a;--muted:#64758a;--line:#dfe5eb;--pale:#f5f7f9;--white:#fff;--orange:#ec7027;--orange-soft:#fff2e8;--shadow:0 14px 40px rgba(15,33,53,.08);font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--pale)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%}h1,h2,h3,p,figure{margin-top:0}h1,h2{letter-spacing:-.035em}h1{font-family:'Libre Baskerville',Georgia,serif;font-weight:400}h2{font-size:22px}h3{font-size:17px}.subtle{color:var(--muted);line-height:1.55}.hint{color:var(--muted);font-size:13px;line-height:1.5}.optional{color:var(--muted);font-weight:400}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:7px;min-height:42px;padding:10px 18px;font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap;transition:background .18s,border .18s,transform .18s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.48}.button.primary{background:var(--navy);color:#fff}.button.primary:hover{background:#1e3e5e}.button.secondary{background:#eef2f6;color:var(--navy);border-color:#dbe2ea}.button.secondary:hover{background:#e2e9f0}.button.outline{background:#fff;color:var(--navy);border-color:var(--navy)}.button.outline:hover{background:#f3f7fa}.button.ghost{background:transparent;color:var(--navy);border-color:var(--line)}.button.ghost:hover{border-color:#8798aa}.button.tiny{min-height:32px;padding:6px 10px;font-size:12px}.button.full{width:100%}.text-button{border:0;background:transparent;color:var(--navy);font-weight:700;font-size:13px;padding:5px}.text-button:hover{text-decoration:underline}.danger{color:#a43c3c!important}.alert{border:1px solid #bdd8cc;background:#effaf4;color:#1d6947;padding:12px 15px;border-radius:8px;margin:16px 0;font-size:14px}.alert.error{background:#fff2f1;color:#9b3430;border-color:#f1cbc8}label{font-weight:700;font-size:13px;color:#26384f}label input:not([type=checkbox]):not([type=file]),label select,label textarea{display:block;width:100%;border:1px solid #cbd5df;border-radius:7px;padding:10px 11px;background:#fff;color:var(--ink);margin-top:7px;outline:none}label input:focus,label select:focus,label textarea:focus{border-color:#637f9b;box-shadow:0 0 0 3px #dce7f1}input[type=file]{display:block;width:100%;margin-top:8px;font-size:13px}.check-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.check-label input{accent-color:var(--orange);width:16px;height:16px}.form-stack{display:flex;flex-direction:column;gap:17px}.form-stack .hint{margin:-2px 0 0}.form-row{display:flex;gap:14px}.form-row>label{flex:1;min-width:0}.form-row>label:last-child:first-child{flex:1}.toggle-row{display:flex;flex-wrap:wrap;gap:18px}.count-label,.page-count{color:var(--muted);font-size:13px;font-weight:700}.empty-state{text-align:center;padding:65px 20px;color:var(--muted)}.empty-state h3{color:var(--ink);margin-bottom:6px}.empty-state.small{padding:30px 15px}.empty-state p{margin:0}.pill,.tiny-pill{display:inline-flex;align-items:center;background:#e9f2f8;color:#24516e;border-radius:30px;font-weight:700;font-size:12px;padding:7px 12px}.tiny-pill{padding:3px 7px;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
/* Admin */
.admin-page{background:#f4f6f8;min-height:100vh}.admin-header{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:42px;padding:0 max(28px,calc((100vw - 1380px)/2));position:sticky;top:0;z-index:30}.admin-logo img{width:198px;display:block}.admin-header nav{display:flex;gap:28px;align-self:stretch;align-items:center;flex:1}.admin-header nav a{font-size:13px;font-weight:700;color:#758398;height:100%;display:flex;align-items:center;border-bottom:3px solid transparent}.admin-header nav a.current{color:var(--navy);border-color:var(--orange)}.admin-header nav a:hover{color:var(--navy)}.admin-main{max-width:1380px;margin:0 auto;padding:38px 28px 90px}.page-title-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.page-title-row h1{font-size:34px;margin:0 0 8px}.page-title-row p{margin:0}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;padding:25px;box-shadow:0 6px 24px rgba(17,39,63,.025)}.panel+.panel{margin-top:0}.panel-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:22px}.panel-heading h2{font-size:19px;margin:0}.panel-heading p{color:var(--muted);font-size:13px;margin:7px 0 0}.admin-dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:24px}.project-rows{margin:-3px -25px -25px}.project-row{display:flex;gap:16px;align-items:center;padding:21px 25px;border-top:1px solid var(--line);transition:background .2s}.project-row:hover{background:#f8fafc}.project-initial{width:48px;height:48px;display:grid;place-items:center;background:#e8f0f6;border-radius:9px;color:#24516e;font-family:Georgia,serif;font-size:23px}.project-row-copy{display:flex;flex-direction:column;gap:5px;flex:1}.project-row-copy strong{font-size:15px}.project-row-copy small{color:var(--muted);font-size:12px}.project-arrow{font-size:22px;color:#8b9bae}.create-panel .button{align-self:flex-start}.breadcrumb{display:flex;gap:10px;color:var(--muted);font-size:12px;margin-bottom:16px}.breadcrumb a:hover{text-decoration:underline}.project-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:26px;overflow-x:auto;scrollbar-width:thin}.project-tabs a{padding:13px 17px;color:#728299;font-size:13px;font-weight:700;white-space:nowrap;border-bottom:3px solid transparent}.project-tabs a.active{color:var(--navy);border-color:var(--orange)}.project-tabs a:hover{color:var(--navy)}.admin-tab{display:none}.admin-tab.active{display:block}.split-panels{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:24px;margin-bottom:24px}.side-note{background:var(--navy);color:#fff}.side-note p{color:#c1cfdd;line-height:1.6;font-size:14px}.side-note h2{font-family:Georgia,serif;font-size:25px;font-weight:400}.metric{border-top:1px solid #314962;padding:18px 0;display:flex;align-items:baseline;gap:12px}.metric strong{font-size:25px;color:#fff}.metric span{color:#bdcbd9;font-size:13px}.sortable-list{min-height:10px}.sortable-row{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.sortable-row:first-child{border-top:0}.sortable-row.dragging,.admin-photo.dragging{opacity:.45}.drag-handle,.drag-corner{cursor:grab;color:#8a9aab;font-weight:700;letter-spacing:-4px;padding:10px}.inline-edit{display:flex;align-items:center;gap:8px;flex:1}.inline-edit input{width:100%;border:1px solid #d2dae3;border-radius:6px;padding:8px 9px}.item-actions{white-space:nowrap}.icon-button{border:1px solid var(--line);background:#fff;border-radius:6px;color:var(--navy);width:31px;height:31px;display:inline-grid;place-items:center;font-size:18px}.icon-button:hover{background:#eef3f7}.admin-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.admin-photo{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.admin-photo-image{position:relative;aspect-ratio:3/2;background:#dce3e9}.admin-photo-image img{width:100%;height:100%;object-fit:cover}.drag-corner{position:absolute;top:7px;left:7px;border-radius:4px;background:#fff;font-size:18px;line-height:1}.admin-photo-meta{padding:11px 12px 8px;display:flex;flex-direction:column;gap:4px;min-width:0}.admin-photo-meta strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-photo-meta small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-photo-tools{display:flex;align-items:center;gap:3px;padding:0 10px 10px}.admin-photo-tools form:first-child{flex:1;min-width:0}.admin-photo-tools select{width:100%;font-size:11px;padding:6px;border:1px solid var(--line);border-radius:5px;background:#fff}.admin-photo-tools .icon-button{width:27px;height:27px;font-size:15px;flex:none}.module-heading{margin:0 0 20px}.module-heading h2{margin-bottom:6px}.module-heading p{color:var(--muted);font-size:13px}.mini-assets{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.mini-assets>div{width:125px;display:flex;flex-direction:column;gap:5px}.mini-assets img{width:125px;height:78px;object-fit:cover;border-radius:5px}.mini-assets span{font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mini-assets form{align-self:flex-start}.invitation-row,.receipt-row,.profile-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding:16px 0}.invitation-row:first-child,.receipt-row:first-child,.profile-row:first-child{border-top:0}.invitation-row>div:first-child,.receipt-row>div:first-child,.profile-row>div:first-child{display:flex;flex-direction:column;gap:5px;min-width:140px}.invitation-row strong,.receipt-row strong,.profile-row strong{font-size:13px}.invitation-row small,.receipt-row small,.profile-row small{font-size:11px;color:var(--muted)}.invite-link{display:flex;flex:1;gap:6px;min-width:0}.invite-link input{min-width:0;flex:1;padding:7px;border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:11px}.profile-actions{display:flex;align-items:center;gap:7px}.mail-preview{padding:12px 0;border-top:1px solid var(--line)}.mail-preview summary{cursor:pointer;display:flex;flex-direction:column;gap:4px;font-size:13px}.mail-preview small{color:var(--muted)}.mail-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f7f9;padding:12px;font-size:12px}.admin-footer{text-align:center;padding:28px;color:#8493a5;font-size:12px}
/* Authentication */
.auth-page{min-height:100vh;background:linear-gradient(145deg,#eaf0f5,#fff 56%,#f5f7f8)}.auth-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px}.auth-brand img{width:245px}.auth-card{width:min(100%,430px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:34px;margin:30px 0 16px}.auth-card h1{font-size:27px;margin:0 0 12px}.auth-card .subtle{font-size:13px;margin-bottom:28px}.auth-card form{display:flex;flex-direction:column;gap:18px}.auth-footer{color:#8191a4;font-size:12px}
/* Client gallery */
.gallery-page{background:#fff}.gallery-header{height:72px;padding:0 36px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:25}.gallery-brand img{width:250px;display:block}.gallery-header-info{display:flex;gap:17px;align-items:center;color:#66768c;font-size:12px}.gallery-header-info span:first-child{border-bottom:2px solid var(--orange);color:var(--navy);padding:27px 0 25px;font-weight:700}.gallery-header-info strong{font-weight:500}.header-divider{color:#aeb7c1}.gallery-layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:calc(100vh - 72px)}.room-sidebar{background:var(--navy);color:#fff;padding:34px 19px 110px;position:sticky;top:72px;align-self:start;height:calc(100vh - 72px);overflow:auto}.sidebar-intro{padding:0 12px 22px;border-bottom:1px solid #2b4056;margin-bottom:8px;display:flex;flex-direction:column;gap:5px}.sidebar-intro span{text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:#91a9be}.sidebar-intro strong{font-size:13px;font-weight:600}.sidebar-link{display:flex;align-items:flex-start;gap:13px;border-bottom:1px solid #283e54;padding:19px 9px;font-size:13px;line-height:1.25}.sidebar-link:hover{background:#19334d}.sidebar-link>span:last-child{display:flex;flex-direction:column;gap:6px;min-width:0}.sidebar-link small{color:#9cb0c4;font-size:11px}.sidebar-link small b{font-weight:400}.sidebar-number{display:grid;place-items:center;flex:none;width:27px;height:27px;border:1px solid #8194a7;border-radius:50%;font-family:Georgia,serif;font-size:13px}.sidebar-link.active .sidebar-number{background:var(--orange);border-color:var(--orange)}.sidebar-total{padding:22px 12px;color:#b2c4d5;font-size:12px}.sidebar-total strong{color:#fff}.sidebar-help{margin-top:36px;border:1px solid #344c63;border-radius:6px;padding:16px;font-size:12px}.sidebar-help strong{font-size:13px}.sidebar-help p{color:#aebfd0;line-height:1.55;margin:8px 0 0}.gallery-main{min-width:0;padding:35px min(3vw,48px) 0;max-width:1590px}.gallery-intro{display:flex;justify-content:space-between;gap:25px;align-items:end}.intro-client{text-transform:uppercase;color:var(--orange);font-size:11px;font-weight:700;letter-spacing:.14em;margin:0 0 10px}.gallery-intro h1{font-size:clamp(30px,3.2vw,44px);margin:0 0 10px}.gallery-description{color:#6f7d8f;font-size:14px;line-height:1.55;margin:0}.intro-count{border-left:1px solid var(--line);padding-left:22px;display:flex;flex-direction:column;color:var(--muted);font-size:12px;min-width:90px}.intro-count strong{color:var(--navy);font-size:27px;line-height:1}.proof-notice{display:flex;gap:13px;padding:14px 17px;background:#f3f6f8;border-left:3px solid #adc0d0;margin:25px 0 15px;color:#55677b;font-size:12px;line-height:1.55}.proof-notice p{margin:0}.proof-notice strong{color:var(--navy)}.notice-icon{display:grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;border:1px solid #8498ab;font-family:Georgia,serif;font-style:italic}.rule-line{display:flex;justify-content:space-between;gap:10px;color:#617185;font-size:12px;margin-bottom:28px}.rule-line span:first-child{font-weight:700;color:var(--navy)}.showcase-section{margin:32px 0 48px}.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:20px;border-top:1px solid var(--line);padding-top:26px;margin-bottom:22px}.section-title h2{font-family:'Libre Baskerville',Georgia,serif;font-size:25px;font-weight:400;margin:0 0 7px}.section-title p{color:#728197;font-size:12px;margin:0}.demo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.demo-card{margin:0}.demo-card img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.demo-card figcaption{font-size:12px;font-weight:700;margin-top:9px}.ba-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.ba-widget{position:relative}.ba-images{position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;background:#dee5ea}.ba-images img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ba-before{clip-path:inset(0 50% 0 0)}.ba-divider{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;box-shadow:0 0 5px #0004}.ba-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:43px;height:43px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;box-shadow:0 4px 16px #0004}.ba-label{position:absolute;bottom:14px;background:#101c29bd;color:#fff;font-size:11px;font-weight:700;padding:5px 8px;border-radius:3px}.ba-label.left{left:14px}.ba-label.right{right:14px}.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.proofs-section{padding-bottom:120px}.room-section{scroll-margin-top:95px;margin-bottom:44px}.room-heading{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:20px}.room-heading h3{font-size:20px;font-weight:600;margin:0 0 13px}.room-heading span{color:var(--muted);font-size:12px}.proof-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 22px}.proof-card{min-width:0}.proof-image{position:relative;aspect-ratio:3/2;background:#d6dce2;overflow:hidden}.proof-image img{width:100%;height:100%;display:block;object-fit:cover;cursor:zoom-in}.selected-mark{position:absolute;right:14px;top:14px;display:grid;place-items:center;width:31px;height:31px;border:2px solid #fff;border-radius:50%;background:#ffffff20;color:transparent;font-size:17px;font-weight:700;box-shadow:0 2px 12px #0003}.proof-card.is-selected .selected-mark{background:var(--orange);border-color:var(--orange);color:#fff}.proof-details{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0}.proof-title{display:flex;flex-direction:column;gap:4px;min-width:0}.proof-title strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proof-title span{color:#8a99a9;font-size:10px}.proof-actions{display:flex;gap:5px}.proof-actions .button{min-height:31px;padding:5px 12px;font-size:11px}.proof-card.is-selected .select-photo{color:#b7531b;border-color:#dc874d;background:#fff9f4}.proof-card.in-compare .compare-photo{background:var(--navy);color:#fff;border-color:var(--navy)}.proof-note{border-top:1px solid var(--line);background:#fafbfc;padding:12px;margin-top:3px}.proof-note[hidden]{display:none}.proof-note .note-label{display:block;margin-top:9px;color:#68798e;font-size:11px}.proof-note textarea{min-height:66px;resize:vertical;font-size:12px}.proof-note textarea:disabled{background:#f1f3f5;color:#99a4af}.gallery-footer{border-top:1px solid var(--line);padding:30px 0 112px;display:flex;align-items:center;gap:20px;color:#8391a2;font-size:11px}.gallery-footer img{width:150px}.gallery-footer p{margin:0}.gallery-footer span{margin-left:auto}.selection-tray{position:fixed;left:0;right:0;bottom:0;z-index:27;display:flex;align-items:center;gap:22px;background:var(--navy);color:#fff;min-height:84px;padding:11px 28px;box-shadow:0 -8px 25px #0c1c2c1c}.tray-count{display:flex;align-items:baseline;gap:6px;min-width:125px}.tray-count strong{font-size:21px}.tray-count span{font-size:12px}.tray-compare{display:flex;gap:18px;align-items:center;flex:1;min-width:0}.tray-thumbnails{display:flex;align-items:center;gap:9px;min-width:0}.tray-placeholder{color:#a0b4c5;font-size:12px}.tray-chip{position:relative;width:68px;height:52px;flex:none;border:1px solid #70869a;border-radius:4px;overflow:hidden}.tray-chip img{width:100%;height:100%;object-fit:cover}.tray-chip button{position:absolute;right:0;top:0;border:0;border-radius:0 0 0 4px;background:#203a52;color:#fff;width:19px;height:19px;line-height:15px}.compare-button{background:transparent;border-color:var(--orange);color:#f8a36d}.compare-button:hover:not(:disabled){background:#243a50}.submit-button{background:var(--orange);color:#fff;min-width:187px}.submit-button:hover{background:#d95e1b}.gallery-page dialog{border:0;border-radius:11px;padding:0;max-height:calc(100vh - 40px);box-shadow:0 24px 80px #07132088}.gallery-page dialog::backdrop{background:#07182ab5}.compare-dialog{width:min(1120px,calc(100vw - 35px));background:#fff}.dialog-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:24px 28px;border-bottom:1px solid var(--line)}.dialog-top h2{font-family:'Libre Baskerville',Georgia,serif;font-size:25px;font-weight:400;margin:0 0 5px}.dialog-top p{color:var(--muted);font-size:12px;margin:0}.close-dialog{border:0;background:transparent;font-size:27px;color:#748498;line-height:1}.compare-controls{padding:20px 28px;display:flex;gap:18px}.compare-controls label{flex:1}.compare-images{padding:0 28px 27px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.compare-pane img{display:block;width:100%;aspect-ratio:3/2;object-fit:contain;background:#152133}.compare-caption{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:10px 0}.compare-caption strong{font-size:12px}.mobile-compare-switch{display:none}.submission-dialog{width:min(520px,calc(100vw - 30px));padding-bottom:20px!important}.submission-dialog #submissionContent{padding:22px 28px;font-size:14px;line-height:1.55}.submission-dialog #submissionContent p{margin:0 0 12px}.submission-dialog #submissionContent ul{padding-left:19px;color:#ab3c35}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:0 28px}.dialog-actions .button{min-height:39px}
@media(max-width:1050px){.admin-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-layout{grid-template-columns:205px minmax(0,1fr)}.gallery-header{padding:0 22px}.gallery-brand img{width:210px}.gallery-main{padding-left:27px;padding-right:27px}.room-sidebar{padding-left:12px;padding-right:12px}.proof-grid{gap:20px 15px}.proof-details{align-items:flex-start;flex-direction:column}.proof-actions{width:100%}.proof-actions .button{flex:1}.tray-count{min-width:95px}.tray-compare{gap:10px}}
@media(max-width:760px){.admin-header{height:auto;min-height:72px;padding:10px 18px;flex-wrap:wrap;gap:8px 17px}.admin-logo img{width:175px}.admin-header nav{order:3;width:100%;flex:none;gap:20px;height:32px}.admin-header nav a{font-size:12px}.admin-main{padding:27px 18px 80px}.admin-dashboard,.split-panels{grid-template-columns:1fr}.admin-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-title-row h1{font-size:29px}.gallery-header{height:62px;padding:0 15px}.gallery-brand img{width:169px}.gallery-header-info{font-size:10px;gap:7px}.gallery-header-info span:first-child{display:none}.gallery-header-info strong{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-divider{display:none}.gallery-layout{display:block}.room-sidebar{position:sticky;top:62px;z-index:20;height:auto;padding:8px 12px;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}.room-sidebar::-webkit-scrollbar{display:none}.sidebar-intro,.sidebar-help,.sidebar-total{display:none}.sidebar-link{border:1px solid #40556b;border-radius:5px;padding:7px 10px;white-space:nowrap;align-items:center;gap:8px}.sidebar-link .sidebar-number{width:20px;height:20px;font-size:10px}.sidebar-link small{display:none}.gallery-main{padding:25px 17px 0}.gallery-intro h1{font-size:29px}.intro-count{min-width:60px;padding-left:12px}.intro-count strong{font-size:22px}.proof-notice{font-size:11px;margin:20px 0 13px}.rule-line{font-size:11px;display:block}.rule-line span{display:block;margin-bottom:5px}.room-section{scroll-margin-top:120px}.proof-grid,.demo-grid,.ba-grid{grid-template-columns:1fr}.proof-details{flex-direction:row;align-items:center}.proof-actions{width:auto}.selection-tray{min-height:81px;padding:8px 12px;gap:9px}.tray-count{min-width:56px;display:block}.tray-count strong{font-size:18px}.tray-count span{display:block;font-size:10px}.tray-compare{flex:1}.tray-thumbnails{gap:4px}.tray-chip{width:42px;height:42px}.tray-placeholder{display:none}.compare-button{min-width:0;padding:6px;font-size:10px;min-height:39px}.submit-button{min-width:0;padding:7px 10px;font-size:11px;max-width:130px;white-space:normal}.gallery-footer{padding-bottom:105px;flex-wrap:wrap}.gallery-footer span{margin-left:0}.compare-controls{padding:13px 17px}.compare-images{padding:0 17px 17px;display:block}.compare-pane.side-b{display:none}.compare-images.show-b .side-a{display:none}.compare-images.show-b .side-b{display:block}.mobile-compare-switch{display:flex;gap:5px;margin:0 17px 10px}.mobile-compare-switch button{flex:1;border:1px solid var(--line);background:#fff;padding:7px}.mobile-compare-switch button.active{background:var(--navy);color:#fff}.dialog-top{padding:17px}.dialog-top h2{font-size:20px}}
@media(max-width:440px){.admin-photo-grid{grid-template-columns:1fr}.form-row{flex-direction:column}.page-title-row{align-items:start}.page-count{display:none}.admin-header nav{gap:12px}.proof-actions .button{padding:5px 8px}.proof-title strong{max-width:145px}.tray-chip:nth-child(n+4){display:none}.compare-button{font-size:0}.compare-button::after{content:'Compare';font-size:10px}.gallery-header-info strong{max-width:110px}}
.room-removal{display:flex;flex-wrap:wrap;gap:6px;border-top:1px solid var(--line);margin-top:15px;padding-top:13px}.room-removal .text-button{font-size:11px}.close-dialog:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:4px}
.panel-divider{border-top:1px solid var(--line);margin:28px 0}

/* Gallery workflow refinements */
.gallery-brand{display:flex;align-items:center;height:100%}
.gallery-brand img{width:220px;max-height:52px;object-fit:contain;object-position:left center}
.proof-notice{background:#fff3e9;border-left:4px solid var(--orange);color:#463522;font-size:13px;padding:17px 19px}
.proof-notice strong{color:#a34214}
.room-heading{background:var(--navy);color:#fff;border:0;border-radius:5px;margin-bottom:18px;align-items:center;padding:0 17px}
.room-heading span{color:#bed1df;padding-right:2px}
.room-collapse{display:flex;align-items:center;gap:12px;background:none;border:0;color:#fff;padding:13px 0;cursor:pointer;text-align:left;flex:1}
.room-collapse h3{margin:0;font-size:18px}
.room-chevron{font-size:22px;line-height:1;transition:transform .2s}
.room-section.collapsed .room-chevron{transform:rotate(-90deg)}
.room-section.collapsed .proof-grid{display:none}
.gallery-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-2px 0 20px;padding:13px 15px;background:#f3f6f9;border:1px solid var(--line);border-radius:6px}
.gallery-controls label{display:flex;align-items:center;gap:8px;color:#53677e;font-size:12px;font-weight:700}
.gallery-controls select{padding:7px 26px 7px 9px;border:1px solid #cbd7e2;border-radius:5px;background:#fff;color:var(--navy);font-size:12px}
.selected-filter{border:1px solid #d99362;border-radius:5px;background:#fff;color:#9c461a;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}
.selected-filter[aria-pressed="true"]{background:var(--orange);color:#fff;border-color:var(--orange)}
.grid-size{margin-left:auto}
.proof-grid{grid-template-columns:repeat(var(--grid-columns,2),minmax(0,1fr))}
.proof-card[hidden],.room-section[hidden]{display:none}
.selected-mark{cursor:pointer;z-index:2;padding:0}
.selected-mark:hover{transform:scale(1.09)}
.proof-title strong{font-size:13px;color:var(--navy)}
.proof-title span{font-size:10px;color:#8a99a9}
.selection-tray{min-height:60px;padding:7px 20px;gap:16px}
.tray-chip{width:48px;height:36px}
.tray-count{min-width:100px}
.tray-count strong{font-size:19px}
.selection-tray .button{min-height:34px;padding:6px 12px}
.submit-button{min-width:160px}
.room-sidebar{padding-bottom:80px}
.proofs-section{padding-bottom:90px}
.gallery-footer{padding-bottom:88px}
.compare-pane{position:relative}
.compare-selected-mark{position:absolute;top:13px;right:13px;display:none;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--orange);color:#fff;font-size:20px;font-weight:700;box-shadow:0 2px 12px #0005}
.compare-pane.is-selected .compare-selected-mark{display:grid}
.viewer-dialog{width:min(1280px,calc(100vw - 24px));max-width:1280px;background:#fff}
.viewer-top{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;border-bottom:1px solid var(--line)}
.viewer-top>div{display:flex;flex-direction:column;gap:3px}
.viewer-top strong{font-size:15px;color:var(--navy)}
.viewer-top span{font-size:11px;color:#7d8da0}
.viewer-stage{display:grid;grid-template-columns:45px minmax(0,1fr) 45px;align-items:center;background:#101d2c;min-height:220px}
.viewer-stage img{display:block;width:100%;max-height:calc(100vh - 280px);min-height:180px;object-fit:contain}
.viewer-arrow{height:100%;border:0;background:transparent;color:#fff;font-size:44px;cursor:pointer}
.viewer-arrow:hover{background:#ffffff20}
.viewer-bottom{display:grid;grid-template-columns:100px auto 1fr;align-items:start;gap:12px;padding:13px 18px 17px}
.viewer-bottom>span{color:#738399;font-size:12px;padding-top:9px}
.viewer-buttons{display:flex;gap:6px}
.viewer-bottom .check-label{font-size:12px;padding-top:8px}
.viewer-bottom .note-label{grid-column:2 / -1;font-size:11px;color:#68798e}
.viewer-bottom textarea{width:100%;min-height:54px;resize:vertical;font-size:12px;margin-top:5px}
.submission-dialog{width:min(860px,calc(100vw - 28px))}
.review-group{margin:22px 0}
.review-group h3{font-size:15px;color:var(--navy);margin:0 0 10px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.review-grid figure{margin:0;min-width:0}
.review-grid img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.review-grid figcaption{font-size:10px;color:#617185;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-top:4px}
.batch-room-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 18px;padding:11px 13px;background:#f3f7fa;border:1px solid var(--line);border-radius:6px;font-size:12px}
.batch-room-bar label{display:flex;align-items:center;gap:5px}
.batch-room-bar select{padding:7px;border:1px solid #cbd7e2;border-radius:5px;background:#fff}
.batch-room-bar strong{color:var(--navy)}
#batchStatus{color:#58718b}
.batch-photo-check{position:absolute;top:8px;right:8px;z-index:2;background:#fff;border-radius:5px;padding:5px;line-height:1;box-shadow:0 2px 8px #0004;cursor:pointer}
.batch-photo-check input{width:17px;height:17px;accent-color:var(--orange);cursor:pointer}
.sortable-row>.icon-button.danger,.sortable-row>form .icon-button.danger{color:#bc3f34}
@media(max-width:760px){
  .gallery-brand img{width:155px;max-height:44px}
  .gallery-controls{gap:8px;padding:10px}
  .grid-size{margin-left:0}
  .proof-grid{grid-template-columns:1fr!important}
  .selection-tray{min-height:59px;padding:5px 9px}
  .tray-chip{width:35px;height:35px}
  .tray-count{min-width:47px}
  .selection-tray .button{min-height:34px}
  .viewer-stage{grid-template-columns:30px minmax(0,1fr) 30px}
  .viewer-stage img{max-height:calc(100vh - 330px)}
  .viewer-arrow{font-size:30px}
  .viewer-bottom{grid-template-columns:1fr 1fr;padding:11px}
  .viewer-bottom>span{padding-top:0}
  .viewer-buttons{justify-content:flex-end}
  .viewer-bottom .check-label,.viewer-bottom .note-label{grid-column:1 / -1}
  .review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:760px){.room-sidebar{padding-bottom:8px}}

[hidden]{display:none!important}

/* Notes stay tucked away until a selected proof is opened. */
.notes-photo{color:#9a4c1f!important;border-color:#dca47e!important}
.notes-photo[aria-expanded="true"],#viewerNotes[aria-expanded="true"]{background:#fff2e8!important;color:#9a4c1f!important}
.viewer-note-panel{grid-column:1 / -1;display:grid;grid-template-columns:235px minmax(0,1fr);align-items:start;gap:16px;border-top:1px solid var(--line);padding-top:11px}
.viewer-note-panel[hidden]{display:none!important}
.viewer-note-panel .check-label{margin:0}
.viewer-note-panel .note-label{margin:0}
@media(max-width:760px){
  .viewer-note-panel{grid-template-columns:1fr;gap:8px}
  .viewer-buttons{grid-column:1 / -1;justify-content:flex-start;flex-wrap:wrap}
}
@media(max-width:500px){
  .proof-details{flex-wrap:wrap}
  .proof-actions{width:100%;justify-content:flex-end}
  .proof-actions .button{flex:1}
}


/* Client gallery cleanup */
.gallery-header-info{font-size:20px;font-weight:700;color:var(--navy);letter-spacing:.01em}
.sidebar-intro{gap:6px}
.sidebar-intro span{text-transform:none;letter-spacing:.02em;font-size:12px;color:#a9bdcf}
.sidebar-intro strong{font-size:18px;line-height:1.25}
.gallery-intro{display:block}
.intro-main{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.intro-main>div:first-child{min-width:0}
.intro-count{border:0;padding:7px 0 0;display:flex;flex-direction:row;align-items:center;gap:9px;min-width:0;white-space:nowrap;color:var(--navy);font-size:14px;font-weight:700}
.intro-count b{font-weight:700}
.intro-separator{color:#b8c4cf;font-weight:400}
.intro-rule{text-align:center;margin-top:22px;padding:10px 14px;background:#edf3f7;color:var(--navy);border-radius:5px;font-size:13px;font-weight:700}
.proof-notice{margin-bottom:24px}
.room-chevron{font-size:25px;font-weight:900;line-height:.75;min-width:22px}
.room-heading>span{font-size:12px;font-weight:600}
.room-heading>span b{font-weight:700}
.gallery-controls{align-items:center;min-height:62px}
.gallery-controls label{min-height:36px;line-height:1;display:flex;align-items:center}
.gallery-controls select{height:36px;line-height:1.2}
.selected-filter{height:36px;display:inline-flex;align-items:center}
.proof-note{padding:9px}
.proof-note textarea{display:block;width:100%;min-height:64px}
.notes-photo.has-note,#viewerNotes.has-note{background:#fbe4d3!important;border-color:#d36c2b!important;color:#9a3c0b!important;font-weight:800;box-shadow:inset 0 0 0 1px #d36c2b}
.image-title{display:none}
.columns-4 .proof-card{position:relative}
.columns-4 .image-title{display:flex;position:absolute;left:0;right:0;bottom:0;flex-direction:column;gap:2px;background:#0d2035bd;color:#fff;padding:7px 9px;pointer-events:none;min-width:0}
.columns-4 .image-title strong,.columns-4 .image-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.columns-4 .image-title span{font-size:9px;color:#dbe6ef}
.columns-4 .proof-details{display:block;padding:7px 0}
.columns-4 .proof-title{display:none}
.columns-4 .proof-actions{display:flex;width:100%;gap:4px}
.columns-4 .proof-actions .button{flex:1;min-width:0;padding:5px 3px;font-size:10px;white-space:nowrap}
.tray-count{min-width:0;white-space:nowrap;align-items:center}
.tray-count strong{font-size:15px}
.viewer-note-panel{grid-template-columns:1fr}
.viewer-note-panel textarea{margin:0}

/* Admin proof workflow */
.batch-room-bar{position:sticky;top:78px;z-index:22;box-shadow:0 7px 18px #0f29411a}
.admin-photo.is-hidden{background:#edf0f3;border-color:#bac4cf}
.admin-photo.is-hidden .admin-photo-image img{filter:grayscale(1);opacity:.38}
.admin-photo.is-hidden .admin-photo-meta,.admin-photo.is-hidden .admin-photo-tools{opacity:.72}
.hidden-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;background:#11273f;color:#fff;padding:7px 9px;border-radius:4px;font-size:11px;font-weight:700;white-space:nowrap}
.admin-photo-image img{cursor:zoom-in}
.drag-corner,.batch-photo-check{top:8px;width:42px;height:42px;display:grid;place-items:center;box-sizing:border-box;padding:0;border-radius:5px;z-index:3}
.drag-corner{left:8px;letter-spacing:-4px;line-height:1}
.batch-photo-check{right:8px}
.batch-photo-check input{width:18px;height:18px}
.admin-photo-tools .visibility-photo{width:auto;min-width:42px;padding:0 5px;font-size:11px}
.admin-preview{width:min(1240px,calc(100vw - 28px));max-width:1240px;padding:0;border:0;border-radius:8px;overflow:hidden;box-shadow:0 18px 60px #0006}
.admin-preview::backdrop{background:#071626c9}
.admin-preview-top,.admin-preview-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:#fff}
.admin-preview-top>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.admin-preview-top strong{font-size:15px;color:var(--navy)}
.admin-preview-top span,.admin-preview-bottom{font-size:11px;color:#6b7e91}
.admin-preview-top span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-preview-stage{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;background:#102238}
.admin-preview-stage img{display:block;width:100%;max-height:calc(100vh - 150px);object-fit:contain}
.admin-preview-stage button{height:100%;border:0;background:transparent;color:#fff;font-size:42px;cursor:pointer}
.admin-preview-stage button:hover{background:#ffffff24}
@media(max-width:900px){.columns-4 .proof-details{display:flex}.columns-4 .proof-title{display:flex}.columns-4 .image-title{display:none}}
@media(max-width:760px){
 .gallery-header-info{font-size:16px}
 .intro-main{display:block}
 .intro-count{padding-top:14px;font-size:12px}
 .intro-rule{margin-top:16px}
 .batch-room-bar{top:110px}
 .admin-preview-stage{grid-template-columns:30px minmax(0,1fr) 30px}
 .admin-preview-stage button{font-size:30px}
 .tray-count{display:flex}
 .tray-count strong{font-size:13px}
}

.room-chevron{font-size:17px;font-weight:900;min-width:22px;line-height:1;text-align:center}

/* Proof administration and color preview */
.columns-4 .image-title{background:none;text-shadow:0 1px 3px #000,0 0 6px #0008}
.columns-4 .image-title span{color:#fff}
.proof-totals{display:flex;flex-direction:column;align-items:flex-end;gap:3px;color:#6b7e91;font-size:12px;line-height:1.15}
.proof-totals b{color:var(--navy);font-weight:800}
.batch-view-filters{margin-left:auto;display:flex;align-items:center;gap:9px}
.batch-view-filters label{white-space:nowrap;font-weight:700;color:#53677e}
.batch-view-filters select{max-width:150px}
.client-view-card{display:flex;flex-direction:column}
.client-view-kicker{color:#90aec6;font-size:10px;font-weight:800;letter-spacing:.16em}
.client-view-card h2{margin:14px 0 3px}
.client-view-card>p{margin:0 0 22px}
.client-view-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px}
.client-view-stats>div{display:flex;flex-direction:column;gap:5px;min-width:0;padding:13px 10px;background:#1b3854;border-radius:6px}
.client-view-stats strong{color:#fff;font-size:25px}
.client-view-stats span{color:#a9c0d3;font-size:10px}
.client-view-detail{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #314962;padding:13px 0;font-size:11px}
.client-view-detail>span{color:#9fb5c8;flex:none}
.client-view-detail strong{color:#fff;text-align:right;font-weight:600}
.client-view-link{margin-top:auto;align-self:flex-start}
.adjustments-panel{margin-bottom:24px!important}
.adjustments-panel .panel-heading{align-items:center}
.grade-selection-count{font-size:12px;color:#637a91;font-weight:700}
.grade-workspace{display:grid;grid-template-columns:minmax(230px,360px) minmax(0,1fr);gap:25px}
.grade-preview{position:relative;display:grid;place-items:center;min-height:195px;background:#e9eef2;border-radius:6px;overflow:hidden}
.grade-preview img{display:block;width:100%;aspect-ratio:3/2;object-fit:contain;background:#122238}
.grade-preview>span{padding:18px;color:#6d8093;font-size:12px;text-align:center}
.grade-preview small{position:absolute;left:8px;bottom:8px;padding:4px 6px;background:#112238cf;color:#fff;border-radius:3px;font-size:10px}
.grade-preview small:empty{display:none}
.grade-controls{display:grid;gap:11px}
.grade-controls label{display:grid;grid-template-columns:1fr auto;gap:5px;font-size:12px;font-weight:700;color:var(--navy)}
.grade-controls output{color:#61758a;font-weight:600}
.grade-controls input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--orange);cursor:pointer}
.grade-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#gradeStatus{font-size:11px;color:#61758a}
.admin-preview-bottom{align-items:center}
.admin-preview-actions{display:flex;align-items:center;gap:9px}
.admin-preview-actions label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700}
.admin-preview-actions select{padding:7px;border:1px solid #cbd7e2;border-radius:5px;background:#fff;color:var(--navy)}
@media(max-width:1000px){.batch-view-filters{margin-left:0}.grade-workspace{grid-template-columns:260px minmax(0,1fr)}}
@media(max-width:760px){.grade-workspace{grid-template-columns:1fr}.batch-view-filters{width:100%;justify-content:space-between}.batch-view-filters select{max-width:125px}.admin-preview-bottom{flex-wrap:wrap}}

.admin-photo.is-hidden .admin-photo-image{filter:grayscale(1)}

#proofAdjustments{scroll-margin-top:94px}
