:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f6f8fb;color:#17202a;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f6f8fb}button,input,select{font:inherit}button{border:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:72px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 12px;background:#0f1720;color:#d7e2ee}.brand-mark,.side-button{width:44px;height:44px;display:grid;place-items:center;border-radius:8px}.brand-mark{margin-bottom:14px;background:#19b8c7;color:#041013}.side-button{color:#9fb0c0;background:transparent;cursor:pointer}.side-button:hover,.side-button.active{color:#fff;background:#1c2835}.side-button.bottom{margin-top:auto}.workspace{min-width:0;padding:24px}.topbar{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:16px;margin-bottom:18px}.topbar h1,.login-panel h1,.detail-header h2{margin:0;letter-spacing:0}.topbar h1{font-size:28px;line-height:1.15;font-weight:750}.topbar p,.detail-header p,.login-panel p{margin:6px 0 0;color:#667585;font-size:14px;line-height:1.45}.search-box{min-height:44px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid #dce4ec;border-radius:8px;background:#fff;color:#728093}.search-box input{width:100%;min-width:0;border:0;outline:0;color:#17202a;background:transparent;font-size:14px}.primary-button,.ghost-button,.icon-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease}.primary-button{min-height:44px;padding:0 16px;background:#0ea5a9;color:#fff;font-size:14px;font-weight:700}.primary-button:hover{background:#0b8f93}.primary-button.full{width:100%}.primary-button:disabled,.ghost-button:disabled{cursor:not-allowed;opacity:.65}.ghost-button{min-height:38px;padding:0 14px;border:1px solid #d7e0ea;background:#fff;color:#192635;font-size:13px;font-weight:700}.ghost-button:hover{border-color:#9bd5da;background:#f1fbfc}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.album-main-grid{grid-template-columns:240px minmax(0,1fr) 360px}.album-sidebar{position:sticky;top:24px;display:grid;gap:8px;padding:12px;border:1px solid #dfe7ef;border-radius:8px;background:#fff}.album-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 2px 8px;border-bottom:1px solid #edf1f5}.album-sidebar-header strong,.album-sidebar-header span{display:block}.album-sidebar-header strong{font-size:15px}.album-sidebar-header span{margin-top:3px;color:#667585;font-size:12px}.album-list{display:grid;gap:6px}.album-item{position:relative}.album-filter{width:100%;min-height:38px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 10px;border-radius:8px;background:transparent;color:#46576a;text-align:left;cursor:pointer}.album-filter:hover,.album-filter.active,.album-item.active .album-name-button{background:#eefbfc;color:#0b7f84}.album-filter span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700}.album-filter em{min-width:24px;padding:2px 6px;border-radius:999px;background:#eef2f6;color:#657487;font-size:11px;font-style:normal;text-align:center}.album-item.active .album-filter em{background:#d8f3f5;color:#0b7f84}.album-actions{display:none;position:absolute;top:2px;right:4px;gap:4px}.album-item:hover .album-actions,.album-item.active .album-actions{display:flex}.album-item .album-name-button{padding-right:72px}.icon-action.mini{width:28px;height:28px}.settings-view{display:grid;grid-template-columns:minmax(0,880px)}.settings-panel{border:1px solid #dfe7ef;border-radius:8px;background:#fff;padding:18px}.settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid #edf1f5}.settings-header h2{margin:0;font-size:22px;line-height:1.25;letter-spacing:0}.settings-header p{margin:6px 0 0;color:#667585;font-size:14px;line-height:1.45}.settings-grid{display:grid;grid-template-columns:minmax(220px,1fr) repeat(2,minmax(140px,180px));gap:14px;margin-top:16px}.settings-field,.settings-metric{display:grid;gap:8px;min-height:82px;padding:14px;border:1px solid #dfe7ef;border-radius:8px;background:#f8fafc;color:#425466;font-size:13px;font-weight:700}.settings-field select{width:100%;min-height:40px;border:1px solid #d7e0ea;border-radius:8px;padding:0 10px;background:#fff;color:#17202a;font-size:14px;font-weight:700}.settings-metric strong{color:#17202a;font-size:24px;line-height:1.1}.provider-list{display:grid;gap:10px;margin-top:16px}.provider-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid #dfe7ef;border-radius:8px;background:#fff}.provider-row strong,.provider-row span{display:block}.provider-row strong{font-size:14px}.provider-row span,.provider-row em{margin-top:4px;color:#667585;font-size:12px;font-style:normal}.settings-list{display:grid;gap:8px;margin:16px 0 0}.settings-list div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid #edf1f5;font-size:13px}.settings-list dt{color:#708093}.settings-list dd{margin:0;color:#17202a;overflow-wrap:anywhere}.danger-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;padding:0 14px;border:1px solid #f0b9b9;border-radius:8px;background:#fff7f7;color:#b42323;font-size:14px;font-weight:700;cursor:pointer}.danger-button:hover{background:#ffecec}.danger-button.inline{margin-top:0}.app-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:grid;place-items:center;padding:20px;background:#0a121a75}.album-dialog{width:min(420px,100%);display:grid;gap:16px;padding:18px;border:1px solid #dfe7ef;border-radius:8px;background:#fff;box-shadow:0 24px 64px #142d3f33}.album-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.album-dialog-header h2{margin:0;font-size:20px;line-height:1.25;letter-spacing:0}.album-dialog-header p{margin:5px 0 0;color:#667585;font-size:13px;line-height:1.45}.dialog-field{display:grid;gap:7px;color:#425466;font-size:13px;font-weight:700}.dialog-field input{min-height:42px;border:1px solid #dbe4ee;border-radius:8px;padding:0 12px;outline:0;background:#fff;color:#17202a}.dialog-field input:focus{border-color:#0ea5a9;box-shadow:0 0 0 3px #0ea5a921}.delete-copy{padding:12px;border:1px solid #f0b9b9;border-radius:8px;background:#fff7f7}.delete-copy strong,.delete-copy span{display:block}.delete-copy strong{color:#8a1f1f;font-size:15px}.delete-copy span{margin-top:4px;color:#b42323;font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.drop-zone{min-height:132px;display:grid;grid-template-columns:auto minmax(140px,1fr) minmax(180px,220px) auto;align-items:center;gap:16px;padding:24px;border:1px dashed #abc8d3;border-radius:8px;background:#fff}.provider-select{display:grid;gap:7px;color:#425466;font-size:12px;font-weight:700}.provider-select select{width:100%;min-height:44px;border:1px solid #d7e0ea;border-radius:8px;padding:0 10px;outline:0;background:#fff;color:#17202a;font-size:13px;font-weight:700}.provider-select select:focus{border-color:#0ea5a9;box-shadow:0 0 0 3px #0ea5a921}.drop-zone.dragging{border-color:#0ea5a9;background:#eefbfc}.drop-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:8px;background:#e8f7f8;color:#0d8c91}.drop-zone strong,.empty-state strong,.empty-detail strong{display:block;font-size:16px;line-height:1.35}.drop-zone span,.empty-state span,.empty-detail span{display:block;margin-top:5px;color:#667585;font-size:13px;line-height:1.45}.gallery-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(140px,170px) minmax(130px,160px) 44px max-content;align-items:end;gap:12px;margin-top:14px;padding:12px;border:1px solid #dfe7ef;border-radius:8px;background:#fff}.bulk-bar{display:grid;grid-template-columns:minmax(160px,1fr) auto;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border:1px solid #dfe7ef;border-radius:8px;background:#fff}.bulk-bar.active{grid-template-columns:minmax(160px,1fr) auto 180px auto auto;border-color:#9bd5da;background:#f6fcfd}.bulk-bar strong,.bulk-bar span{display:block}.bulk-bar strong{font-size:13px}.bulk-bar span{margin-top:3px;color:#667585;font-size:12px}.bulk-move-field{display:grid;gap:5px;color:#425466;font-size:12px;font-weight:700}.bulk-move-field select{min-height:38px;border:1px solid #d7e0ea;border-radius:8px;padding:0 10px;background:#fff;color:#17202a;font-size:13px;font-weight:700}.toolbar-search{min-height:44px;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid #dce4ec;border-radius:8px;background:#f8fafc;color:#728093}.toolbar-search input{width:100%;min-width:0;border:0;outline:0;color:#17202a;background:transparent;font-size:14px}.toolbar-search .search-submit{width:34px;height:34px;flex:0 0 auto}.toolbar-field{display:grid;gap:6px;color:#425466;font-size:12px;font-weight:700}.toolbar-field select{width:100%;min-height:44px;border:1px solid #d7e0ea;border-radius:8px;padding:0 10px;outline:0;background:#f8fafc;color:#17202a;font-size:13px;font-weight:700}.toolbar-search:focus-within,.toolbar-field select:focus{border-color:#0ea5a9;box-shadow:0 0 0 3px #0ea5a921}.toolbar-icon{width:44px;height:44px;align-self:end;flex:0 0 44px}.segmented-control{min-height:44px;display:grid;grid-template-columns:repeat(2,44px);align-self:end;gap:4px;padding:3px;border:1px solid #d7e0ea;border-radius:8px;background:#f8fafc}.segmented-control button{display:grid;place-items:center;border-radius:6px;background:transparent;color:#5d6d7e;cursor:pointer}.segmented-control button:hover,.segmented-control button.active{background:#fff;color:#0b7f84;box-shadow:0 1px 3px #142d3f14}.gallery-grid{column-width:220px;column-gap:14px;margin-top:18px}.gallery-grid .image-card{width:100%;margin:0 0 14px;break-inside:avoid;-webkit-column-break-inside:avoid}.image-card{position:relative;overflow:hidden;border:1px solid #dfe7ef;border-radius:8px;background:#fff;cursor:pointer}.select-toggle{width:34px;height:34px;display:grid;place-items:center;border:1px solid #dbe4ee;border-radius:8px;background:#fffffff0;color:#526171;cursor:pointer}.image-card>.select-toggle{position:absolute;top:8px;left:8px;z-index:2}.select-toggle.checked{border-color:#0ea5a9;background:#e7f8fa;color:#0b7f84}.image-card:hover,.image-card.active{border-color:#0ea5a9;box-shadow:0 14px 28px #14374914}.thumb{aspect-ratio:4 / 3;display:grid;place-items:center;background:#e9eef4;color:#7b8da1}.gallery-grid .image-card .thumb{aspect-ratio:auto;min-height:80px}.gallery-grid .image-card .thumb img{height:auto;object-fit:contain;display:block}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.card-meta{min-width:0;padding:12px 42px 12px 12px}.card-meta strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.card-meta span{display:block;margin-top:5px;color:#6d7b8b;font-size:12px}.card-actions{position:absolute;right:8px;bottom:8px;display:flex;gap:6px}.icon-action{width:34px;height:34px;border:1px solid #dbe4ee;background:#fff;color:#405263}.icon-action:hover{background:#f2f7fa}.icon-action.danger{color:#9b2b2b}.icon-action.danger:hover{border-color:#f0b9b9;color:#b42323;background:#fff4f4}.gallery-list{display:grid;gap:10px;margin-top:18px}.image-row{display:grid;grid-template-columns:34px 92px minmax(0,1fr) minmax(220px,.9fr) auto;align-items:center;gap:12px;min-height:104px;padding:10px;border:1px solid #dfe7ef;border-radius:8px;background:#fff;cursor:pointer}.row-select{flex:0 0 auto}.image-row:hover,.image-row.active{border-color:#0ea5a9;box-shadow:0 10px 22px #14374912}.list-thumb{width:92px;aspect-ratio:1 / 1;border-radius:8px;overflow:hidden}.row-main{min-width:0}.row-main strong,.row-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-main strong{font-size:14px}.row-main span,.row-meta span{margin-top:5px;color:#6d7b8b;font-size:12px}.row-tags{display:flex;flex-wrap:wrap;gap:6px;min-height:24px;margin-top:8px}.row-tags em{padding:4px 7px;border:1px solid #d7e8ec;border-radius:8px;background:#f3fbfc;color:#176a70;font-size:11px;font-style:normal}.row-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}.row-actions{display:flex;gap:6px}.load-more-row{display:flex;justify-content:center;margin-top:16px}.detail-panel{position:sticky;top:24px;border:1px solid #dfe7ef;border-radius:8px;background:#fff;padding:16px}.preview-frame{position:relative;aspect-ratio:1 / 1;display:grid;place-items:center;overflow:hidden;border-radius:8px;background:#edf2f7;color:#74869a}.preview-frame img{width:100%;height:100%;object-fit:contain;display:block}.preview-open-button{position:absolute;right:10px;bottom:10px;width:36px;height:36px;display:grid;place-items:center;border:1px solid #dbe4ee;border-radius:8px;background:#ffffffeb;color:#405263;cursor:pointer}.preview-open-button:hover{background:#fff}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-top:16px}.detail-header h2{font-size:20px;line-height:1.25;overflow-wrap:anywhere}.edit-form{display:grid;gap:10px;margin-top:14px}.login-panel label,.edit-form label{display:grid;gap:7px;color:#425466;font-size:13px;font-weight:700}.login-panel input,.edit-form input{width:100%;min-height:42px;border:1px solid #dbe4ee;border-radius:8px;padding:0 12px;outline:0;background:#fff;color:#17202a;font-size:14px}.login-panel input:focus,.edit-form input:focus{border-color:#0ea5a9;box-shadow:0 0 0 3px #0ea5a921}.meta-list{display:grid;gap:8px;margin:16px 0 0}.meta-list div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf1f5;font-size:13px}.meta-list dt{color:#708093}.meta-list dd{margin:0;color:#17202a;text-align:right;overflow-wrap:anywhere}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.tag-row span{padding:5px 8px;border:1px solid #d7e8ec;border-radius:8px;background:#f3fbfc;color:#176a70;font-size:12px}.detail-album-field{display:grid;gap:7px;margin-top:14px;color:#425466;font-size:13px;font-weight:700}.detail-album-field select{min-height:40px;border:1px solid #dbe4ee;border-radius:8px;padding:0 10px;background:#fff;color:#17202a;font-size:13px;font-weight:700}.private-link{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin-top:14px;padding:9px;border:1px solid #dfe7ef;border-radius:8px;background:#f8fafc}.private-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#526171;font-size:12px}.preview-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#0a121ac7}.preview-stage{position:relative;width:min(1120px,100%);height:min(780px,calc(100vh - 48px));display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#0e141b;color:#f4f7fb;box-shadow:0 30px 80px #00000057}.preview-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border-bottom:1px solid rgba(255,255,255,.12)}.preview-topbar strong,.preview-topbar span{display:block}.preview-topbar strong{max-width:min(620px,56vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.preview-topbar span{margin-top:4px;color:#aebccd;font-size:12px}.preview-actions{display:flex;gap:8px}.preview-actions .icon-action,.preview-nav{border-color:#ffffff2e;background:#ffffff14;color:#f4f7fb}.preview-actions .icon-action:hover,.preview-nav:hover:not(:disabled){background:#ffffff29}.preview-image-wrap{min-height:0;display:grid;place-items:center;padding:18px 70px;color:#aebccd}.preview-image-wrap img{max-width:100%;max-height:100%;display:block;object-fit:contain}.preview-nav{position:absolute;top:50%;width:44px;height:54px;display:grid;place-items:center;border-radius:8px;cursor:pointer}.preview-nav:disabled{cursor:not-allowed;opacity:.35}.preview-nav.previous{left:14px}.preview-nav.next{right:14px}.empty-state,.empty-detail,.center-screen,.login-screen{display:grid;place-items:center;color:#667585}.empty-state{min-height:320px;margin-top:18px;border:1px solid #dfe7ef;border-radius:8px;background:#fff;text-align:center}.empty-detail{min-height:520px;text-align:center}.center-screen,.login-screen{min-height:100vh;gap:10px}.login-screen{background:#f6f8fb}.login-panel{width:min(420px,calc(100vw - 32px));display:grid;gap:14px;padding:28px;border:1px solid #dfe7ef;border-radius:8px;background:#fff;box-shadow:0 24px 54px #192d4414}.login-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:8px;background:#e8f7f8;color:#0d8c91}.form-error{padding:10px 12px;border-radius:8px;background:#fff3f3;color:#b42323;font-size:13px}.toast{position:fixed;right:22px;bottom:22px;z-index:20;display:flex;align-items:center;gap:12px;min-height:42px;max-width:min(420px,calc(100vw - 28px));padding:0 10px 0 14px;border:1px solid #cfe3e7;border-radius:8px;background:#fff;box-shadow:0 18px 38px #142d3f24;color:#243241;font-size:13px}.toast button{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:transparent;color:#677788;cursor:pointer}.hidden-input{display:none}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:40;height:auto;flex-direction:row;align-items:center;gap:8px;padding:8px 12px}.brand-mark{width:36px;height:36px;margin:0 4px 0 0}.side-button{width:42px;height:42px}.side-button.bottom{margin:0 0 0 auto}.workspace{padding:14px}.topbar{grid-template-columns:1fr;gap:10px;margin-bottom:14px}.topbar .primary-button{width:100%;justify-content:center}.main-grid,.album-main-grid{display:flex;flex-direction:column;gap:14px}.album-sidebar{position:static;grid-auto-flow:column;grid-auto-columns:minmax(140px,max-content);overflow-x:auto;-webkit-overflow-scrolling:touch}.detail-panel{position:static}.settings-grid{grid-template-columns:1fr 1fr}.drop-zone{grid-template-columns:auto minmax(150px,1fr) minmax(180px,1fr)}.drop-zone>.ghost-button{grid-column:3;width:100%}.gallery-toolbar{grid-template-columns:minmax(220px,1fr) minmax(140px,1fr) 44px max-content;align-items:end}.toolbar-search{grid-column:1 / -1}.gallery-toolbar .toolbar-field:first-of-type{grid-column:span 2}.bulk-bar,.bulk-bar.active{grid-template-columns:1fr}.image-row{grid-template-columns:34px 64px minmax(0,1fr) auto}}@media(max-width:620px){.workspace{padding:12px}.topbar h1{font-size:22px}.topbar p{font-size:13px}.settings-grid{grid-template-columns:1fr}.icon-action{width:40px;height:40px}.icon-action.mini{width:32px;height:32px}.drop-zone{grid-template-columns:1fr;text-align:center}.drop-zone>.ghost-button{grid-column:auto;width:100%}.provider-select{text-align:left}.drop-icon{margin:0 auto}.gallery-toolbar{grid-template-columns:1fr;align-items:stretch}.toolbar-field{width:100%}.toolbar-icon,.segmented-control,.gallery-toolbar .toolbar-field:first-of-type{grid-column:auto}.toolbar-field select,.segmented-control{width:100%}.segmented-control button{flex:1}.gallery-grid{column-width:150px;column-gap:10px}.gallery-grid .image-card{margin-bottom:10px}.row-meta{grid-template-columns:1fr}.row-actions{justify-content:flex-end}.trash-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.preview-modal{padding:8px}.preview-stage{height:calc(100vh - 16px)}.preview-topbar{align-items:flex-start}.preview-topbar strong{max-width:56vw}.preview-image-wrap{padding:12px 8px}.preview-nav{width:40px;height:56px}.preview-nav.previous{left:4px}.preview-nav.next{right:4px}.upload-result-body{flex-direction:column}.upload-result-thumb{width:100%;height:160px}}@media(max-width:420px){.gallery-grid{column-width:auto;column-count:1}.trash-grid{grid-template-columns:1fr}.copy-format-chip{flex:1;justify-content:center}}.copy-formats{display:flex;flex-wrap:wrap;gap:6px}.copy-formats.panel{margin-top:4px}.copy-format-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:7px;background:#eef2f7;color:#2b3a4b;cursor:pointer;font-size:12px;font-weight:600;transition:background .15s ease,color .15s ease}.copy-format-chip:hover{background:#dde6f0}.copy-format-chip.copied{background:#19b8c7;color:#04282d}.copy-formats.bar{gap:6px}.copy-formats.bar .copy-format-chip{background:#ffffff1f;color:#e6eef6}.copy-formats.bar .copy-format-chip:hover{background:#fff3}.copy-formats.bar .copy-format-chip.copied{background:#19b8c7;color:#04282d}.upload-result-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:#0910188c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.upload-result-card{width:min(440px,100%);background:#fff;border-radius:14px;padding:18px;box-shadow:0 24px 60px #09101847;display:flex;flex-direction:column;gap:14px}.upload-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.upload-result-head strong{display:block;font-size:16px}.upload-result-head span{color:#61707f;font-size:13px}.upload-result-body{display:flex;gap:14px}.upload-result-thumb{width:96px;height:96px;flex:none;border-radius:10px;overflow:hidden}.upload-result-info{min-width:0;display:flex;flex-direction:column;gap:8px}.upload-result-info strong{font-size:14px;word-break:break-all}.upload-result-info span{color:#61707f;font-size:12px}.upload-result-pager{display:flex;align-items:center;justify-content:center;gap:12px;color:#61707f;font-size:13px}.upload-result-failed{margin:0;padding-left:18px;color:#c0392b;font-size:12px;display:flex;flex-direction:column;gap:4px}.drag-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;padding:24px;background:#0f17209e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none}.drag-overlay-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 56px;border-radius:16px;border:2px dashed rgba(255,255,255,.55);color:#f2f7fb;background:#19b8c729}.drag-overlay-card strong{font-size:18px}.drag-overlay-card span{font-size:13px;color:#c7d6e2}.share-box{margin-top:14px;padding-top:14px;border-top:1px solid #e6ecf2;display:flex;flex-direction:column;gap:10px}.share-head{display:flex;align-items:center;gap:6px;color:#2b3a4b;font-size:13px}.share-head strong{font-size:13px}.share-controls{display:flex;gap:8px}.share-controls select{flex:1;padding:7px 10px;border-radius:7px;border:1px solid #d6dee7;background:#fff;color:#17202a}.share-controls .ghost-button{white-space:nowrap}.share-result{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:#eef2f7}.share-url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#2b3a4b}.share-hint{font-size:12px;color:#61707f}.share-error{font-size:12px;color:#c0392b}.tag-chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;background:#eef2f7;color:#2b3a4b;font-size:12px;cursor:pointer;border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.tag-chip:hover{background:#dde6f0;border-color:#19b8c7}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.row-tags{display:flex;flex-wrap:wrap;gap:5px}.token-box{margin-top:16px;padding-top:16px;border-top:1px solid #e6ecf2;display:flex;flex-direction:column;gap:10px}.token-head{display:flex;align-items:center;gap:6px;color:#2b3a4b}.token-head strong{font-size:14px}.token-desc{margin:0;color:#61707f;font-size:12px}.token-result{display:flex;flex-direction:column;gap:8px}.token-field{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:#eef2f7}.token-label{flex:none;width:44px;color:#61707f;font-size:12px}.token-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#2b3a4b;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.exif-list{margin-top:10px;padding-top:10px;border-top:1px dashed #e0e7ee}.trash-view{padding:0}.trash-head-actions{display:flex;gap:8px}.trash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:16px}.trash-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:10px;background:#fff;border:1px solid #e6ecf2}.trash-thumb{width:100%;aspect-ratio:4 / 3;border-radius:8px;overflow:hidden}.trash-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.trash-meta strong{font-size:13px;word-break:break-all}.trash-meta span{font-size:12px;color:#61707f}.trash-actions{display:flex;gap:8px}.trash-actions .ghost-button,.trash-actions .danger-button{flex:1;justify-content:center}.provider-usage{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.provider-usage em{font-style:normal;font-size:13px;color:#2b3a4b;font-weight:600}.provider-usage span{font-size:11px;color:#61707f}.share-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.share-list-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:7px;background:#eef2f7}.share-list-item.inactive{opacity:.6}.share-list-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.share-list-state{font-size:12px;font-weight:600;color:#2b3a4b}.share-list-time{font-size:11px;color:#61707f}.password-box{margin-top:16px;padding-top:16px;border-top:1px solid #e6ecf2;display:flex;flex-direction:column;gap:8px}.password-head{display:flex;align-items:center;gap:6px;color:#2b3a4b}.password-head strong{font-size:14px}.password-box input{padding:8px 10px;border-radius:7px;border:1px solid #d6dee7;background:#fff;color:#17202a}.password-ok{font-size:12px;color:#1f9d57}.confirm-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:20px;background:#0910188c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-card{width:min(380px,100%);background:#fff;border-radius:12px;padding:20px;box-shadow:0 24px 60px #09101847;display:flex;flex-direction:column;gap:10px}.confirm-card strong{font-size:16px;color:#17202a}.confirm-card p{margin:0;color:#4a5765;font-size:14px;line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}:root{color-scheme:light;--ap-bg: #f5f5f7;--ap-bg-2: #ffffff;--ap-surface: rgba(255, 255, 255, .78);--ap-surface-solid: #ffffff;--ap-surface-muted: rgba(246, 246, 248, .82);--ap-text: #1d1d1f;--ap-text-2: #6e6e73;--ap-text-3: #86868b;--ap-hairline: rgba(0, 0, 0, .08);--ap-hairline-strong: rgba(0, 0, 0, .14);--ap-blue: #0071e3;--ap-blue-hover: #0077ed;--ap-blue-soft: rgba(0, 113, 227, .1);--ap-red: #ff3b30;--ap-red-soft: rgba(255, 59, 48, .1);--ap-green: #34c759;--ap-radius-sm: 12px;--ap-radius: 18px;--ap-radius-lg: 26px;--ap-shadow: 0 1px 2px rgba(0,0,0,.04), 0 18px 48px rgba(0,0,0,.08);--ap-shadow-soft: 0 10px 30px rgba(0,0,0,.07);--ap-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}:root[data-theme=dark]{color-scheme:dark;--ap-bg: #08090b;--ap-bg-2: #111216;--ap-surface: rgba(28, 28, 30, .72);--ap-surface-solid: #1c1c1e;--ap-surface-muted: rgba(44, 44, 46, .72);--ap-text: #f5f5f7;--ap-text-2: #a1a1a6;--ap-text-3: #7d7d84;--ap-hairline: rgba(255, 255, 255, .12);--ap-hairline-strong: rgba(255, 255, 255, .2);--ap-blue: #0a84ff;--ap-blue-hover: #409cff;--ap-blue-soft: rgba(10, 132, 255, .16);--ap-red: #ff453a;--ap-red-soft: rgba(255, 69, 58, .16);--ap-green: #30d158;--ap-shadow: 0 1px 2px rgba(0,0,0,.4), 0 22px 56px rgba(0,0,0,.42);--ap-shadow-soft: 0 14px 36px rgba(0,0,0,.34)}:root,body{font-family:var(--ap-font);background:radial-gradient(circle at 16% -8%,rgba(0,113,227,.14),transparent 34%),radial-gradient(circle at 86% 0%,rgba(175,82,222,.1),transparent 30%),linear-gradient(180deg,var(--ap-bg-2),var(--ap-bg));color:var(--ap-text);-webkit-font-smoothing:antialiased}body,.app-shell,.workspace,.login-screen,.settings-view,.trash-view{background:transparent;color:var(--ap-text)}.sidebar{background:var(--ap-surface);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);color:var(--ap-text);border-right:1px solid var(--ap-hairline)}.brand-mark{background:linear-gradient(145deg,var(--ap-blue),#5ac8fa);color:#fff;border-radius:15px;box-shadow:0 10px 24px #0071e347}.side-button{color:var(--ap-text-2);border-radius:15px;transition:background .18s ease,color .18s ease,transform .18s ease}.side-button:hover,.side-button.active{color:var(--ap-blue);background:var(--ap-blue-soft);transform:translateY(-1px)}.side-button.bottom:hover{color:var(--ap-red);background:var(--ap-red-soft)}.topbar{padding:8px 2px 4px}.topbar h1{font-weight:760;letter-spacing:-.035em;color:var(--ap-text)}.topbar p,.detail-header p,.login-panel p,.settings-header p,.trash-subtitle,.empty-state p{color:var(--ap-text-2)}.image-card,.detail-panel,.album-sidebar,.gallery-toolbar,.settings-panel,.trash-card,.bulk-bar,.drop-zone,.login-panel,.provider-row,.image-row,.upload-result-card,.album-dialog,.confirm-card,.preview-stage{border-color:var(--ap-hairline)!important;border-radius:var(--ap-radius)!important;background:var(--ap-surface);box-shadow:var(--ap-shadow-soft);backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px)}.image-card{overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.image-card:hover{transform:translateY(-2px);box-shadow:var(--ap-shadow);border-color:var(--ap-hairline-strong)!important}.image-card.active{box-shadow:0 0 0 3px var(--ap-blue),var(--ap-shadow)}.image-card .thumb,.trash-thumb,.preview-stage{background:var(--ap-surface-muted)}.image-card .thumb img{transition:transform .32s ease}.image-card:hover .thumb img{transform:scale(1.025)}.primary-button,.ghost-button,.danger-button,.icon-action,.copy-format-chip,.tag-chip,.album-filter,.view-toggle,.select-toggle{transition:background .18s ease,border-color .18s ease,color .18s ease,transform .12s ease,box-shadow .18s ease}.primary-button{background:var(--ap-blue);border-radius:980px;color:#fff;font-weight:650;box-shadow:0 10px 22px #0071e338}.primary-button:hover{background:var(--ap-blue-hover);transform:translateY(-1px)}.primary-button:active,.ghost-button:active,.danger-button:active{transform:scale(.98)}.primary-button:disabled,.ghost-button:disabled,.danger-button:disabled{transform:none;box-shadow:none}.ghost-button{border-radius:980px;border-color:var(--ap-hairline);background:var(--ap-surface);color:var(--ap-text);font-weight:560}.ghost-button:hover{border-color:var(--ap-hairline-strong);background:var(--ap-surface-muted)}.danger-button{border-radius:980px;border-color:#ff3b304d;background:var(--ap-surface);color:var(--ap-red);font-weight:620}.danger-button:hover{background:var(--ap-red-soft)}input,select,textarea,.search-box,.toolbar-search,.share-controls select,.password-box input,.settings-field select,.detail-form input,.detail-form textarea{border-radius:var(--ap-radius-sm)!important;border-color:var(--ap-hairline)!important;background:var(--ap-surface-solid)!important;color:var(--ap-text)!important}input::placeholder,textarea::placeholder{color:var(--ap-text-3)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ap-blue)!important;box-shadow:0 0 0 4px var(--ap-blue-soft)}.icon-action{border-color:var(--ap-hairline);border-radius:12px;color:var(--ap-text-2);background:transparent}.icon-action:hover{background:var(--ap-surface-muted);color:var(--ap-text)}.icon-action.danger,.danger{color:var(--ap-red)}.album-filter:hover,.album-filter.active,.album-item.active .album-name-button,.view-toggle.active,.copy-format-chip.copied,.select-toggle.checked{background:var(--ap-blue-soft);color:var(--ap-blue);border-color:transparent}.select-toggle.checked,.copy-format-chip.copied{background:var(--ap-blue);color:#fff}.album-filter em,.stat-card,.settings-metric,.copy-format-chip,.tag-chip,.share-list-item{background:var(--ap-surface-muted);color:var(--ap-text-2)}.tag-chip:hover,.copy-format-chip:hover{background:var(--ap-blue-soft);color:var(--ap-blue)}.detail-header h2,.settings-header h2,.trash-header h2,.login-panel h1{color:var(--ap-text);letter-spacing:-.025em}.detail-meta,.image-meta,.provider-usage span,.share-list-time,.trash-meta span,.album-sidebar-header span{color:var(--ap-text-2)}.provider-usage em,.share-list-state,.password-head,.confirm-card strong{color:var(--ap-text)}.password-box,.album-sidebar-header{border-color:var(--ap-hairline)}.password-ok{color:var(--ap-green)}.drag-overlay{background:#00000047;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.drag-overlay-card{border-radius:var(--ap-radius-lg);background:var(--ap-surface);color:var(--ap-text);box-shadow:var(--ap-shadow)}.toast{border-radius:980px;background:#1c1c1ee6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#fff;box-shadow:var(--ap-shadow)}.confirm-modal,.app-modal,.preview-modal{background:#0000006b;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.preview-topbar{background:var(--ap-surface);border-color:var(--ap-hairline);color:var(--ap-text);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark}}
