:root{color-scheme:light;--bg:#fff;--bg-end:#eef0f3;--panel:#ffffffd9;--ink:#0e1320;--muted:#657080;--line:#dce1e7;--button:#14243e;--button-ink:#fff;--accent:#35669e;--soft:#eef2f7;--danger:#ac3643}*{box-sizing:border-box}html{min-height:100%;background:linear-gradient(130deg,var(--bg),var(--bg-end));color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px}body{margin:0;min-height:100vh}html[data-theme=dark]{color-scheme:dark;--bg:#0e1320;--bg-end:#192b46;--panel:#151e2ee8;--ink:#f5f7fc;--muted:#a5b2c5;--line:#344158;--button:#dce7f7;--button-ink:#0e1320;--accent:#99c3f7;--soft:#202e43;--danger:#ff9ba5}header,footer{display:flex;align-items:center;justify-content:space-between;padding:28px 5vw;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:28px;color:var(--ink);text-decoration:none}.brand span{padding-left:28px;border-left:1px solid var(--line);font-size:19px;font-weight:500}.logo{width:190px;height:auto}.light-logo{display:none}[data-theme=dark] .light-logo{display:block}[data-theme=dark] .dark-logo{display:none}nav,.actions,.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}main{max-width:1280px;margin:0 auto;padding:64px 5vw;min-height:calc(100vh - 185px)}footer{border-top:1px solid var(--line);border-bottom:0;color:var(--muted);font-size:12px;padding-top:22px;padding-bottom:22px}h1{font-size:38px;letter-spacing:-1.2px;font-weight:550;line-height:1.2;margin:0 0 16px}h2{font-size:21px;font-weight:550;margin:0 0 20px}h3{font-size:17px;margin:0 0 8px;font-weight:600}p{line-height:1.65;color:var(--muted);margin:0 0 22px}.intro{max-width:540px}.login-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;align-items:center;min-height:510px}.login-layout h1{font-size:54px;max-width:470px}.login-layout .intro p{font-size:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:28px}.login-panel{max-width:430px;width:100%}.login-panel button,.login-panel .button{width:100%;justify-content:center}.divider{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:12px;margin:24px 0}.divider:before,.divider:after{content:"";height:1px;flex:1;background:var(--line)}label{display:block;font-size:13px;margin:12px 0 8px}input,select{width:100%;padding:12px;border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--ink);font:inherit}input[type=checkbox]{width:auto}button,.button{font:inherit;border:1px solid transparent;border-radius:3px;padding:11px 17px;background:var(--button);color:var(--button-ink);cursor:pointer;text-decoration:none;display:inline-flex;gap:8px;align-items:center;line-height:1.3}button:hover,.button:hover{filter:brightness(.9)}button:disabled{opacity:.5;cursor:wait}.quiet{background:transparent;color:var(--ink);border-color:var(--line)}.danger{color:var(--danger);background:transparent;border-color:var(--line)}.small{font-size:12px;padding:7px 10px}small,.muted{color:var(--muted);font-size:13px}.topline{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:36px}.dashboard{display:grid;grid-template-columns:1fr 280px;gap:28px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.project{padding:24px;min-height:170px;text-align:left;color:var(--ink);background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.folder{font-size:28px;color:var(--accent);margin-bottom:20px}.project small{display:block;margin-top:10px}.empty{padding:50px 25px;text-align:center;background:var(--panel);border:1px dashed var(--line);border-radius:3px}.empty h2{margin-bottom:10px}progress{appearance:none;width:100%;height:5px;border:0;border-radius:0;background:var(--line);accent-color:var(--accent)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}.storage-value{font-size:24px;margin:15px 0 8px}.storage{margin-bottom:24px}.settings{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.settings label{line-height:1.5}.back{margin-bottom:24px}.upload-zone{border:1px dashed var(--line);background:var(--panel);padding:30px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0}.upload-zone.drag{border-color:var(--accent);background:var(--soft)}.upload-zone h3{margin-bottom:7px}.upload-zone p{margin:0;font-size:13px}.file-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.file-icon{background:var(--soft);color:var(--accent);padding:10px 3px;text-align:center;font-size:10px}.file-name{overflow-wrap:anywhere;font-weight:500}.file-row small{display:block;margin-top:5px}.file-actions{display:flex;gap:8px}.link-row{border-top:1px solid var(--line);padding:15px 0}.link-row input{font-size:12px;margin:8px 0}.section{margin-top:34px}.note{padding:14px;background:var(--soft);color:var(--muted);font-size:13px;line-height:1.5;border-radius:3px}.notice{margin:15px 0;color:var(--danger)}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--button);color:var(--button-ink);border-radius:3px;padding:16px 24px;max-width:90vw;z-index:100}dialog{width:min(1100px,94vw);height:min(820px,90vh);border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--ink);padding:0}dialog::backdrop{background:#060b15bb}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px;border-bottom:1px solid var(--line)}#preview-body{height:calc(100% - 76px);display:flex;align-items:center;justify-content:center;padding:12px}#preview-body img,#preview-body video{max-width:100%;max-height:100%;object-fit:contain}#preview-body iframe{width:100%;height:100%;border:0;background:white}#preview-body audio{width:90%}.admin-row{padding:22px 0;border-bottom:1px solid var(--line)}.admin-row .row{margin-top:15px}.admin-row select{width:auto}.admin-row input{width:100px}.admin-row strong{overflow-wrap:anywhere}.badge{font-size:11px;background:var(--soft);padding:5px 8px;border-radius:3px}.event{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.upload-item{padding:14px 0}.upload-item .row{justify-content:space-between;margin-bottom:8px}.share-head{max-width:650px;margin-bottom:40px}.share-head h1{overflow-wrap:anywhere}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}@media(max-width:800px){header,footer{padding:20px}.logo{width:120px}.brand{gap:12px}.brand span{padding-left:12px;font-size:16px}nav{gap:6px}nav button{font-size:12px;padding:8px}main{padding:36px 20px}.login-layout{grid-template-columns:1fr;gap:28px;min-height:0}.login-layout h1{font-size:40px}.login-panel{max-width:none}.dashboard{grid-template-columns:1fr}.topline{flex-direction:column}.upload-zone{align-items:flex-start;flex-direction:column}.file-row{grid-template-columns:32px minmax(0,1fr)}.file-actions{grid-column:2;flex-wrap:wrap}footer span:last-child{display:none}h1{font-size:30px}.panel{padding:20px}}

.pdf-view{height:100%;width:100%;display:flex;flex-direction:column;gap:12px}.pdf-controls{justify-content:center}.pdf-page{overflow:auto;text-align:center;flex:1}.pdf-page canvas{max-width:100%;height:auto;background:white}

#theme.theme-toggle{width:44px;height:44px;flex-shrink:0;padding:0;border-radius:50%;justify-content:center}#theme.theme-toggle svg{width:21px;height:21px;pointer-events:none}#theme.theme-toggle:hover{background:var(--soft)}

.password-field{position:relative}.password-field input{padding-right:52px}.login-panel .password-toggle{position:absolute;right:1px;top:1px;bottom:1px;width:44px;padding:0;border:0;justify-content:center}.password-toggle svg{width:22px;height:22px}.registration-link{margin-top:22px}a{color:var(--accent)}#register-challenge{margin:18px 0}#register-result{margin-top:16px}
/* Large, shared upload surface; both overview and project accept immediate uploads. */
main:has(.upload-zone){max-width:1600px;padding-top:36px}.upload-zone{min-height:52vh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;gap:18px;border:1px dashed var(--accent);border-radius:3px;transition:background .15s,border-color .15s}.upload-zone.drag{background:var(--soft);border-style:solid;outline:2px solid var(--accent);outline-offset:-6px}.upload-zone h2,.upload-zone p{margin:0}.upload-zone .actions{justify-content:center}.upload-symbol{font-size:50px;line-height:1;color:var(--accent)}.upload-zone #drop-status:empty{display:none}.project-name-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.project-name-row input{font-size:26px;width:min(580px,65vw);font-weight:550}.project-name-row+small{display:block;margin:8px 0;color:var(--accent)}.confirm-dialog{width:min(480px,calc(100vw - 32px));height:auto;padding:28px}.confirm-dialog .actions{justify-content:flex-end}.confirm-dialog p{white-space:normal}@media(max-width:800px){.upload-zone{min-height:48vh;padding:32px 18px;align-items:center}.project-name-row input{width:100%;font-size:22px}.confirm-dialog{padding:22px}}

.image-thumb{width:76px;height:64px;flex:0 0 76px;padding:0;overflow:hidden;background:var(--panel);border:1px solid var(--line)}.image-thumb img{width:100%;height:100%;object-fit:cover;display:block}#project-sync{display:block;margin:16px 0;color:var(--muted)}

.file-row{grid-template-columns:76px minmax(0,1fr) auto;column-gap:20px}.file-name{min-width:0}.preview-row{cursor:pointer}.preview-row:hover{background:var(--soft)}.image-thumb{max-width:100%}.preview-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}#lightbox[open]{display:flex;flex-direction:column}#lightbox .dialog-head{flex-shrink:0}#preview-title{min-width:0;overflow-wrap:anywhere}#preview-body{height:auto;flex:1;min-height:0;overflow:auto}.preview-navigation button:disabled{cursor:default}@media(max-width:800px){.file-row{grid-template-columns:64px minmax(0,1fr);column-gap:16px}.image-thumb{width:64px;height:64px}.file-actions{grid-column:2}.dialog-head{gap:12px}#preview-title{font-size:13px}.preview-navigation{padding:10px}}

/* Full viewport gallery, with controls outside the media area. */
#lightbox{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;border:0;border-radius:0;overflow:hidden;background:var(--bg)}#lightbox[open]{display:block}#lightbox #close-preview{position:absolute;z-index:3;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:44px;height:44px;padding:0;justify-content:center;border:0;background:transparent;color:var(--ink);font-size:34px;font-weight:300}#lightbox .gallery-arrow{position:absolute;z-index:2;top:50%;transform:translateY(-50%);height:140px;width:44px;padding:0;justify-content:center;background:transparent;color:var(--ink);border:0;font-size:28px}#lightbox .gallery-arrow span{display:block;transform:scaleX(.6) scaleY(1.8)}#preview-prev{left:0}#preview-next{right:0}#lightbox .gallery-arrow:disabled{opacity:.15;cursor:default}#lightbox #preview-body{position:absolute;inset:64px 56px 80px;padding:0;overflow:hidden;height:auto;display:flex;align-items:center;justify-content:center}#lightbox .gallery-caption{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:60px;right:60px;text-align:center;display:flex;flex-direction:column;gap:6px;max-height:60px;overflow:auto}#lightbox #preview-title{font-size:14px;font-weight:500;overflow-wrap:anywhere}#preview-count{color:var(--muted);font-size:12px}#lightbox .pdf-view{width:100%;height:100%;min-height:0}#lightbox .pdf-page{min-height:0;display:flex;justify-content:center;align-items:center}body:has(#lightbox[open]){overflow:hidden}@media(max-width:600px){#lightbox #preview-body{inset:64px 40px 88px}#lightbox .gallery-arrow{width:36px;font-size:24px}.gallery-caption{left:40px;right:40px}}

#share-actions{display:grid;grid-template-columns:1fr;gap:10px}#share-actions>button{width:100%;justify-content:center}

header nav{flex-wrap:nowrap;flex-shrink:0}#account-menu{position:relative}#menu-toggle{width:44px;height:44px;padding:10px;justify-content:center}#menu-toggle svg{width:24px;height:24px}#menu-panel{position:absolute;top:calc(100% + 10px);right:0;min-width:180px;padding:6px;border:1px solid var(--line);border-radius:3px;background:var(--bg);box-shadow:0 10px 30px #0003;z-index:20}#menu-panel button{display:flex;width:100%;border:0;text-align:left}#menu-panel button:hover{background:var(--soft)}@media(max-width:650px){header{flex-wrap:wrap;gap:14px}header nav{margin-left:auto}header:has(#new-project:not([hidden])) .brand span{display:none}#new-project{white-space:nowrap}}

.project-storage{margin-top:20px}.project-storage form>button{width:100%;justify-content:center;margin-top:18px}.project-storage small{display:block;line-height:1.5}.retention-admin{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.retention-admin small{display:block;margin-top:8px}.key-controls{margin:18px 0}.storage-result{margin-top:12px}
