*{box-sizing:border-box}body{margin:0;background:#f7f9f8;color:#233e35;font:14px 'Segoe UI','Microsoft YaHei',sans-serif}button,input,select{font:inherit}button,a,select{cursor:pointer}button{border:1px solid #dce5df;background:white;color:#466054;border-radius:8px;padding:10px 15px;transition:.2s}button:hover{background:#edf5ef;border-color:#a2c0ad}a{color:inherit;text-decoration:none}aside{position:fixed;width:250px;inset:0 auto 0 0;background:#fff;border-right:1px solid #e3eae5;padding:35px 22px;display:flex;flex-direction:column}.brand{font-size:29px;color:#316b4e;display:flex;gap:12px;align-items:center;letter-spacing:1px}.brand span{font-size:22px;font-weight:700}.brand small{font-size:17px;font-weight:400;margin-left:5px}.side-label{font-size:12px;color:#9ca99f;margin:48px 10px 14px;display:flex;justify-content:space-between;align-items:center}.side-label span{font-size:9px;letter-spacing:2px}.folders-label{margin-top:28px}.folders-label button{padding:0;border:none;font-size:22px;color:#7e9c87}.nav{display:block;text-align:left;width:100%;border:0;margin:5px 0;padding:13px;background:transparent;color:#788b80}.nav.active{background:#eaf3ec;color:#367451;font-weight:600}.nav b{float:right;background:#d9e9de;padding:1px 6px;border-radius:4px;font-size:11px}.side-bottom{margin-top:auto}.storage{padding:24px 10px;border-top:1px solid #edf0ed;margin-top:22px;font-size:11px;color:#8b9a91}.storage strong{float:right;color:#557663}.storage p{font-size:10px;color:#acb5ad}.identity{display:flex;align-items:center;gap:10px;padding-top:20px;border-top:1px solid #edf0ed;font-size:12px}.identity small{display:block;color:#9aa69e;font-size:10px;margin-top:4px}.avatar{background:#dfece2;color:#417859;padding:10px 13px;border-radius:50%;font-weight:700}.main{margin-left:250px}header{height:82px;padding:0 48px;background:#fff;border-bottom:1px solid #e6ebe7;display:flex;align-items:center;justify-content:space-between}.crumb{font-size:12px;color:#8f9e94}.crumb span{margin:0 16px;color:#c5cfc8}.crumb strong{font-weight:400;color:#546c5d}.header-actions{display:flex;gap:10px}.header-actions button{border:0;font-size:12px}main{max-width:1500px;margin:auto;padding:49px 48px 20px}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}.eyebrow{font-size:9px;letter-spacing:2.8px;color:#8caa95}h1{font-size:32px;font-weight:600;margin:14px 0;color:#294d3b;letter-spacing:1px}.green-dot{display:inline-block;width:7px;height:7px;background:#85aa78;border-radius:50%;margin:0 0 7px 12px}.intro p{color:#95a297;font-size:12px;letter-spacing:.5px}.primary{background:#387552;color:white;border:1px solid #387552;box-shadow:0 4px 10px #2a5f3f12;padding:12px 23px}.primary:hover{background:#2b6042;color:#fff;border-color:#2b6042}.toolbar{display:flex;justify-content:space-between;padding:17px 0;border-top:1px solid #e2e9e2;border-bottom:1px solid #e2e9e2;gap:12px}.search{display:flex;align-items:center;gap:10px;background:white;border:1px solid #e1e7e2;border-radius:7px;padding:0 14px;color:#8ca495;max-width:340px;flex:1}.search input{border:0;background:transparent;outline:none;width:100%;padding:11px 0;font-size:12px;color:#405c4c}.search input::placeholder{color:#a4aea7}.tools{display:flex;gap:10px}.tools button,.tools select{font-size:12px;background:white;border:1px solid #e1e7e2;border-radius:7px;padding:9px 13px;color:#6c8172}.section-head{display:flex;justify-content:space-between;margin:27px 0 20px;font-size:11px;color:#93a197}.section-head span:first-child{color:#647c6b}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:22px}.photo{background:#fff;border:1px solid #e3e9e3;border-radius:10px;overflow:hidden;position:relative}.photo>button:first-child{padding:0;border:0;width:100%;border-radius:0;background:#eaf0e9;display:block}.photo img{display:block;width:100%;aspect-ratio:1.25;object-fit:cover;transition:transform .3s}.photo>button:hover img{transform:scale(1.035)}.photo-info{padding:13px 14px}.photo-info strong{display:block;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-info small{display:block;margin-top:6px;font-size:10px;color:#a1ada3}.photo-actions{display:flex;gap:4px;padding:0 10px 10px}.photo-actions button{font-size:10px;padding:4px 8px;border:0}.grid.list{display:block}.list .photo{display:flex;margin-bottom:10px;align-items:center}.list .photo>button:first-child{width:90px;flex-shrink:0}.list .photo-info{flex:1}.list .photo-actions{padding:10px}#folder-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:15px;margin-bottom:24px}.folder-card{display:flex;align-items:center;gap:16px;text-align:left;background:#fff;padding:20px;border-color:#e3e9e3}.folder-icon{font-size:30px;color:#bcad76}.folder-card strong{display:block;font-weight:500}.folder-card small{display:block;font-size:10px;color:#99a69b;margin-top:5px}#empty{text-align:center;border:1px dashed #dce5dc;border-radius:14px;min-height:350px;padding:50px 20px;background:linear-gradient(135deg,#f1f6ef,#fbfcf9)}.empty-art{margin:auto;font-size:58px;color:#95b49b;position:relative;width:90px}.empty-art span{font-size:19px;position:absolute;right:4px;bottom:4px;border:3px solid #f3f7ef;border-radius:50%;background:#698e73;color:#fff;width:28px;height:28px}h2{font-size:20px;font-weight:500;color:#41664c}#empty p{font-size:12px;line-height:2;color:#96a18f;margin-bottom:24px}#empty small{display:block;font-size:10px;color:#a4b09e;margin-top:15px}footer{display:flex;justify-content:space-between;margin-top:65px;border-top:1px solid #e4eae2;padding-top:22px;color:#a5afa4;font-size:10px}footer span:first-child{color:#809981}#breadcrumb{display:flex;gap:8px;margin-top:16px}#breadcrumb button{font-size:11px;padding:3px 8px;border:0;background:transparent}dialog{border:1px solid #dbe6dc;border-radius:14px;padding:30px;width:420px;color:#45624c;box-shadow:0 20px 100px #19392130}dialog::backdrop{background:#0e211a65;backdrop-filter:blur(4px)}dialog p{font-size:12px;color:#8b9b8d}dialog input{width:100%;border:1px solid #d1ded3;padding:12px;border-radius:7px;margin:15px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#294f3c;color:white;padding:14px 24px;border-radius:10px;z-index:10;font-size:12px}#lightbox{background:#101b15;border:0;width:96vw;max-width:none;height:94vh;padding:40px 65px;overflow:hidden}#lightbox[open]{display:flex;align-items:center;justify-content:center}#large{max-width:100%;max-height:calc(94vh - 140px);object-fit:contain}#lightbox button{position:absolute;background:#ffffff15;color:white;border:0;font-size:35px}#close-lightbox{right:15px;top:10px}#prev{left:10px}#next{right:10px}.caption{position:absolute;bottom:25px;left:30px;right:30px;display:flex;justify-content:space-between;color:#cbd9cf;font-size:12px}#drop{position:fixed;inset:20px;background:#edf6edee;z-index:20;border:3px dashed #528366;border-radius:20px;place-content:center;text-align:center;font-size:24px;color:#3b754e}#drop:not([hidden]){display:grid}#progress{margin-top:15px;background:#e5f0e4;padding:15px;border-radius:8px;font-size:12px}body.viewer #upload,body.viewer #new-folder,body.viewer #add-side,body.viewer .photo-actions{display:none}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #72a47e;outline-offset:3px}@media(min-width:1500px){main{padding-top:60px}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}}@media(max-width:850px){aside{width:190px;padding:26px 14px}.main{margin-left:190px}main{padding:30px 24px}header{padding:0 24px}.eyebrow{font-size:8px;letter-spacing:1px}.tools button{font-size:0}.tools button::first-letter{font-size:16px}.storage{font-size:10px}}@media(max-width:600px){aside{position:relative;width:100%;height:auto;padding:18px 20px;border-bottom:1px solid #e1e9e1}.brand{font-size:23px}.brand span{font-size:19px}.side-label,.side-bottom{display:none}aside>.nav{display:none}#folders{display:flex;overflow:auto;margin-top:12px}#folders .nav{width:auto;white-space:nowrap;padding:8px 12px;font-size:12px}.main{margin:0}header{height:58px;padding:0 20px}.header-actions button{font-size:10px;padding:7px}.crumb{font-size:10px}.crumb span{margin:0 8px}main{padding:26px 20px}.intro{gap:12px}h1{font-size:26px}.eyebrow{font-size:7px;letter-spacing:1px}.intro p{font-size:10px}.intro>.primary{white-space:nowrap;font-size:11px;padding:11px}.tools{gap:5px}.tools select{max-width:90px;font-size:10px;padding:6px}.search{min-width:0;padding:0 8px}.search input{font-size:10px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo-info{padding:10px}.photo-actions{flex-wrap:wrap}#folder-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.folder-card{padding:13px;gap:10px;font-size:12px}#empty{padding:35px 12px}#empty h2{font-size:17px}footer{margin-top:40px}footer span:last-child{display:none}#lightbox{padding:40px 30px}.caption{left:15px;right:15px;gap:10px;font-size:10px}#photo-name{max-width:45%;overflow:hidden}dialog{width:calc(100% - 30px)}}
/* Dark theme is the first-visit default; light preserves the original palette. */
html{color-scheme:light}html[data-theme=dark]{color-scheme:dark;background:#0c1016}#site-background{position:fixed;inset:0;z-index:-1;pointer-events:none;display:none}body.has-background{background:transparent!important;isolation:isolate}body.has-background #site-background{display:block}#site-background video,#site-background img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.background-shade{position:absolute;inset:0;background:#f4f8f2b8}html[data-theme=dark] .background-shade{background:linear-gradient(120deg,#080d16cc,#10151b85)}html[data-theme=dark] body{background:radial-gradient(ellipse at 85% 0,#20393650,transparent 55%),#0c1016;color:#d5e4dc}html[data-theme=dark] aside,html[data-theme=dark] header{background:#111820e8;border-color:#29343d}html[data-theme=dark] .brand,html[data-theme=dark] h1{color:#e2eee8}html[data-theme=dark] .brand small{color:#91bfa6}html[data-theme=dark] button,html[data-theme=dark] select,html[data-theme=dark] .search{background:#18232c;color:#c4d9ce;border-color:#304139}html[data-theme=dark] button:hover{background:#243a32;border-color:#5c8e71}html[data-theme=dark] .nav{background:transparent;color:#9bafa6}html[data-theme=dark] .nav.active{background:#203a2d;color:#a5dbb8}html[data-theme=dark] .nav b{background:#34513f;color:#c9e4d2}html[data-theme=dark] .primary{background:#4f956e;color:#fff;border-color:#4f956e}html[data-theme=dark] .primary:hover{background:#62a981}html[data-theme=dark] .intro p,html[data-theme=dark] .side-label,html[data-theme=dark] .section-head,html[data-theme=dark] .identity small,html[data-theme=dark] .storage p{color:#96aaa0}html[data-theme=dark] .eyebrow{color:#7eac97}html[data-theme=dark] .crumb,html[data-theme=dark] .crumb strong,html[data-theme=dark] .section-head span:first-child,html[data-theme=dark] .storage strong{color:#a6c0b1}html[data-theme=dark] input{color:#dfebe3}html[data-theme=dark] input::placeholder{color:#849b8e}html[data-theme=dark] .toolbar,html[data-theme=dark] footer,html[data-theme=dark] .storage,html[data-theme=dark] .identity{border-color:#2b3832}html[data-theme=dark] #empty{background:linear-gradient(135deg,#1a2924c9,#14201fc9);border-color:#3c5143}html[data-theme=dark] h2{color:#d0e5d6}html[data-theme=dark] #empty p,html[data-theme=dark] #empty small{color:#9fb3a5}html[data-theme=dark] .empty-art{color:#79a98a}html[data-theme=dark] .empty-art span{border-color:#1b2a23}html[data-theme=dark] .photo{background:#16221d;border-color:#2a3d32}html[data-theme=dark] .photo-actions button{background:transparent}html[data-theme=dark] .avatar{background:#294735;color:#c1e5cc}html[data-theme=dark] dialog{background:#17231f;color:#cde0d4;border-color:#3a5142}html[data-theme=dark] dialog input{background:#0f1915;border-color:#3b5144}html[data-theme=dark] #progress{background:#294735}html[data-theme=dark] #drop{background:#14271eed;color:#c5e0cd;border-color:#699c76}html[data-theme=dark] #lightbox{background:#080f0b}body.has-background aside,body.has-background header{backdrop-filter:blur(18px)}body.has-background #empty{backdrop-filter:blur(8px)}html[data-theme=light] body.has-background aside,html[data-theme=light] body.has-background header{background:#ffffffda}html[data-theme=light] body.has-background #empty{background:#f4f8f1bb}html[data-theme=dark] body.has-background aside,html[data-theme=dark] body.has-background header{background:#101820bc}body.has-background main{min-height:calc(100vh - 82px)}.header-actions{flex-wrap:wrap;justify-content:flex-end}#theme-toggle{white-space:nowrap}@media(max-width:600px){header{height:auto;min-height:66px;gap:12px;padding-top:10px;padding-bottom:10px}.header-actions{gap:3px;max-width:70%}.header-actions button{padding:7px 6px}html[data-theme=dark] aside{border-color:#293b31}}
/* Winter scene: generous visible landscape, readable glass surfaces. */
#winter-scene{position:absolute;inset:0;width:100%;height:100%}html[data-theme=dark] body.winter-background .background-shade{background:linear-gradient(90deg,rgba(5,12,23,.6) 0%,rgba(9,18,31,.36) 46%,rgba(8,17,29,.16) 100%)}html[data-theme=light] body.winter-background .background-shade{background:linear-gradient(90deg,#e7eff8a6,#edf4fa38)}html[data-theme=dark] body.winter-background aside{background:rgba(12,21,32,.73);border-color:#b6d4ed1c}html[data-theme=dark] body.winter-background header{background:rgba(12,21,32,.58);border-color:#b6d4ed1c}body.winter-background main{position:relative}html[data-theme=dark] body.winter-background #empty{background:linear-gradient(135deg,#0e1c2ed9,#152b3b7d);border:1px solid #c1d9ef26;box-shadow:0 20px 80px #07142430;max-width:760px;margin-top:28px}body.winter-background #empty{min-height:310px;padding:35px 24px}html[data-theme=dark] body.winter-background .toolbar{border-color:#e0eeff26}html[data-theme=dark] body.winter-background .search,html[data-theme=dark] body.winter-background .tools button,html[data-theme=dark] body.winter-background .tools select{background:#102034b8;backdrop-filter:blur(14px);border-color:#d4e8fa2e}html[data-theme=dark] body.winter-background .intro p,html[data-theme=dark] body.winter-background .section-head,html[data-theme=dark] body.winter-background .section-head span:first-child{color:#d3dfeb;text-shadow:0 1px 5px #0006}body.winter-background .intro h1{text-shadow:0 2px 16px #07152470}html[data-theme=dark] body.winter-background .eyebrow{color:#c4dcdf}body.winter-background footer{color:#d1dce8;text-shadow:0 1px 5px #0008}body.winter-background .photo{backdrop-filter:blur(14px)}html[data-theme=dark] body.winter-background .photo{background:#102034ce}html[data-theme=dark] body.winter-background .folder-card{background:#102034bb;border-color:#d4e8fa2e}#background-toggle{white-space:nowrap}@media(max-width:600px){body.winter-background #empty{padding:28px 16px;min-height:310px}body.winter-background .intro{margin-bottom:24px}html[data-theme=dark] body.winter-background .background-shade{background:linear-gradient(90deg,#071426a8,#07142645)}.header-actions{max-width:75%}}
@media(min-width:601px) and (max-width:1050px){header{height:auto;min-height:82px;padding-top:14px;padding-bottom:14px;gap:18px}.crumb{white-space:nowrap}.header-actions{gap:5px}.header-actions button{padding:8px 10px}}@media(max-width:600px){.crumb{white-space:nowrap}.header-actions{max-width:73%}}

#folders{overflow-y:auto;min-height:0;flex-shrink:1}.folder-children{margin-left:15px;border-left:1px solid #72958235;padding-left:5px}.folder-root{font-weight:600}.folder-child{font-size:12px;padding:8px 10px;margin:2px 0}.folders-label{margin-top:22px}@media(max-width:600px){#folders{align-items:flex-start;gap:10px;max-height:150px}.folder-branch{flex-shrink:0}.folder-children{margin-left:8px}#folders .folder-child{font-size:11px;padding:6px 10px}}
