:root{--ink:#151714;--paper:#f4f1e9;--white:#fffdf7;--green:#174f43;--lime:#c7f24b;--coral:#ef6a4c;--line:rgba(21,23,20,.18)}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;letter-spacing:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
.admin-header{height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 1.5rem;background:var(--ink);color:var(--white);border-bottom:1px solid #393b38}.admin-brand{display:flex;align-items:center;gap:.7rem;color:var(--white);text-decoration:none;text-transform:uppercase;font-size:.7rem}.admin-brand span{display:grid;place-items:center;width:34px;height:34px;background:var(--white);color:var(--ink);font-weight:800}.local-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;border:1px solid #4f524d;padding:.45rem .7rem;border-radius:999px}.local-badge i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);margin-right:.45rem;box-shadow:0 0 10px var(--lime)}.return-link{justify-self:end;color:inherit;font-size:.68rem;text-transform:uppercase;text-underline-offset:.25rem}
.admin-shell{height:calc(100vh - 64px);display:grid;grid-template-columns:360px minmax(0,1fr)}.database-panel{border-right:1px solid var(--ink);display:flex;flex-direction:column;min-height:0}.database-title{display:flex;align-items:flex-end;justify-content:space-between;padding:1.5rem}.database-title p,.record-label,.script-editor-head p{margin:0 0 .35rem;text-transform:uppercase;font-size:.6rem;font-weight:800;letter-spacing:.1em}.database-title h1{font-family:Georgia,serif;font-size:2.3rem;font-weight:400;margin:0}.add-button,.save-button{border:0;background:var(--coral);padding:.7rem .85rem;font-weight:800;font-size:.68rem;cursor:pointer}.add-button:hover,.save-button:hover{background:var(--lime)}
.admin-search{margin:0 1.5rem;border-bottom:1px solid}.admin-search input{width:100%;border:0;background:transparent;padding:.7rem 0;outline:0}.record-count{margin:1rem 1.5rem .5rem;font-size:.62rem;text-transform:uppercase}.person-list{overflow:auto;border-top:1px solid var(--line)}.person-row{width:100%;display:grid;grid-template-columns:45px 1fr auto;gap:.75rem;align-items:center;padding:1rem 1.5rem;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.person-row:hover,.person-row.active{background:#b8d7e8}.person-row>span,.person-row small{font-size:.6rem}.person-row strong{display:block;font-family:Georgia,serif;font-size:1rem;font-weight:400}.person-row em{display:block;font-size:.62rem;font-style:normal;color:#5c5f59;margin-top:.2rem}.status-dot{width:8px;height:8px;border-radius:50%;background:#b4b5b0}.status-dot.approved{background:#4b9f64}.status-dot.withheld{background:#c04835}.status-dot.anonymised{background:#9576bb}
.editor-panel{min-width:0;overflow:auto}.editor-empty{min-height:100%;display:grid;place-items:center;color:#74776f;font-family:Georgia,serif}.form-heading{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2.5rem;background:rgba(244,241,233,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.form-heading h2{font-family:Georgia,serif;font-size:2.2rem;font-weight:400;margin:0}.save-cluster{display:flex;align-items:center;gap:1rem}.save-status{font-size:.68rem}.save-status.error{color:#a13020}.save-status.success{color:#25703b}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;padding:2.5rem}.form-grid label,.script-editor label{display:flex;flex-direction:column;gap:.45rem}.form-grid label>span,.script-editor label>span{font-size:.63rem;text-transform:uppercase;font-weight:800}.form-grid small{font-weight:400;color:#6e716a}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea,.script-editor input,.script-editor textarea{width:100%;border:1px solid var(--ink);border-radius:0;background:var(--white);padding:.75rem;outline:none}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.script-editor input:focus,.script-editor textarea:focus{box-shadow:0 0 0 3px rgba(23,79,67,.18)}.form-grid .compact{max-width:180px}
.profile-image-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem 1rem;align-items:end}.profile-image-control>label:first-child{display:flex;flex-direction:column;gap:.45rem}.profile-image-control>label:first-child>span{font-size:.63rem;text-transform:uppercase;font-weight:800}.upload-button{position:relative;display:inline-flex!important;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--ink);background:var(--green);color:var(--white);padding:.7rem .9rem;cursor:pointer;font-size:.62rem;font-weight:800;text-transform:uppercase}.upload-button:hover{background:var(--coral);color:var(--ink)}.upload-button input{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}.upload-help{grid-column:1/-1;color:#62655f;font-size:.65rem}
.script-editor{margin:0 2.5rem 3rem;border-top:1px solid;padding-top:2rem}.script-editor-head{display:flex;align-items:end;justify-content:space-between;gap:2rem}.script-editor h3{font-family:Georgia,serif;font-size:2rem;font-weight:400;margin:0}.script-editor-head label{width:220px}.script-help{font-size:.7rem;color:#60635d}.script-help code{background:#dedbd3;padding:.15rem .3rem}.script-editor textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.65;resize:vertical;min-height:460px}
@media(max-width:850px){.admin-header{grid-template-columns:1fr auto}.local-badge{display:none}.admin-shell{height:auto;grid-template-columns:1fr}.database-panel{height:42vh;border-right:0;border-bottom:1px solid}.editor-panel{min-height:58vh}.form-grid{grid-template-columns:1fr;padding:1.5rem}.form-grid .wide{grid-column:auto}.script-editor{margin:0 1.5rem 2rem}.form-heading{padding:1rem 1.5rem}.save-status{display:none}}
.admin-tabs{height:100%;display:flex}.admin-tabs a{display:flex;align-items:center;color:#bfc2bb;text-decoration:none;padding:0 1rem;border-bottom:3px solid transparent;font-size:.66rem;text-transform:uppercase;font-weight:800}.admin-tabs a:hover,.admin-tabs a.active{color:var(--white);border-color:var(--coral)}
.overview-shell{min-height:calc(100vh - 64px);padding:2.5rem;background:var(--paper)}.overview-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem}.overview-heading p{margin:0 0 .35rem;text-transform:uppercase;font-size:.6rem;font-weight:800;letter-spacing:.1em}.overview-heading h1{font-family:Georgia,serif;font-size:3rem;font-weight:400;margin:0}.overview-heading>div>span{display:block;margin-top:.5rem;color:#62655f;font-size:.72rem}.overview-search{width:min(340px,100%);border-bottom:1px solid}.overview-search input{width:100%;border:0;background:transparent;padding:.7rem 0;outline:0}.coverage-summary{display:grid;grid-template-columns:repeat(6,1fr);margin:2rem 0;border:1px solid var(--ink);background:var(--white)}.coverage-summary div{padding:1rem 1.2rem;min-width:0}.coverage-summary div+div{border-left:1px solid var(--line)}.coverage-summary strong{display:block;font-family:Georgia,serif;font-size:2rem;font-weight:400}.coverage-summary span{display:block;margin-top:.2rem;font-size:.58rem;text-transform:uppercase}.coverage-controls{display:flex;gap:.45rem;flex-wrap:wrap}.coverage-filter{border:1px solid var(--ink);background:transparent;padding:.5rem .7rem;font-size:.62rem;cursor:pointer}.coverage-filter:hover,.coverage-filter.active{background:var(--ink);color:var(--white)}.coverage-count{font-size:.6rem;text-transform:uppercase;margin:1rem 0}.coverage-table-wrap{overflow:auto;border:1px solid var(--ink);background:var(--white)}.coverage-table{width:100%;border-collapse:collapse;min-width:1100px}.coverage-table th{position:sticky;top:0;background:var(--green);color:var(--white);text-align:left;padding:.75rem;font-size:.58rem;text-transform:uppercase}.coverage-table td{padding:.85rem .75rem;border-top:1px solid var(--line);font-size:.68rem;vertical-align:middle}.coverage-table tr:hover td{background:#eef5f7}.coverage-person{display:grid;grid-template-columns:34px minmax(150px,1fr);align-items:center;gap:.4rem}.coverage-person b{font-size:.58rem}.coverage-person strong{font-family:Georgia,serif;font-size:.95rem;font-weight:400}.coverage-pill{display:inline-flex;align-items:center;gap:.35rem;font-weight:800}.coverage-pill i{width:8px;height:8px;border-radius:50%;background:#b4b5b0}.coverage-pill.available i{background:#4b9f64}.coverage-pill.missing{color:#777a73}.coverage-table td small{display:block;margin-top:.2rem;color:#6a6d66}.record-state{display:inline-block;border:1px solid;padding:.35rem .5rem;text-transform:uppercase;font-size:.55rem;font-weight:800}.record-state.complete{background:#d9efc9}.record-state.incomplete{background:#ffdda0}.edit-record{border:0;border-bottom:1px solid;background:transparent;padding:.25rem 0;cursor:pointer;font-size:.62rem;font-weight:800}.coverage-empty{text-align:center;padding:3rem!important;color:#6a6d66}
@media(max-width:850px){.admin-header{grid-template-columns:auto 1fr}.return-link{display:none}.admin-tabs{justify-self:end}.admin-tabs a{padding:0 .65rem}.overview-shell{padding:1.25rem}.overview-heading{align-items:start;flex-direction:column}.overview-search{width:100%}.coverage-summary{grid-template-columns:repeat(2,1fr)}.coverage-summary div+div{border-left:0}.coverage-summary div:nth-child(even){border-left:1px solid var(--line)}.coverage-summary div:nth-child(n+3){border-top:1px solid var(--line)}}
.form-identity{display:flex;align-items:center;gap:1rem;min-width:0}.admin-portrait-preview{width:64px;height:64px;flex:0 0 64px;margin:0;border:1px solid var(--ink);background:var(--white);display:grid;place-items:center;overflow:hidden}.admin-portrait-preview img{width:100%;height:100%;object-fit:cover}.admin-portrait-preview span{font-family:Georgia,serif;font-size:1.35rem}.coverage-person{grid-template-columns:42px minmax(170px,1fr)}.coverage-person>img,.coverage-person>i{width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--green);color:var(--white);display:grid;place-items:center;font-family:Georgia,serif;font-style:normal}.coverage-person>span{display:block}.coverage-person>span b,.coverage-person>span strong{display:block}.coverage-summary{grid-template-columns:repeat(7,1fr)}.identity-state{display:inline-block;padding:.3rem .45rem;border:1px solid;font-size:.55rem;font-weight:800;text-transform:uppercase}.identity-state.cleared{background:#d9efc9}.identity-state.review{background:#ffdda0}
.coverage-table{min-width:1240px}@media(max-width:850px){.coverage-summary{grid-template-columns:repeat(2,1fr)}.coverage-summary div:last-child{grid-column:1/-1;border-top:1px solid var(--line)!important}}
.videos-shell{min-height:calc(100vh - 64px);padding:2.5rem;background:var(--paper)}.video-settings-form{max-width:1100px;margin:auto}.video-settings-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding-bottom:2rem;border-bottom:1px solid var(--ink)}.video-settings-heading p{margin:0 0 .35rem;text-transform:uppercase;font-size:.6rem;font-weight:800}.video-settings-heading h1{font-family:Georgia,serif;font-size:3rem;font-weight:400;margin:0}.video-settings-heading>div>span{display:block;margin-top:.5rem;color:#62655f;font-size:.72rem}.video-setting-list{border:1px solid var(--ink);border-bottom:0;margin-top:2rem;background:var(--white)}.video-setting-row{display:grid;grid-template-columns:48px 36px minmax(180px,.65fr) minmax(280px,1.35fr);gap:1rem;align-items:end;padding:1.5rem;border-bottom:1px solid var(--ink)}.video-setting-index{font-family:Georgia,serif;font-size:1.5rem}.video-setting-play{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--ink);font-size:.65rem}.video-setting-row label{display:flex;flex-direction:column;gap:.45rem}.video-setting-row label span{font-size:.6rem;text-transform:uppercase;font-weight:800}.video-setting-row input{width:100%;border:1px solid var(--ink);background:var(--paper);padding:.75rem;outline:0}.video-setting-row input:focus{box-shadow:0 0 0 3px rgba(23,79,67,.18)}
@media(max-width:850px){.videos-shell{padding:1.25rem}.video-settings-heading{align-items:flex-start;flex-direction:column}.video-setting-row{grid-template-columns:38px 32px 1fr}.video-setting-row label{grid-column:1/-1}}
.images-shell{min-height:calc(100vh - 64px);padding:2.5rem;background:var(--paper)}.image-settings-form{max-width:1380px;margin:auto}.image-settings-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding-bottom:2rem;border-bottom:1px solid var(--ink)}.image-settings-heading p,.image-setting-group>div>p{margin:0 0 .35rem;text-transform:uppercase;font-size:.6rem;font-weight:800}.image-settings-heading h1{font-family:Georgia,serif;font-size:3rem;font-weight:400;margin:0}.image-settings-heading>div>span{display:block;margin-top:.5rem;color:#62655f;font-size:.72rem}.image-setting-group{padding:2rem 0;border-bottom:1px solid var(--ink)}.image-setting-group>div{display:flex;align-items:baseline;gap:1rem;margin-bottom:1rem}.image-setting-group h2{font-family:Georgia,serif;font-weight:400;font-size:1.8rem;margin:0}.image-setting-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--ink);background:var(--white)}.image-setting-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.image-setting-card{min-width:0;padding:1rem;border-right:1px solid var(--ink)}.image-setting-card:last-child{border-right:0}.image-setting-card figure{aspect-ratio:4/3;margin:0 0 1rem;background:var(--green);display:grid;place-items:center;overflow:hidden;color:var(--white);font-family:Georgia,serif}.image-setting-card figure img{width:100%;height:100%;object-fit:cover}.image-setting-card>label:not(.upload-button){display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.image-setting-card>label>span{font-size:.58rem;text-transform:uppercase;font-weight:800}.image-setting-card input{width:100%;min-width:0;border:1px solid var(--ink);background:var(--paper);padding:.65rem;outline:0}.image-setting-card .upload-button{width:100%;margin-top:.2rem}.image-setting-card .upload-button input{width:1px}.image-setting-card input:focus{box-shadow:0 0 0 3px rgba(23,79,67,.18)}
@media(max-width:950px){.images-shell{padding:1.25rem}.image-settings-heading{align-items:flex-start;flex-direction:column}.image-setting-grid,.image-setting-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.image-setting-card{border-bottom:1px solid var(--ink)}.image-setting-card:nth-child(2n){border-right:0}}@media(max-width:560px){.image-setting-grid,.image-setting-grid.four{grid-template-columns:1fr}.image-setting-card{border-right:0}.profile-image-control{grid-template-columns:1fr}}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:2rem;background:var(--green)}.login-form{width:min(430px,100%);background:var(--paper);border:1px solid var(--ink);padding:clamp(2rem,5vw,3.5rem);display:grid;gap:1.2rem}.login-brand{display:flex;align-items:center;gap:.65rem;color:var(--ink);text-decoration:none;text-transform:uppercase;font-size:.68rem;margin-bottom:1.5rem}.login-brand>span{width:36px;height:36px;display:grid;place-items:center;background:var(--ink);color:var(--white);font-weight:800}.login-form p{margin:0}.login-form>div>p{font-size:.6rem;font-weight:800;text-transform:uppercase}.login-form h1{font-family:Georgia,serif;font-size:3rem;font-weight:400;line-height:1;margin:.3rem 0 1.2rem}.login-form label{display:flex;flex-direction:column;gap:.45rem}.login-form label span{font-size:.62rem;font-weight:800;text-transform:uppercase}.login-form input{width:100%;border:1px solid var(--ink);background:var(--white);padding:.8rem;outline:0}.login-form input:focus{box-shadow:0 0 0 3px rgba(23,79,67,.18)}.login-button{border:0;background:var(--coral);padding:.85rem;font-weight:800;cursor:pointer}.login-button:hover{background:var(--lime)}.login-status{min-height:1.2rem;color:#a13020;font-size:.7rem}.login-return{font-size:.65rem;text-align:center}.admin-account{justify-self:end;display:flex;align-items:center;gap:1rem}.admin-account>span{font-size:.62rem;color:#bfc2bb}.admin-account button{border:0;border-bottom:1px solid;background:transparent;color:var(--white);padding:.25rem 0;font-size:.62rem;cursor:pointer}
.users-shell{min-height:calc(100vh - 64px);padding:2.5rem;background:var(--paper)}.users-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;max-width:1280px;margin:auto;padding-bottom:2rem}.users-heading p{margin:0 0 .35rem;text-transform:uppercase;font-size:.6rem;font-weight:800}.users-heading h1{font-family:Georgia,serif;font-size:3rem;font-weight:400;margin:0}.users-status{max-width:1280px;min-height:1.2rem;margin:0 auto .75rem;font-size:.68rem}.user-list{max-width:1280px;margin:auto;border:1px solid var(--ink);border-bottom:0;background:var(--white)}.user-row{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(150px,1fr) repeat(4,minmax(110px,.7fr)) 110px minmax(150px,.85fr) 80px;gap:.8rem;align-items:end;padding:1.2rem;border-bottom:1px solid var(--ink)}.user-row label{display:flex;flex-direction:column;gap:.4rem;min-width:0}.user-row label>span,.user-active>span{font-size:.56rem;text-transform:uppercase;font-weight:800}.user-row input,.user-row select{width:100%;min-width:0;border:1px solid var(--ink);background:var(--paper);padding:.65rem;outline:0}.user-row input:focus,.user-row select:focus{box-shadow:0 0 0 3px rgba(23,79,67,.18)}.user-active{display:flex;flex-direction:column;gap:.65rem}.user-active input{width:18px;height:18px}.user-save{border:0;background:var(--coral);padding:.7rem .5rem;font-size:.62rem;font-weight:800;cursor:pointer}.user-save:hover{background:var(--lime)}.user-row.admin-user{background:#edf4e8}.user-row.admin-user select,.user-row.admin-user .user-active input{opacity:.55}.access-note{padding:.75rem 1rem;background:#ffdda0;border-bottom:1px solid var(--ink);font-size:.68rem}.read-only-control{opacity:.55;pointer-events:none}
@media(max-width:1050px){.admin-header{grid-template-columns:auto 1fr}.admin-account>span,.return-link{display:none}.user-row{grid-template-columns:repeat(2,minmax(0,1fr))}.user-row .user-save{align-self:end}.users-shell{padding:1.25rem}}

/* Hosted Sites access uses the viewer's ChatGPT identity instead of shared passwords. */
.login-button{display:block;color:var(--ink);text-align:center;text-decoration:none}
.login-form [data-local-login]{display:grid;gap:1rem}
.users-heading>div>span{display:block;margin-top:.45rem;color:#62655f;font-size:.72rem}
.user-row{grid-template-columns:minmax(180px,1fr) minmax(150px,1fr) repeat(4,minmax(105px,.65fr)) 90px 80px}
