:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans CJK SC","Source Han Sans SC","Microsoft YaHei",sans-serif;color:#eef6ff;background:#07111f;font-size:15px;line-height:1.6;--primary:#53d8ff;--primary-strong:#25b9ef;--border:#29415b;--muted:#b3c5d9;--surface:#102139;--surface-soft:#0c1a2c;--danger:#ff9aaa;--shadow:0 18px 50px rgba(0,0,0,.28)}
*{box-sizing:border-box;letter-spacing:0} [hidden]{display:none!important} body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 12% 0%,rgba(39,139,210,.18),transparent 42%),radial-gradient(ellipse at 94% 9%,rgba(107,83,217,.13),transparent 38%),#07111f} body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(rgba(95,148,184,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(95,148,184,.035) 1px,transparent 1px);background-size:44px 44px} button,input,select{font:inherit} button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 17px;border:1px solid var(--border);border-radius:10px;background:#12263f;color:#edf6ff;cursor:pointer;white-space:nowrap;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;touch-action:manipulation} button:hover{background:#1a3553;border-color:#537b9f} button:active{transform:translateY(1px)} button:disabled{cursor:not-allowed;opacity:.5;transform:none} button svg{width:19px;height:19px;flex-shrink:0} button.primary{background:linear-gradient(115deg,#72e2ff,#47c4fc);color:#062038;border-color:#8ce6ff;font-weight:700;box-shadow:0 5px 20px rgba(35,168,225,.16)} button.primary:hover{background:linear-gradient(115deg,#a1eeff,#6ad8ff);box-shadow:0 6px 25px rgba(35,168,225,.28)} button.danger{color:#fff;background:#a72d48;border-color:#dc5870} button.danger:hover{background:#bf3653} button.icon-button{width:46px;height:46px;padding:0;flex-shrink:0;background:transparent} button.icon-button:hover{background:#1a3553} input,select{min-width:0;width:100%;height:48px;padding:0 14px;background:#0a1729;border:1px solid #48617c;border-radius:9px;color:#f1f7ff;transition:border-color .18s,box-shadow .18s;color-scheme:dark} input::placeholder{color:#91a7bf;opacity:1} input:hover,select:hover{border-color:#6b8faf} input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #77dfff;outline-offset:3px} input:focus,select:focus{border-color:#70d9ff;box-shadow:0 0 0 3px rgba(83,216,255,.1)} select option{background:#102139;color:#f1f7ff} svg{width:20px;height:20px;stroke-width:1.8} a{color:#8ddfff} a:hover{color:#c6f2ff} .muted{color:var(--muted);font-size:14px;line-height:1.7} .brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:750;letter-spacing:.3px;color:#f0f8ff;white-space:nowrap} .brand-icon{width:42px;height:42px;display:grid;place-items:center;background:linear-gradient(140deg,#183b59,#17324c);color:#75e4ff;border:1px solid #3d718e;border-radius:12px;box-shadow:inset 0 0 18px rgba(81,197,247,.06),0 0 20px rgba(23,135,188,.08)} .brand-icon svg{width:25px;height:25px}
.login-screen{min-height:100dvh;display:flex;justify-content:center;align-items:center;padding:30px 20px;position:relative;overflow:hidden} .login-screen::before,.login-screen::after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(91,192,236,.15);border-radius:50%;pointer-events:none} .login-screen::before{left:calc(50% - 510px);top:calc(50% - 280px);box-shadow:0 0 0 55px rgba(47,107,155,.025),0 0 0 110px rgba(47,107,155,.025)} .login-screen::after{right:calc(50% - 520px);bottom:calc(50% - 310px);border-color:rgba(147,114,233,.17)} .login-form{width:430px;max-width:100%;padding:38px;border:1px solid #36516d;border-radius:22px;background:linear-gradient(145deg,rgba(21,43,69,.97),rgba(11,26,45,.98));box-shadow:var(--shadow);z-index:1;position:relative} .login-form::before{content:"";position:absolute;top:-1px;left:30px;right:30px;height:2px;background:linear-gradient(90deg,transparent,#7de5ff,#a8a0ff,transparent)} .login-form .brand{margin-bottom:30px} .login-form h1{font-size:28px;margin:0 0 8px} .login-intro{margin:0 0 26px;color:var(--muted);font-size:14px} label{display:block;margin:17px 0 8px;font-weight:600;color:#dceafa} .login-form button{width:100%;margin-top:12px} .login-form .error{margin-bottom:4px} .error{color:#ffa7b6;min-height:22px;font-size:14px;margin:12px 0 0;line-height:1.7;overflow-wrap:anywhere} .error:empty{display:none}
.file-picker{margin-top:9px;position:relative}.file-picker:focus-within{outline:3px solid #77dfff;outline-offset:3px;border-radius:10px}.file-picker-control{display:flex;align-items:center;gap:10px;min-height:52px;margin:0;padding:8px 10px 8px 14px;border:1px solid #48617c;border-radius:9px;background:#0a1729;color:#e6f4ff;cursor:pointer;line-height:1.4}.file-picker-control:hover{border-color:#6b8faf;background:#10243b}.file-picker-control>svg{color:#83e3ff;flex:0 0 auto}.file-picker-control>span:first-of-type{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-picker-button{margin-left:auto;flex:0 0 auto;padding:7px 11px;border:1px solid #407392;border-radius:6px;background:#163b53;color:#c4f0ff;font-size:13px}.visually-hidden-file{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.topbar{min-height:84px;background:rgba(9,23,40,.96);border-bottom:1px solid #29425c;padding:18px 36px;display:flex;align-items:center;gap:28px;box-shadow:0 3px 28px rgba(0,0,0,.12)} .account-nav{display:flex;align-items:center;gap:9px;min-width:0;flex:1;flex-wrap:wrap} .account-chip{display:inline-flex;align-items:center;max-width:100%;border:1px solid #344d67;border-radius:10px;background:#10233a;overflow:hidden} .account-chip.active{border-color:#50b7dc;background:#10364b;box-shadow:0 0 18px rgba(59,181,220,.08)} .account-chip button{border:0;background:transparent;min-height:42px;color:#c0d3e7;border-radius:0} .account-chip-main{padding:8px 12px;min-width:0;white-space:normal!important;text-align:left;overflow-wrap:anywhere;font-size:13px;line-height:1.5} .account-chip.active .account-chip-main{color:#a5edff;font-weight:650} .account-chip-delete{width:40px!important;min-height:42px!important;padding:0;color:#ff9aaa!important} .account-chip-delete svg{width:16px;height:16px} .header-actions{display:flex;align-items:center;gap:9px;margin-left:auto} .account{color:#c1d4e7;font-size:14px;margin-right:7px;padding:5px 12px;background:#13283f;border-radius:7px;max-width:150px;overflow-wrap:anywhere} .workspace-main{max-width:1432px;margin:0 auto;padding:42px 36px 22px} .page-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:28px} .heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end} .eyebrow{margin:0 0 8px;font-size:13px;color:#82d9f4;display:flex;align-items:center;gap:8px;font-weight:600} .eyebrow::before{content:"";width:7px;height:7px;border-radius:2px;background:#75dfff;box-shadow:0 0 12px #35b9e66b} h1{font-size:32px;margin:0;font-weight:750;line-height:1.35;letter-spacing:.5px;color:#f3f8ff} h1 span{display:inline-flex;align-items:center;justify-content:center;color:#aeeaff;font-size:16px;font-weight:650;margin-left:12px;min-width:34px;padding:2px 10px;border:1px solid #335771;border-radius:8px;background:#142e45;vertical-align:middle;font-variant-numeric:tabular-nums} .page-description{margin:10px 0 0;color:#b5c8dc;font-size:14px;max-width:680px} .storage-strip{display:flex;gap:28px;flex-wrap:wrap;border:1px solid #29455e;border-radius:12px;padding:16px 20px;color:#c4d9eb;font-size:14px;background:linear-gradient(105deg,#10263b,#111f36);box-shadow:0 8px 28px rgba(0,0,0,.08)} .storage-strip>span{display:flex;align-items:center;gap:10px;min-width:0} .storage-strip svg{width:18px;height:18px;flex-shrink:0;color:#77dcff} .address{padding-left:25px;border-left:1px solid #385067} .address span{overflow-wrap:anywhere} .toolbar{display:flex;align-items:center;gap:12px;padding:26px 0} .search{display:flex;align-items:center;margin:0 auto 0 0;position:relative;width:340px;min-width:0} .search svg{position:absolute;left:15px;width:18px;color:#b7cee3;pointer-events:none} .search input{padding-left:44px;background:#0c1d31} .segmented{display:flex;padding:3px;border:1px solid #36516b;border-radius:10px;background:#0b1a2c} .segmented .icon-button{border:0;height:40px;min-height:40px;width:43px;border-radius:7px;color:#b5c9df} .segmented .active{background:#16415a;color:#94e8ff;box-shadow:inset 0 0 0 1px #36799a} #refresh-button{border-color:#36516b;background:#0e2034;color:#d3e4f3}
.library{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px} .image-card{min-width:0;background:linear-gradient(150deg,#142840,#0e1e32);border:1px solid #2c4863;border-radius:14px;overflow:hidden;box-shadow:0 8px 25px rgba(0,0,0,.15);transition:border-color .2s,box-shadow .2s,transform .2s} .image-card:hover{border-color:#4a87aa;box-shadow:0 10px 30px rgba(0,0,0,.23);transform:translateY(-2px)} .image-thumb{display:block;width:100%;height:auto;aspect-ratio:4/3;padding:15px;border:0;border-bottom:1px solid #34516b;border-radius:0;background:#cbd7e2;position:relative} .image-thumb:hover{background:#dce6ee} .image-thumb img{display:block;width:100%;height:100%;object-fit:contain} .image-info{padding:15px 16px 8px;min-width:0} .image-name{display:block;margin:0 0 10px;font-size:14px;font-weight:650;overflow-wrap:anywhere;line-height:1.55;color:#f0f6fd} .image-meta{display:flex;justify-content:space-between;gap:8px;color:#c2d4e6;font-size:13px;font-variant-numeric:tabular-nums} .image-time{font-size:13px;color:#9fb9d2;margin-top:7px;font-variant-numeric:tabular-nums} .image-actions{display:flex;align-items:center;justify-content:flex-end;padding:4px 10px 10px;gap:6px} .image-actions button{border:1px solid transparent;width:42px;height:42px;min-height:42px;color:#9ee5ff} .image-actions button:hover{border-color:#356383;background:#193a52} .image-actions button.delete{color:#ffa4b1} .library.list-view{display:flex;flex-direction:column;gap:10px} .list-view .image-card{display:flex;align-items:center;gap:20px;padding:12px 16px} .list-view .image-card:hover{transform:none} .list-view .image-thumb{width:96px;height:76px;padding:6px;aspect-ratio:auto;flex-shrink:0;border:1px solid #3a5670;border-radius:8px} .list-view .image-info{padding:0;flex:1} .list-view .image-meta{justify-content:flex-start;gap:24px} .list-view .image-time{margin-top:4px} .list-view .image-actions{padding:0} .empty-state{padding:78px 24px;text-align:center;border:1px dashed #355470;border-radius:16px;background:rgba(16,36,57,.5)} .empty-state>svg{width:52px;height:52px;color:#79ccec;padding:10px;box-sizing:content-box;border:1px solid #365b76;border-radius:18px;background:#142e46} .empty-state h2{font-size:20px;font-weight:600;margin:20px 0 22px;color:#d8e8f7} .pagination{display:flex;align-items:center;justify-content:space-between;padding:26px 0;gap:16px} .pagination>div{display:flex;gap:10px} .upload-progress{display:flex;align-items:center;gap:20px;padding:16px 20px;margin-bottom:20px;color:#abebff;border:1px solid #326686;border-radius:10px;background:#103249} progress{flex:1;height:8px;accent-color:var(--primary)} .drop-overlay{position:fixed;inset:16px;z-index:30;border:3px dashed #86e5ff;border-radius:18px;background:rgba(7,27,45,.97);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;pointer-events:none;color:#b4efff;font-size:24px} .drop-overlay svg{width:56px;height:56px}
dialog{width:510px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;border:1px solid #4e6d89;border-radius:18px;color:#eef7ff;background:linear-gradient(140deg,#152b44,#0c1c30);box-shadow:0 30px 90px rgba(0,0,0,.55),0 0 0 1px rgba(94,176,226,.08);overflow:auto} dialog::backdrop{background:rgba(2,8,17,.8);backdrop-filter:blur(4px)} .dialog-header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #344f69;padding:18px 24px;background:rgba(27,52,79,.46)} .dialog-header h2{font-size:19px;margin:0;font-weight:700;overflow-wrap:anywhere;line-height:1.55;color:#f2f8ff} .dialog-header .icon-button{border:0;color:#c7dbee} .dialog-footer{display:flex;gap:12px;justify-content:flex-end;align-items:center;padding:18px 24px;border-top:1px solid #344f69;background:rgba(7,20,36,.38)} .dialog-footer>span{margin-right:auto} .settings-body{padding:8px 24px 26px} .settings-body>label{display:block;margin-top:20px;margin-bottom:9px;color:#d5e5f4;font-size:15px} .settings-body>input[type=file]{width:100%;padding:10px;height:auto;line-height:1.6} input[type=file]::file-selector-button{border:1px solid #407392;border-radius:6px;color:#c4f0ff;background:#163b53;padding:7px 10px;margin-right:10px;cursor:pointer;font:inherit;font-size:13px} .settings-body p{line-height:1.75;overflow-wrap:anywhere} .settings-body a{color:#99e5ff} .account-picker{display:grid;gap:8px;margin-top:10px} .account-picker label{font-size:15px;color:#d5e5f4} .connect-links{display:flex;gap:12px 18px;align-items:center;flex-wrap:wrap} .connect-links a{display:inline-flex;align-items:center;gap:6px;min-height:36px} .connect-links svg{width:16px;height:16px} .connect-panel{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:24px;padding:18px 0;border-block:1px solid #344f69} .connect-panel>span{font-size:14px;color:#bed5e9;line-height:1.75;overflow-wrap:anywhere} .connect-actions{display:flex;flex-wrap:wrap;gap:10px} .connect-actions button{min-height:44px} #session-file{padding:10px;height:auto} .remote-dialog{width:1160px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto} .remote-body{padding:14px 22px 22px} .remote-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:48px;gap:12px;color:#c3d7e9;font-size:14px} .remote-frame{overflow:auto;border-radius:10px;border:1px solid #45617b;background:#fff} #remote-image{display:block;width:100%;height:auto;background:#fff;cursor:pointer;user-select:none} .remote-controls{display:flex;align-items:center;gap:8px;padding-top:14px} .remote-controls input{flex:1;min-width:0} .remote-controls button{flex-shrink:0} .manual-import{margin-top:20px;border-top:1px solid #344f69;padding-top:16px;font-size:14px} .manual-import summary{cursor:pointer;color:#c3d8ea;min-height:32px} .manual-import a{color:#95e4ff;display:inline-block;padding-top:14px} .manual-import button{margin-top:12px} .preview-dialog{width:960px} .preview-area{height:min(62vh,620px);background:#b9c9d7;padding:22px;display:flex;align-items:center;justify-content:center} .preview-area img{display:block;max-width:100%;max-height:100%;object-fit:contain} .delete-name{padding:14px 24px;overflow-wrap:anywhere;line-height:1.7;color:#e4eff9} .toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:16px 22px;border:1px solid #4ba5bd;border-radius:12px;background:#103544;color:#e1fbff;z-index:50;overflow-wrap:anywhere;box-shadow:0 12px 40px rgba(0,0,0,.4);font-size:14px;line-height:1.7} .skip-link{position:fixed;top:8px;left:12px;z-index:100;padding:10px 16px;background:#9aeaff;color:#061d31;border-radius:8px;transform:translateY(-160%)} .skip-link:focus{transform:translateY(0)} .workspace-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid #233b54;padding:20px 0 8px;color:#91acc6;font-size:13px} .workspace-footer span:last-child{color:#87cfe9}
@media(min-width:1700px){.workspace-main{padding-top:52px}} @media(max-width:1150px){.library{grid-template-columns:repeat(3,minmax(0,1fr))}.topbar{gap:18px;padding-inline:24px}.workspace-main{padding-inline:24px}.page-heading{align-items:flex-start}.heading-actions{max-width:360px}.topbar .brand{font-size:18px}} @media(max-width:800px){.topbar{flex-wrap:wrap;padding:14px 20px;gap:14px}.account-nav{order:3;flex-basis:100%;gap:8px}.header-actions{margin-left:auto}.workspace-main{padding:30px 20px 18px}.library{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.page-heading{flex-direction:column;align-items:stretch;gap:20px}.heading-actions{justify-content:flex-start;max-width:none}.heading-actions button{flex:1}.storage-strip{gap:12px 20px;padding:14px 16px}.address{padding-left:0;border:0}.toolbar{gap:10px}.image-meta{flex-wrap:wrap;gap:4px}.workspace-footer{font-size:12px}} @media(max-width:540px){:root{font-size:16px}.topbar{padding:14px 16px}.brand{font-size:18px}.brand-icon{width:38px;height:38px}.account{display:none}.workspace-main{padding:26px 16px 16px}h1{font-size:28px}.page-description{font-size:14px}.heading-actions{gap:10px}.heading-actions button{padding:0 12px;font-size:14px}.storage-strip{font-size:13px}.toolbar{flex-wrap:wrap;padding-block:22px}.search{width:100%;flex-basis:100%}.search input{font-size:16px}.segmented{margin-left:auto}.library{gap:14px;grid-template-columns:minmax(0,1fr)}.image-thumb{aspect-ratio:16/10;padding:18px}.image-name{font-size:15px}.image-meta,.image-time{font-size:13px}.image-info{padding:15px 17px 7px}.image-actions{padding:4px 12px 12px;gap:10px}.image-actions button{width:44px;height:44px}.dialog-header{padding:14px 18px}.dialog-header h2{font-size:18px}.settings-body{padding:6px 18px 22px}.dialog-footer{padding:16px 18px;flex-wrap:wrap;gap:10px}.dialog-footer .primary{flex:1}.connect-actions{width:100%}.connect-actions button{flex:1;padding-inline:10px;font-size:14px}.list-view .image-card{gap:12px;flex-wrap:wrap;padding:12px}.list-view .image-thumb{width:74px;height:64px}.list-view .image-info{min-width:0}.list-view .image-actions{width:100%;border-top:1px solid #29435e;padding-top:7px}.list-view .image-name{font-size:14px}.login-form{padding:30px 24px}.login-form h1{font-size:26px}.toast{bottom:16px;width:calc(100vw - 32px)}.workspace-footer{flex-direction:column;gap:5px}}
@media(max-width:660px){.remote-body{padding:10px 12px 18px}.remote-controls{flex-wrap:wrap}.remote-controls input{flex-basis:100%}.remote-dialog .dialog-header{padding:12px}.remote-frame{height:min(56dvh,560px)}#remote-image{width:1080px;max-width:none}} @media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
