:root{--paper:#F7F6F2;--bone:#F3F0E9;--cream:#EEEAE2;--ink:#171717;--muted:#77746F;--line:#D8D4CC;--brown:#6b5848;--pad:clamp(22px,6vw,92px);font-family:Manrope,Arial,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}header{position:relative;margin:18px auto 0;width:min(calc(100% - 36px),1380px);height:80px;padding:0 22px 0 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#6b5848f5;color:#fff8ef;border:1px solid #ffffff2e;border-radius:13px}.brand{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:700;line-height:1.2}.brand img{width:106px;height:80px;object-fit:contain}.brand small{display:block;font-size:11px;color:#fff8efb8;font-weight:500;margin-top:4px}.back{font-size:13px;white-space:nowrap}.back span{margin-left:14px}main{max-width:1380px;margin:auto;padding:64px var(--pad) 90px}.eyebrow{font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:700}h1{font-size:clamp(42px,5vw,68px);line-height:1.04;letter-spacing:-.055em;font-weight:600;margin:20px 0}h2{font-size:clamp(30px,3vw,42px);line-height:1.1;letter-spacing:-.045em;font-weight:500;margin:18px 0}p{color:var(--muted);margin:0 0 20px}.login{display:grid;grid-template-columns:1.15fr 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bone)}.login-art{padding:30px 40px 54px}.login-art>img{display:block;width:170px;height:145px;object-fit:contain;margin-bottom:20px}.login-art h1{font-size:clamp(38px,4vw,58px)}.login-form{padding:65px 44px;background:#fffdf9}.login-form>p{margin-bottom:32px}label{display:block;font-size:13px;font-weight:500}input{display:block;width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--paper);margin:8px 0 22px}input:focus,select:focus{outline:2px solid var(--brown);outline-offset:3px}button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:46px;padding:0 21px;background:var(--brown);color:#fff8ef;border:1px solid var(--brown);border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s}button:hover{background:#5C4430}button:disabled{opacity:.5;cursor:wait}form button{width:100%;justify-content:space-between}.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.secondary:hover{background:var(--cream)}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:42px}.heading p{margin-bottom:0}.heading>button{margin-bottom:6px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:24px}.period{display:flex;align-items:center;gap:18px}select{padding:11px 36px 11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bone);color:var(--ink);font-size:13px}#status{font-size:12px;min-height:22px;margin:16px 0 28px}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat{padding:26px;background:var(--cream);border-radius:14px;min-width:0}.stat .value{display:block;font-size:clamp(28px,3vw,44px);font-weight:500;letter-spacing:-.05em;line-height:1.25;margin:18px 0 8px;overflow-wrap:anywhere}.stat p{font-size:12px;margin:0}.reports{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.card{padding:30px;background:#fffdf9;border:1px solid var(--line);border-radius:14px;min-width:0}.card.wide{grid-column:1/-1}.card h2{font-size:23px;margin:0 0 8px;letter-spacing:-.025em}.card .caption{font-size:12px;margin-bottom:26px}.legend{display:flex;gap:20px;font-size:12px;color:var(--muted);margin-bottom:16px}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}.chart{width:100%;display:block;height:auto;overflow:visible}.chart text{font-family:Manrope,Arial,sans-serif;fill:var(--muted);font-size:11px}.bar-item{margin:20px 0}.bar-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:9px;font-size:13px}.bar-heading span:first-child{overflow-wrap:anywhere}.bar-heading strong{white-space:nowrap;font-weight:500}.bar-heading small{color:var(--muted);margin-left:8px;font-weight:400}.bar-track{height:7px;background:var(--cream);border-radius:8px;overflow:hidden}.bar-fill{height:100%;background:var(--brown);border-radius:8px}.table-wrap{overflow:auto}details{margin-top:26px;border-top:1px solid var(--line);padding-top:18px}summary{font-size:12px;cursor:pointer;color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:12px;margin-top:16px}th{text-align:left;font-weight:500;color:var(--muted)}td,th{padding:11px 6px;border-bottom:1px solid var(--cream)}td:first-child{overflow-wrap:anywhere}td:not(:first-child),th:not(:first-child){text-align:right;white-space:nowrap}.footnote{font-size:11px;margin:26px 0 0}footer{background:var(--ink);color:#ccc;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px var(--pad);font-size:11px}footer img{width:115px;height:85px;object-fit:contain}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#login-message{font-size:13px;margin-top:18px}@media(max-width:800px){main{padding-top:42px}.login{grid-template-columns:1fr}.login-art{padding:25px 28px 32px}.login-art>img{width:130px;height:100px;margin-bottom:14px}.login-form{padding:36px 28px}.reports{grid-template-columns:1fr}.summary{gap:10px}.stat{padding:20px}.stat .eyebrow{font-size:9px}}@media(max-width:520px){header{height:72px;padding-right:14px}.brand img{width:80px;height:65px}.brand span{font-size:10px}.brand small{font-size:9px}.back{font-size:11px}.back span{display:none}.heading{align-items:flex-start;flex-direction:column;margin-bottom:30px}.summary{grid-template-columns:1fr}.stat{display:grid;grid-template-columns:1fr auto;align-items:center}.stat .value{margin:0;font-size:32px}.stat p{grid-column:1/-1;margin-top:5px}.period{gap:9px}.period>.eyebrow{display:none}.toolbar{gap:8px}.toolbar button{padding:0 12px}.card{padding:24px 20px}footer{flex-wrap:wrap;gap:10px}footer span:last-child{display:none}}

.period-control{position:relative}.period-toggle{min-width:220px;justify-content:flex-start;gap:12px;background:var(--bone);color:var(--ink);border-color:var(--line);min-height:48px;padding:0 16px}.period-toggle:hover,.period-toggle[aria-expanded="true"]{background:var(--cream);border-color:var(--brown)}.period-chevron{margin-left:auto;font-size:20px;line-height:1;transform:translateY(-3px);transition:transform .2s}.period-toggle[aria-expanded="true"] .period-chevron{transform:rotate(180deg)}.period-options{position:absolute;z-index:20;top:calc(100% + 10px);left:0;width:290px;padding:10px;background:#fffdf9;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px #3f30251a}.period-menu-title{display:block;padding:10px 12px 12px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600}.period-options button{width:100%;justify-content:space-between;text-align:left;padding:13px 12px;background:transparent;border:0;color:var(--ink);border-radius:9px;gap:12px}.period-options button:hover{background:var(--bone)}.period-options button[aria-pressed="true"]{background:var(--cream);color:var(--brown)}.period-options strong{display:block;font-size:13px;font-weight:600}.period-options small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}.period-check{visibility:hidden;font-size:17px}.period-options [aria-pressed="true"] .period-check{visibility:visible}.period-toggle:focus-visible,.period-options button:focus-visible{outline:2px solid var(--brown);outline-offset:3px}@media(max-width:520px){.period-toggle{min-width:195px;padding:0 12px;gap:9px}.period-options{width:min(290px,calc(100vw - 44px))}.toolbar{align-items:flex-start}}


.admin-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:30px;padding-bottom:12px}.admin-tabs button{background:transparent;color:var(--muted);border-color:transparent;min-width:105px}.admin-tabs button:hover{background:var(--cream)}.admin-tabs [aria-selected="true"]{background:var(--brown);color:#fff8ef}.admin-tabs button:focus-visible{outline:2px solid var(--brown);outline-offset:3px}.editor-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:35px 0}.editor-heading h2{font-size:clamp(28px,3vw,40px)}.editor-heading p{font-size:14px;max-width:600px}.review-card{margin-bottom:20px}.review-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.review-head>span{font-size:10px;letter-spacing:.13em;color:var(--muted)}.review-head>div{display:flex;gap:7px}.review-head button{min-height:36px;padding:0 12px;font-size:12px}textarea{font:inherit;display:block;width:100%;resize:vertical;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--paper);margin:8px 0 15px;line-height:1.6}textarea:focus{outline:2px solid var(--brown);outline-offset:3px}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.photo-preview{width:100%;height:260px;object-fit:cover;border-radius:10px;background:var(--cream);margin:14px 0 24px}.photo-card h2{font-size:20px}.photo-card p{font-size:11px;margin:0}.upload-label input{font-size:11px;padding:10px;max-width:100%}.upload-label input::file-selector-button{font:inherit;background:var(--cream);color:var(--ink);border:0;border-radius:6px;padding:8px;cursor:pointer;margin-right:8px}.publish-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}.publish-bar p{font-size:13px;margin:0;max-width:700px}.publish-bar button{flex-shrink:0}@media(max-width:1000px){.photo-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.photo-grid{grid-template-columns:1fr}.editor-heading,.publish-bar{align-items:flex-start;flex-direction:column}.publish-bar button{width:100%}.admin-tabs button{min-width:0;flex:1}.review-head{align-items:flex-start}.photo-preview{height:330px}}

body.login-screen{height:100svh;min-height:0;display:flex;flex-direction:column}
.login-screen header{flex-shrink:0}
.login-screen main{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vh,32px) var(--pad)}
.login-screen .login{width:100%;max-width:1170px;max-height:100%;margin:0;align-items:center}
.login-screen .login-art{padding:clamp(18px,3vh,36px) clamp(24px,3vw,40px)}
.login-screen .login-art>img{width:clamp(100px,12vw,150px);height:clamp(80px,14vh,125px);margin-bottom:clamp(8px,2vh,18px)}
.login-screen .login-art h1{font-size:clamp(30px,4vw,54px);margin:clamp(10px,2vh,20px) 0}
.login-screen .login-art p{font-size:14px;margin-bottom:0}
.login-screen .login-form{padding:clamp(22px,4vh,48px) clamp(24px,3vw,44px);align-self:stretch}
.login-screen .login-form h2{font-size:clamp(28px,3vw,40px);margin:12px 0}
.login-screen .login-form>p{margin-bottom:clamp(12px,2vh,24px);font-size:13px}
.login-screen input{margin:6px 0 16px;padding:11px 14px}
.login-screen #login-message{margin:10px 0 0;font-size:12px;line-height:1.4}
.login-screen #login-message:empty{display:none}
.login-screen footer{flex-shrink:0;padding:6px var(--pad);min-height:58px}
.login-screen footer img{height:50px;width:80px}
@media(max-width:800px){.login-screen .login{max-width:480px;grid-template-columns:1fr}.login-screen .login-art{display:none}.login-screen .login-form{padding:clamp(20px,4vh,38px) 26px}.login-screen main{padding:16px 22px}.login-screen footer{flex-wrap:nowrap}.login-screen footer span{font-size:10px}}
@media(max-height:650px){.login-screen header{height:60px;margin-top:10px}.login-screen .brand img{height:58px;width:78px}.login-screen main{padding-top:10px;padding-bottom:10px}.login-screen .login-form{padding-top:16px;padding-bottom:16px}.login-screen .login-form h2{margin:8px 0;font-size:28px}.login-screen input{padding:8px 12px;margin-bottom:12px}.login-screen form button{min-height:40px}.login-screen .login-form>p{margin-bottom:12px}.login-screen .login-art>img{height:70px;margin-bottom:8px}.login-screen footer{min-height:40px;padding-top:2px;padding-bottom:2px}.login-screen footer img{height:36px}}
@media(max-height:450px){.login-screen main{padding:6px 22px}.login-screen .login{max-width:680px;grid-template-columns:1fr}.login-screen .login-art,.login-screen .login-form>.eyebrow,.login-screen .login-form>p,.login-screen .login-form>h2{display:none}.login-screen .login-form{padding:14px 20px}.login-screen form{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.login-screen form button{grid-column:1/-1}.login-screen footer{min-height:32px}.login-screen footer img{height:28px}}

.header-controls{display:flex;align-items:center;gap:22px;margin-left:auto}
header .admin-tabs{margin:0;padding:0;border:0;gap:5px}
header .admin-tabs button{min-width:82px;color:#fff8efbd;border:0;padding:0 14px}
header .admin-tabs button:hover{background:#ffffff12}
header .admin-tabs [aria-selected="true"]{background:var(--cream);color:#3F3025}
header #logout{color:#fff8ef;border-color:#fff8ef40;font-size:12px;white-space:nowrap;padding:0 14px}
header #logout:hover{background:#ffffff12}
header .admin-tabs button:focus-visible,header #logout:focus-visible{outline-color:var(--cream)}
body:not(.login-screen) main{padding-top:32px}
body:not(.login-screen) .toolbar{border-top:0;padding-top:0}
.login-screen .header-controls{display:none}
@media(max-width:1100px){.header-controls{gap:12px}body:not(.login-screen) header .brand span{font-size:11px}body:not(.login-screen) header .back{display:none}}
@media(max-width:800px){body:not(.login-screen) header{display:grid;grid-template-columns:1fr auto;height:auto;gap:6px 12px;padding:0 14px 12px}body:not(.login-screen) .header-controls{display:contents}body:not(.login-screen) header .brand{grid-column:1;grid-row:1}body:not(.login-screen) header #logout{grid-column:2;grid-row:1;min-height:38px}body:not(.login-screen) header .admin-tabs{grid-column:1/-1;grid-row:2;display:flex;width:100%}body:not(.login-screen) header .admin-tabs button{flex:1;min-width:0;min-height:42px}.login-screen header .back{display:block}}

.photo-frame{position:relative;overflow:hidden;border-radius:10px;background:var(--cream);margin:14px 0 12px}.photo-frame .photo-preview{position:absolute;inset:0;width:100%;height:100%;margin:0;border-radius:0;object-fit:cover}.crop-modes{display:flex;gap:8px;margin-bottom:10px}.crop-modes button{min-height:34px;padding:0 12px;font-size:11px}.crop-modes [aria-pressed=true]{background:var(--brown);color:white}.photo-card input[type=range]{padding:0;accent-color:var(--brown);width:100%;min-height:28px;margin:8px 0 14px}.photo-card .upload-label{display:block;margin-top:22px}.photo-card>p{margin-bottom:18px}

/* Compact photo editor; preview proportions remain fixed. */
.photo-card{padding:20px}.photo-card h2{font-size:18px;margin-bottom:4px}.photo-frame{width:200px;max-width:100%;margin:10px auto;max-height:none}.photo-card .crop-modes{justify-content:center;margin-bottom:8px}.photo-card>label{font-size:11px;margin-top:8px}.photo-card input[type=range]{min-height:20px;margin:4px 0 8px}.photo-card>p{font-size:10px;margin-bottom:10px}.photo-card .upload-label{margin-top:12px}.photo-card .upload-label input{margin:4px 0 8px;padding:6px}.photo-card>label:not(.upload-label) input:not([type=range]){padding:8px 10px;margin:4px 0 8px}.photo-card>button{min-height:32px;font-size:11px;padding:0 12px}@media(max-width:600px){.photo-card{padding:16px}.photo-frame{width:175px}.photo-grid{gap:14px}}
