@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap");:root{--paper:#faf9f6;--ink:#303b32;--muted:#93978e;--green:#566b50;--line:#e8e8e0}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}button{cursor:pointer;background:none;border:0;color:inherit}button:disabled{opacity:.45;cursor:default}a:focus-visible,button:focus-visible{outline:2px solid #899b77;outline-offset:4px}a{color:inherit;text-decoration:none}button{display:inline-flex;align-items:center;justify-content:center;gap:8px}input,select,textarea{min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #adbba2;outline-offset:1px}h1,h2,h3,p{margin:0}h1,h2{font-family:"Noto Serif SC",Songti SC,SimSun,serif}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;padding:38px 22px 0;background:#f2f3ed;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:13px;padding:0 12px 43px;font:600 27px "Noto Serif SC",serif;letter-spacing:4px}.brand-icon{display:grid;place-items:center;width:43px;height:43px;background:var(--green);color:white;border-radius:13px}.brand small{display:block;font:8px/2 sans-serif;letter-spacing:3px;color:#8d9586}.side-label{color:#a1a599;font-size:11px;letter-spacing:1px;padding:0 14px 12px}.nav{display:flex;width:100%;justify-content:flex-start;text-align:left;padding:12px 14px;border-radius:7px;margin-bottom:5px;gap:13px;color:#78816f}.nav span:last-child{margin-left:auto;font-size:11px}.nav.active{color:#506549;background:#e4e9db;font-weight:600}.nav:hover{background:#e8ebe1}.album-label{display:flex;justify-content:space-between;margin-top:34px}.album-nav{overflow:auto;max-height:30vh}.album-nav p{font-size:11px;color:#9da293;padding:7px 13px}.dot{width:6px;height:6px;border-radius:50%;background:#a7b294}.add-album{font-size:12px;color:#929b85;padding:15px}.side-bottom{margin-top:auto}.private{display:flex;align-items:center;gap:10px;padding:20px 8px;color:#88947e;font-size:11px}.private small{display:block;color:#a3aa9a;font-size:10px}.profile{display:flex;gap:10px;align-items:center;border-top:1px solid #e0e3d9;padding:23px 0;font-size:12px}.profile small{display:block;font-size:10px;color:#9ca391}.avatar{display:grid;place-items:center;background:#dddac9;color:#777c65;width:34px;height:34px;border-radius:50%;font-family:serif}.online{background:#8b9c75;width:6px;height:6px;border-radius:100%;margin-left:auto}main{margin-left:230px}.topbar{height:82px;border-bottom:1px solid var(--line);padding:0 44px;gap:25px;background:#fdfcf9}.breadcrumb,.topbar{display:flex;align-items:center}.breadcrumb{gap:13px;font-size:12px;color:#929789}.search{margin-left:auto;display:flex;align-items:center;gap:10px;background:#f0f1eb;padding:9px 13px;border-radius:6px;color:#9ca28f;width:245px}.search input{border:0;background:none;outline:none;width:100%;font-size:12px;color:var(--ink)}.top-private{display:flex;align-items:center;gap:5px;font-size:11px;color:#929b86}.content{max-width:1600px;padding:45px 44px 0;margin:auto}.intro{justify-content:space-between;margin-bottom:34px}.eyebrow,.intro{display:flex;align-items:center}.eyebrow{font:9px/1.5 sans-serif;letter-spacing:2.2px;color:#8b977c;gap:8px}.eyebrow>span{width:5px;height:5px;background:#8b977c;border-radius:50%}h1{font-size:36px;font-weight:500;letter-spacing:2px;margin:10px 0}h1 span{color:#788566}.intro p{font-size:12px;letter-spacing:1px;color:#9a9d91}.primary{background:var(--green);color:white;padding:12px 21px;border-radius:6px;font-size:12px;box-shadow:0 4px 10px #566b5014;white-space:nowrap}.primary:hover{background:#455c40}.memory-banner{position:relative;height:285px;overflow:hidden;border-radius:9px;background:#647264;color:white}.memory-banner>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 53%}.banner-shade{position:absolute;inset:0;background:linear-gradient(90deg,#152c2dba,#213a2730 65%,#213a271f)}.banner-copy{position:absolute;left:39px;top:34px}.banner-copy>span{font-size:9px;letter-spacing:2.5px;opacity:.65}.banner-copy h2{font-size:28px;letter-spacing:2px;font-weight:400;line-height:1.7;margin:11px 0 18px}.banner-copy button{font-size:11px;border-bottom:1px solid #ffffff66;padding:0 0 5px;gap:26px}.banner-caption{position:absolute;right:26px;bottom:24px;font-size:11px;letter-spacing:1px;text-align:right;color:#fff9}.banner-caption span{display:block;letter-spacing:1.7px;font-size:8px;margin-top:6px}.library-head{justify-content:space-between;margin:34px 0 23px}.library-head,.library-head h2{display:flex;align-items:center}.library-head h2{font-size:21px;font-weight:500;gap:11px}.library-head h2 span{font:11px sans-serif;border:1px solid #e5e7de;border-radius:5px;background:#f0f2e9;padding:3px 7px;color:#8b977d}.library-head p{color:#a0a495;font-size:11px;margin-top:6px}.tools{display:flex;align-items:center;gap:17px}.tools select{background:none;border:0;color:#8c9483;font-size:11px}.view-switch{display:flex;border:1px solid #e4e7db;border-radius:5px;padding:3px}.view-switch button{padding:5px;color:#adb4a3}.view-switch .chosen{background:#e7ecdf;border-radius:3px;color:#71835e}.photo-grid{column-count:3;column-gap:20px}.photo-grid.compact{column-count:4}.photo-card{display:inline-block;vertical-align:top;margin-bottom:20px;page-break-inside:avoid;break-inside:avoid}.photo-card,.photo-open{width:100%;position:relative}.photo-open{display:block;padding:0;border-radius:7px;overflow:hidden;background:#e8e9e1}.pic{display:block;width:100%;object-fit:cover;transition:transform .6s}.pic-0{aspect-ratio:1.35}.pic-1{aspect-ratio:.87}.pic-2{aspect-ratio:1.05}.pic-3{aspect-ratio:1.4}.photo-open:hover img{transform:scale(1.035)}.photo-overlay{opacity:0;position:absolute;inset:0;background:linear-gradient(transparent 55%,#14271480);display:flex;align-items:flex-end;padding:17px;color:white;font-size:11px;transition:opacity .2s}.photo-overlay span{display:flex;align-items:center;gap:7px}.photo-open:hover .photo-overlay{opacity:1}.favorite{position:absolute;right:12px;top:12px;background:#fdfdf6d9;width:30px;height:30px;border-radius:50%;color:#8e9a7d;opacity:0;transition:opacity .2s}.favorite.is-favorite{color:#a46d58;opacity:1}.favorite:focus,.photo-card:hover .favorite{opacity:1}.photo-caption{padding:12px 1px 0;display:flex;flex-wrap:wrap;justify-content:space-between}.photo-caption button{font-size:12px;padding:0;letter-spacing:.5px}.photo-caption>span{color:#a0aa92}.photo-caption small{width:100%;font-size:9px;color:#a6ab9b;display:flex;justify-content:space-between;margin-top:6px;letter-spacing:.5px}.photo-caption small span{font-size:9px}.empty{text-align:center;padding:38px 20px 48px;border:1px dashed #dce2d3;border-radius:9px}.empty-icon{width:70px;height:70px;background:#eef1e7;border-radius:50%;color:#8c9b7b;display:grid;place-items:center;margin:0 auto 20px}.empty h3{font:20px "Noto Serif SC",serif}.empty p{font-size:12px;color:#979f8c;margin:12px 0 23px}.text-button{display:flex;margin:13px auto 0;font-size:11px;color:#929e85}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.album-card{display:flex;flex-direction:column;align-items:stretch;padding:0;text-align:left;gap:0}.album-card img,.album-placeholder{width:100%;aspect-ratio:1.5;object-fit:cover;background:#e9ecdf;border-radius:7px}.album-placeholder{display:grid;place-items:center;color:#94a081}.album-card strong{padding-top:12px;font-size:14px}.album-card>span{display:flex;justify-content:space-between;font-size:11px;color:#98a08d;margin-top:6px}.new-album-card{min-height:200px;border:1px dashed #cdd6c1;border-radius:7px;display:flex;flex-direction:column;color:#8c9b7b;font-size:12px}footer{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);margin-top:35px;padding:24px 0;color:#aab09f;font-size:10px}footer span:last-child{margin-left:auto}.error{padding:13px 16px;background:#faf0e8;border:1px solid #ead7c8;color:#99674f;border-radius:6px;margin-bottom:20px;font-size:12px}.error a,.error button{margin-left:10px;text-decoration:underline}.toast{bottom:30px;left:50%;transform:translateX(-50%);z-index:100;background:#33452f;color:white;padding:12px 23px;border-radius:8px;box-shadow:0 10px 40px #0002;gap:10px;font-size:12px;max-width:90vw}.modal-backdrop,.toast{position:fixed;display:flex;align-items:center}.modal-backdrop{inset:0;background:#1d291c70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:30;justify-content:center;padding:24px}.dialog{width:510px;background:var(--paper);padding:40px;border-radius:13px;position:relative;max-height:90vh;overflow:auto}.close{position:absolute;right:16px;top:16px;color:#9bA18e;padding:5px;z-index:5}.dialog h2{font-size:25px;font-weight:500;margin:15px 0 10px}.dialog>p{font-size:12px;color:#949c87}.field{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#78836a;margin:23px 0 0}.field input,.field select,.field textarea{width:100%;border:1px solid #dfe3d7;background:#fffefa;border-radius:5px;padding:10px 12px;color:#46553d;font-size:12px}.field textarea{resize:vertical;line-height:1.8}.field small{text-align:right;font-size:9px;color:#a3aa96}.dialog form>.primary{margin-top:25px}.dropzone{margin-top:23px;text-align:center;border:1px dashed #c3cfb6;background:#f0f3e9;padding:38px 15px;border-radius:8px;color:#8c9c7c}.dropzone>svg{margin:auto}.dropzone h3{font-size:15px;font-weight:400;margin-top:14px}.dropzone p{font-size:9px;margin:8px 0 24px;color:#9ba88d}.photo-dialog{width:min(1160px,96vw);height:min(760px,90vh);background:var(--paper);border-radius:12px;overflow:hidden;display:grid;grid-template-columns:1.5fr 1fr}.detail-image{position:relative;background:#20271f;display:flex;align-items:center;justify-content:center;min-height:0}.detail-image>img{width:100%;height:100%;object-fit:contain}.back{top:20px;left:20px;padding:8px 13px;border-radius:5px;font-size:11px}.back,.image-nav{position:absolute;background:#1b251a85;color:#fff}.image-nav{bottom:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;border-radius:30px;padding:7px 15px;font-size:10px}.image-nav button{color:white;padding:5px}.detail-panel{position:relative;padding:40px 30px;overflow:auto}.detail-panel h2{font-size:24px;font-weight:500;margin-top:10px}.field-row{display:flex;gap:15px}.field-row>.field{flex:1 1;min-width:0}.muted{color:#a5ad99;font-size:10px}.check-label{display:flex;align-items:center;gap:7px;font-size:11px;color:#88967b;margin-top:15px}.check-label input{accent-color:var(--green)}.save{width:100%;margin-top:23px}.detail-actions{border-top:1px solid #e3e7d9;padding-top:20px;margin-top:24px;display:flex;justify-content:space-between;font-size:10px;color:#939f85}.detail-actions a{display:flex;align-items:center;gap:5px}.detail-actions button{color:#ac8b76}.delete-confirm{margin-top:15px;background:#f5e7df;border-radius:7px;padding:15px;font-size:11px;color:#9b6c54}.delete-confirm button{margin:8px 10px 0 0;text-decoration:underline}.demo-note{padding:7px 10px;background:#eaf0e0;font-size:10px;color:#82916e;border-radius:5px;margin-top:12px}@media(min-width:1550px){.photo-grid{column-count:4}.memory-banner{height:330px}}@media(max-width:1100px){.sidebar{width:195px;padding-left:15px;padding-right:15px}main{margin-left:195px}.topbar{padding:0 27px}.content{padding:32px 27px 0}.photo-grid{column-gap:14px}.top-private{display:none}.photo-dialog{grid-template-columns:1.2fr 1fr}.brand{padding-left:8px}}@media(max-width:800px){.sidebar{width:75px;padding:24px 10px}.brand{padding:0 5px 32px}.album-label,.album-nav,.brand>span:last-child,.nav span,.nav:not(.active)+p,.side-bottom,.side-label{display:none}.nav{font-size:0;gap:0;justify-content:center;padding:14px 10px}.nav svg{min-width:21px}main{margin-left:75px}.topbar{height:66px;padding:0 20px}.breadcrumb{font-size:10px}.search{width:190px}.content{padding:27px 20px 0}h1{font-size:28px}.intro{align-items:flex-end}.intro p{font-size:10px}.intro .primary{padding:10px 14px}.memory-banner{height:250px}.banner-copy{left:25px;top:28px}.banner-copy h2{font-size:24px}.banner-caption{display:none}.photo-grid,.photo-grid.compact{column-count:2}.tools{gap:7px}.view-switch{display:none}.library-head p{font-size:10px}.library-head h2{font-size:19px}.photo-dialog{grid-template-columns:1fr;overflow:auto;display:block;height:90vh}.detail-image{height:40vh}.detail-panel{overflow:visible;padding:25px}.photo-dialog>.detail-panel>.close{display:none}.album-grid{grid-template-columns:repeat(2,1fr)}footer span:last-child{display:none}}@media(max-width:480px){.sidebar{width:56px;padding:20px 6px}.brand{padding:0 0 25px}.brand-icon{width:37px;height:37px;border-radius:10px}main{margin-left:56px}.topbar{padding:0 13px}.breadcrumb{display:none}.search{width:100%}.content{padding:25px 14px 0}.intro{display:block}.intro .primary{margin-top:19px}.intro p{letter-spacing:0}.memory-banner{height:235px}.banner-copy{left:21px}.banner-copy h2{font-size:23px}.library-head{align-items:flex-start}.tools select{font-size:9px;max-width:115px}.photo-grid{column-gap:11px}.photo-caption button{font-size:10px}.photo-caption small{font-size:8px;gap:4px}.photo-caption small span{font-size:8px;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite{opacity:1;width:25px;height:25px;right:8px;top:8px}.modal-backdrop{padding:12px}.dialog{padding:35px 23px}.dialog h2{font-size:22px}.field-row{gap:8px}.album-grid{gap:12px}.new-album-card{min-height:160px}}.auth-layout{margin:0;min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fbfaf7}.auth-story{position:relative;min-height:100vh;padding:46px 8vw;display:flex;flex-direction:column;justify-content:space-between;color:#f6f6ed;background:linear-gradient(90deg,#213829d9,#243c2c80),url(https://images.unsplash.com/photo-1441974231531-c6227db76b6e?auto=format&fit=crop&w=1400&q=85) 50%/cover}.auth-brand{display:flex;gap:12px;align-items:center;font:25px "Noto Serif SC",serif;letter-spacing:3px}.auth-brand small{font:9px sans-serif;letter-spacing:2px;opacity:.65}.auth-story .eyebrow{color:#d0dcc0;font-size:9px}.auth-story h1{font-size:48px;font-weight:400;line-height:1.7;margin:20px 0}.auth-story h1 span{color:#c3cfad}.auth-caption,.auth-story p{font-size:12px;color:#d1d7c4;letter-spacing:1px}.auth-form-side{padding:45px;display:flex;flex-direction:column;justify-content:center;align-items:center}.auth-box{width:100%;max-width:370px}.auth-box h2{font-size:30px;font-weight:500;margin:13px 0}.auth-sub{font-size:12px;color:#969d8b;line-height:1.9}.auth-tabs{display:flex;border-bottom:1px solid #e1e5d9;gap:28px;margin-top:30px}.auth-tabs button{padding:13px 0;color:#99a18d;font-size:12px;border-bottom:2px solid transparent}.auth-tabs button.active{border-color:#647753;color:#536948;font-weight:600}.code-field,.password-field,.phone-field{position:relative;display:flex;align-items:center}.password-field input{padding-right:45px}.password-field button{position:absolute;right:10px;color:#9ca78e}.phone-field{border:1px solid #dfe3d7;border-radius:5px;background:#fffefa}.phone-field span{padding-left:13px;font-size:12px;color:#879577}.phone-field input{border:0;background:transparent}.code-field{gap:8px}.code-field button{white-space:nowrap;font-size:11px;color:#6f855a;border:1px solid #dce3d2;border-radius:5px;min-width:105px;padding:11px 10px;background:#f1f4e9}.auth-submit{width:100%;margin-top:28px;padding:13px 18px;gap:15px}.auth-note,.auth-submit{display:flex;justify-content:center}.auth-note{align-items:center;gap:7px;font-size:10px;color:#9fa792;margin-top:20px}.auth-help{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#9ba28e;margin-top:30px}.auth-back,.auth-help a{color:#6e815b;text-decoration:underline}.auth-back{display:block;text-align:center;font-size:11px;margin-top:20px}.auth-error{color:#ab6b51;background:#faeee7}.auth-error,.auth-info{border-radius:5px;padding:10px 12px;font-size:11px;margin-top:15px}.auth-info{display:flex;align-items:center;gap:7px;background:#edf1e5;color:#879576;line-height:1.8}.auth-form-side footer{border:0;font-size:10px;margin-top:70px;color:#abb29f}.account-actions{display:flex;justify-content:space-between;font-size:10px;color:#7b8e69;padding:0 4px 20px}.account-actions button{padding:0}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:25px 6vw;border-bottom:1px solid var(--line);background:#f5f6ef}.admin-header .auth-brand{color:#53684a;font-size:23px}.admin-back{display:flex;align-items:center;gap:6px;color:#8e9b7d;font-size:12px}.admin-main{margin:0 auto;padding:40px 30px;max-width:1250px}.admin-title{display:flex;justify-content:space-between;align-items:center}.admin-title h1{font-size:30px}.admin-title p{font-size:12px;color:#99a18c}.admin-stats{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:18px;margin:30px 0}.admin-stats>div{display:flex;align-items:center;gap:20px;border:1px solid #e4e8dc;border-radius:8px;padding:22px;background:#f7f8f1;color:#91a17e}.admin-stats>div span{font-size:11px;color:#97a18b}.admin-stats strong{display:block;color:#536b46;font:26px sans-serif;margin-top:7px}.admin-stats .stat-text{font-size:17px}.admin-toolbar{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.admin-toolbar .auth-tabs{margin-top:0}.admin-toolbar .search{margin-bottom:5px}.admin-table-wrap{overflow:auto;border:1px solid #e5e9de;border-radius:8px;background:#fffefa}.admin-table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px;text-align:left}.admin-table th{font-weight:400;font-size:11px;background:#f0f3e8;color:#92a080;padding:16px 19px}.admin-table td{border-top:1px solid #edf0e5;padding:18px 19px;color:#7c8c6d}.admin-table strong{font-size:12px;font-weight:500;color:#506543}.admin-table small{display:block;font-size:10px;color:#a4af98;margin-top:4px}.admin-table .text-button{margin:0;padding:0;color:#738b5b}.status-pill{border-radius:20px;padding:4px 9px;background:#edf3e2;color:#83a065;font-size:10px}.status-pill.off{background:#f7ece6;color:#b4907a}.admin-footnote{font-size:10px;color:#a3ad96;line-height:2;margin-top:22px}@media(max-width:800px){.auth-story{padding:35px;min-height:100vh}.auth-story h1{font-size:38px}.auth-form-side{padding:30px}.admin-stats{grid-template-columns:1fr 1fr}.admin-stats>div:last-child{grid-column:span 2}.admin-title h1{font-size:23px}.admin-main{padding:25px 20px}.admin-title{gap:15px}.admin-title p{font-size:10px}.admin-toolbar{gap:15px}.admin-toolbar .search{width:190px}.admin-toolbar .auth-tabs{white-space:nowrap;gap:16px}}@media(max-width:600px){.auth-layout{display:block}.auth-story{min-height:0;height:180px;padding:25px}.auth-story h1{font-size:23px;margin:10px 0;line-height:1.6}.auth-caption,.auth-story .eyebrow,.auth-story h1 br,.auth-story p{display:none}.auth-brand{font-size:23px}.auth-form-side{padding:35px 25px}.auth-box h2{font-size:27px}.auth-form-side footer{margin-top:35px}.admin-header{padding:20px}.admin-header .auth-brand small{display:none}.admin-title{align-items:flex-end}.admin-title h1{font-size:21px;letter-spacing:0}.admin-title .primary{padding:11px 12px;font-size:11px}.admin-title .eyebrow{font-size:8px}.admin-stats{gap:10px}.admin-stats>div{padding:17px;gap:12px}.admin-toolbar{display:block}.admin-toolbar .search{margin-top:15px;width:100%}.admin-stats .stat-text{font-size:16px}.admin-table td,.admin-table th{padding:14px}.account-actions{flex-direction:column;gap:10px}}progress{width:100%;height:6px;border:0;border-radius:9px;overflow:hidden;accent-color:var(--green);background:#e6eadd}progress::-webkit-progress-bar{background:#e6eadd}progress::-webkit-progress-value{background:#718562;border-radius:9px}.storage-meter{padding:15px 6px;color:#8b967f;font-size:10px}.storage-meter>span{display:flex;justify-content:space-between;gap:5px}.storage-meter strong{font-weight:500;color:#5c7050}.storage-meter small{font-size:9px}.storage-meter progress{display:block;margin:9px 0}.outline-button{border:1px solid #d7dfce;border-radius:6px;padding:8px 11px;font-size:11px;white-space:nowrap}.outline-button.chosen{background:#e9efdf;color:#556d46}.filter-bar{flex-wrap:wrap;gap:12px;padding:14px 16px;background:#f0f3e9;border:1px solid #e3e9d9;border-radius:8px;margin-bottom:20px;font-size:11px;color:#7e8c71}.filter-bar,.filter-bar label{display:flex;align-items:center}.filter-bar label{gap:8px}.filter-bar input,.filter-bar select{padding:7px 8px;border:1px solid #dce3d1;border-radius:5px;background:#fffefa;color:#596b4d;font-size:11px;max-width:165px}.filter-bar button{font-size:11px;text-decoration:underline}.mobile-new-album{margin-left:auto}.batch-bar{position:sticky;top:8px;z-index:12;flex-wrap:wrap;gap:16px;padding:13px 16px;border-radius:8px;background:#e5ecd9;border:1px solid #d5dfc8;color:#526a42;font-size:11px;margin-bottom:20px;box-shadow:0 4px 16px #2334150b}.batch-bar,.batch-bar label{display:flex;align-items:center}.batch-bar label{gap:7px}.batch-bar button{padding:6px 0}.danger{color:#ae6f55}.danger-button{background:#a66f57}.confirm-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.is-selected{outline:2px solid #789261;outline-offset:5px;border-radius:7px}.select-photo{position:absolute;top:12px;left:12px;width:28px;height:28px;display:grid;place-items:center;background:#fffefaeb;border-radius:50%}.select-photo input{width:17px;height:17px;accent-color:var(--green)}.tag-list{display:flex;flex-wrap:wrap;gap:5px;padding-top:8px}.tag-list button{background:#edf1e5;color:#83916f;font-size:9px;padding:2px 7px;border-radius:4px}.sort-help{display:flex;align-items:center;gap:5px;font-size:11px;color:#8a987b;margin:0 0 18px}.reorder-buttons{display:flex;justify-content:space-between;margin-top:9px}.reorder-buttons button{font-size:10px;color:#8e9b7d}.photo-card[draggable=true]{cursor:grab}.upload-dialog{width:600px}.upload-queue{margin-top:20px;font-size:11px}.upload-queue>p{color:#929e83;margin-bottom:12px}.upload-job{display:grid;grid-template-columns:1fr auto;gap:7px;padding:10px 0;border-bottom:1px solid #e8ebdf}.upload-job strong{font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-job span{font-size:10px;color:#8c9b7d}.upload-job progress,.upload-job small{grid-column:1/-1}.upload-job small{font-size:10px;color:#a56c52}.upload-queue>.outline-button{margin-top:15px}.photo-metadata{margin-top:24px;padding:14px;background:#f0f3e9;border-radius:7px;color:#819071;font-size:11px}.photo-metadata summary{cursor:pointer;color:#5c724d}.photo-metadata dl{margin:12px 0}.photo-metadata dl>div{display:grid;grid-template-columns:72px 1fr;gap:10px;margin-bottom:7px}.photo-metadata dt{color:#97a18b}.photo-metadata dd{margin:0;word-break:break-word;color:#647657}.photo-metadata>small{font-size:9px;line-height:1.7}.trash-detail{font-size:12px;color:#8a967e;margin:20px 0}.zoom-stage{position:absolute;inset:0;overflow:auto;touch-action:pan-x pan-y}.zoom-stage img{display:block;max-width:none;object-fit:contain;-webkit-user-select:none;user-select:none}.zoom-stage.zoomed{cursor:grab;touch-action:none}.zoom-stage.zoomed:active{cursor:grabbing}.zoom-controls{position:absolute;top:18px;right:15px;display:flex;align-items:center;gap:9px;background:#1b251aaf;color:#fff;border-radius:30px;padding:7px 10px;font-size:10px}.zoom-controls button{padding:3px}.quota-note{font-size:10px;color:#95a186;margin-top:13px}.mobile-account,.mobile-admin{display:none}.admin-table progress{height:4px;margin-top:7px;max-width:180px}.photo-dialog{height:min(860px,94vh)}@media(max-width:800px){.mobile-account,.mobile-admin{display:flex;color:#8b997d}.mobile-account{justify-content:space-between;align-items:center;gap:12px;font-size:10px;padding:0 0 25px}.filter-bar{padding:10px;gap:10px}.filter-bar label{gap:5px}.filter-bar input{max-width:130px}.library-head{gap:12px;align-items:flex-start}.tools{flex-wrap:wrap;justify-content:flex-end;gap:8px}.tools .outline-button{padding:6px 8px;font-size:10px}.library-head p{max-width:250px}.batch-bar{top:5px;gap:12px}.zoom-controls{top:auto;bottom:65px;right:12px}.photo-dialog{height:94vh}.detail-image{height:44vh;min-height:260px}.detail-panel{padding:25px 20px}.intro{gap:15px}}@media(max-width:480px){.filter-bar>label:first-child{width:100%}.filter-bar>label:first-child select{flex:1 1;max-width:none}.filter-bar input{font-size:10px;max-width:120px}.batch-bar,.filter-bar label{font-size:10px}.batch-bar{padding:10px;gap:10px}.batch-bar>label{width:100%}.tools select{max-width:120px}.zoom-controls{bottom:65px}.sort-help{font-size:10px}.upload-dialog .dropzone{padding:24px 10px}.photo-metadata dl>div{grid-template-columns:65px 1fr}.photo-dialog{width:100%}.storage-meter{display:none}}