:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#202735;background:#f6f7fa;font-synthesis:none;--blue:#3464e0;--muted:#7b8494;--border:#e6e9ef}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}[hidden]{display:none!important}h1,h2,h3,p{margin:0}label{display:block;font-size:13px;font-weight:600;margin:22px 0 9px}input,textarea{width:100%;border:1px solid #dce1ea;border-radius:9px;padding:12px 13px;background:white;color:#263146}input:focus,textarea:focus{outline:2px solid #b7c9ff;border-color:var(--blue)}textarea{resize:vertical}.muted{color:var(--muted);line-height:1.7}.eyebrow{color:var(--blue);font-size:11px;letter-spacing:2px;font-weight:700}.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:10px 17px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:600;background:white;color:#43516a;white-space:nowrap}.button:hover{background:#f0f3fa}.button.primary{background:var(--blue);border-color:var(--blue);color:white;box-shadow:0 3px 8px #3464e018}.button.primary:hover{background:#2855c9}.button.danger{color:#bb3d47}.wide{width:100%}.brand{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:700;letter-spacing:1px}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:var(--blue);color:white;font-size:23px;box-shadow:0 5px 12px #3464e027}.brand-en{display:block;font-size:8px;letter-spacing:1.6px;margin-top:3px;font-weight:600;color:#8b95a6}.login-view{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-story{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:48px 10%;min-height:100vh;background:radial-gradient(ellipse at 10% 90%,#dae4ff,transparent 65%),linear-gradient(135deg,#f1f4fe,#e9eefb);overflow:hidden}.login-story:after{content:"";width:330px;height:330px;border:45px solid #ffffff70;transform:rotate(-23deg);border-radius:85px;position:absolute;right:-130px;bottom:20px;pointer-events:none}.story-copy{position:relative;z-index:1}.story-copy h1{font-size:clamp(28px,3vw,46px);font-weight:650;line-height:1.55;letter-spacing:-1px;margin:22px 0}.story-copy>p:not(.eyebrow){color:#73809a;font-size:15px;line-height:1.9}.story-tags{display:flex;gap:10px;margin-top:30px}.story-tags span{background:#ffffff9e;border:1px solid white;border-radius:6px;font-size:11px;padding:8px 12px;color:#71809a}.story-footer{font-size:11px;color:#97a1b5}.login-form-wrap{display:grid;place-items:center;padding:40px;background:white}.login-form{width:min(100%,360px)}.login-form h2{font-size:26px;margin:12px 0}.login-form .muted{font-size:13px;margin-bottom:32px}.login-footnote{font-size:11px;text-align:center;color:#a0a7b3;margin-top:24px}.error{font-size:12px;color:#c23d4a;line-height:1.6;min-height:20px;margin:14px 0}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{background:white;border-right:1px solid var(--border);padding:30px 22px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar .brand{margin:0 7px 45px}.nav-label{font-size:10px;color:#a2a9b5;padding:0 14px;margin-bottom:12px;letter-spacing:1.5px}nav a{display:flex;gap:13px;align-items:center;border-radius:8px;padding:13px 15px;margin-bottom:8px;font-size:13px;color:#7a8596}nav a.active{background:#edf2ff;color:var(--blue);font-weight:600}nav a span{font-size:19px}.sidebar-bottom{margin-top:auto;padding:18px 10px 0;border-top:1px solid var(--border);font-size:11px;color:#8b95a6;line-height:1.8}.status-dot{display:inline-block;width:6px;height:6px;background:#59b89b;border-radius:50%;margin-right:7px}.logout{border:0;background:transparent;display:block;padding:13px 0 0;color:#7f8b9d;font-size:12px}.workspace{min-width:0}.topbar{height:74px;border-bottom:1px solid var(--border);background:#ffffffb0;display:flex;justify-content:space-between;align-items:center;padding:0 40px;font-size:12px;color:#919baa}.admin-badge{display:flex;align-items:center;gap:12px;color:#7d8797}.avatar{display:grid;place-items:center;border-radius:50%;background:#e9efff;color:#5d7ac5;width:30px;height:30px;font-size:11px;font-weight:700}main{max-width:1480px;padding:39px 40px 60px;margin:auto;outline:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:30px}.page-heading h1{font-size:26px;letter-spacing:-.5px;overflow-wrap:anywhere}.page-heading p{font-size:12px;color:#8e97a5;margin-top:10px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.heading-actions{display:flex;gap:8px;flex-shrink:0}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:34px}.stat-card{padding:24px;background:white;border:1px solid var(--border);border-radius:12px}.stat-label{display:flex;justify-content:space-between;color:#8993a2;font-size:12px}.stat-icon{border-radius:8px;background:#f0f4ff;padding:5px 8px;color:#6d8bd4}.stat-value{font-size:30px;font-weight:600;margin-top:13px;letter-spacing:-1px}.stat-caption{font-size:10px;color:#a0a8b5;margin-top:8px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:15px 0 18px}.section-heading h2{font-size:16px;font-weight:600}.text-link{color:var(--blue);font-size:12px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.project-card{border:1px solid var(--border);border-radius:12px;background:white;padding:23px;min-width:0;transition:border-color .2s,box-shadow .2s}.project-card:hover{border-color:#c9d6f4;box-shadow:0 5px 18px #26355406}.folder-icon{display:grid;place-items:center;width:40px;height:35px;background:#edf2ff;color:#7596e4;border-radius:7px;font-size:22px;margin-bottom:20px}.project-card h3{font-size:15px;font-weight:600;overflow-wrap:anywhere}.project-card .description{font-size:12px;color:#98a0ad;margin-top:9px;height:36px;line-height:1.5;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.project-meta{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#8c97a9;margin:20px 0 16px}.card-actions{border-top:1px solid #f0f1f5;padding-top:15px;display:flex;gap:10px;align-items:center}.card-actions .button{padding:7px 11px;font-size:11px}.quiet-button{font-size:11px;padding:7px 3px;border:0;background:transparent;color:#8b96a7}.quiet-button:hover{color:var(--blue)}.quiet-button.danger:hover{color:#c04854}.empty-state{border:1px dashed #d8dfec;border-radius:12px;min-height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;background:#ffffff70;color:#8e9bb0}.empty-icon{font-size:32px;color:#a7bbec}.empty-state h3{font-size:15px;color:#6d7b92}.empty-state p{font-size:12px;text-align:center;padding:0 15px}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:28px;font-size:12px;color:#8b94a3}.upload-panel{background:white;border:1px solid var(--border);border-radius:12px;padding:22px;margin-bottom:25px;display:flex;align-items:center;gap:20px;justify-content:space-between}.upload-panel h2{font-size:14px;margin-bottom:8px}.upload-panel p{font-size:11px;color:#98a0ae}.upload-form{display:flex;align-items:center;gap:12px;min-width:0}.upload-form input{padding:8px;font-size:11px;max-width:300px}.preview-controls{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:11px;color:#8c96a7}.preview-controls input{width:76px;padding:7px 9px;font-size:11px}.preview-controls .button{font-size:11px;padding:7px 11px}.preview-controls label{display:inline;margin:0;font-size:11px;font-weight:400}.image-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.image-card{background:white;border:1px solid var(--border);border-radius:10px;overflow:hidden;min-width:0}.image-surface{display:grid;place-items:center;aspect-ratio:4/3;background:repeating-conic-gradient(#f3f5f8 0 25%,#fafbfc 0 50%) 50% / 18px 18px;position:relative}.image-surface img{display:block;max-width:100%;max-height:160px;object-fit:contain}.image-surface button{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;color:transparent}.image-surface button:hover{background:#2340a010;outline:2px solid #8daaff;outline-offset:-2px}.image-info{padding:13px}.image-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-details{font-size:10px;color:#a0a8b5;margin-top:7px}.image-info .button{font-size:10px;padding:5px 9px;margin-top:12px}.preview-loading{font-size:11px;color:#a3acba}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#23324b;color:white;padding:12px 22px;border-radius:9px;font-size:12px;z-index:100;box-shadow:0 5px 25px #0002;max-width:90vw}dialog{border:1px solid var(--border);border-radius:14px;padding:28px;width:min(440px,92vw);color:#263146;box-shadow:0 20px 100px #16274833}dialog::backdrop{background:#18243c66;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-heading h2{font-size:20px}.icon-button{border:0;background:#f1f3f8;border-radius:6px;font-size:22px;line-height:1;padding:4px 8px;color:#8b96a6}.preview-dialog{width:fit-content;max-width:92vw;max-height:92vh;padding:20px}.preview-dialog .dialog-heading{font-size:12px;margin-bottom:16px}.preview-dialog img{display:block;max-width:85vw;max-height:73vh;object-fit:contain}.load-error{padding:30px;background:white;border:1px solid #f1d5da;border-radius:10px;color:#b14351;line-height:1.8;white-space:pre-wrap}
@media(min-width:1500px){.image-surface img{max-height:220px}}@media(max-width:1150px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.image-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.app-shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:25px 15px}.topbar{padding:0 25px}main{padding:30px 25px}.upload-panel{align-items:flex-start;flex-direction:column}.stat-card{padding:20px}}@media(max-width:760px){.login-view{grid-template-columns:1fr}.login-story{min-height:auto;padding:25px}.story-copy,.story-footer{display:none}.login-form-wrap{padding:40px 25px;min-height:75vh}.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:14px 18px;flex-direction:row;align-items:center;gap:18px;border-bottom:1px solid var(--border);border-right:0}.sidebar .brand{margin:0;font-size:16px}.sidebar .brand-mark{width:32px;height:32px;font-size:19px;border-radius:9px}.sidebar .brand-en,.nav-label,.sidebar-bottom .status-dot{display:none}.sidebar nav{display:flex;margin-left:auto;gap:7px}.sidebar nav a{padding:8px;margin:0;font-size:11px}.sidebar nav a span{display:none}.sidebar-bottom{margin:0;border:0;padding:0;font-size:0}.logout{font-size:11px;padding:8px 0;white-space:nowrap}.topbar{height:50px;padding:0 20px}main{padding:25px 18px}.page-heading{align-items:flex-start;margin-bottom:22px}.page-heading h1{font-size:23px}.heading-actions .button{padding:9px 11px;font-size:11px}.stats-grid{gap:9px;margin-bottom:26px}.stat-card{padding:15px 12px}.stat-icon,.stat-caption{display:none}.stat-label{font-size:10px}.stat-value{font-size:22px}.project-grid{gap:12px}.project-card{padding:17px}.image-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.upload-form{flex-direction:column;align-items:stretch;width:100%}.upload-form input{max-width:100%}.preview-controls{flex-wrap:wrap}.preview-controls input{width:64px}.image-surface img{max-height:125px}.card-actions{gap:6px}.card-actions .button{padding:6px 8px}.project-meta{font-size:10px}.project-card h3{font-size:14px}.folder-icon{margin-bottom:14px}.stat-value{letter-spacing:-.5px}}@media(max-width:400px){.project-grid{grid-template-columns:1fr}.sidebar{gap:10px}.sidebar nav{gap:0}.sidebar nav a{font-size:10px}.page-heading{flex-wrap:wrap}}
select{font:inherit;color:#43516a;border:1px solid var(--border);border-radius:8px;background:white;padding:9px;max-width:100%}.page-size-controls{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:12px;flex-wrap:wrap}.page-size-controls label{display:inline;margin:0;font-weight:400}.page-size-controls .muted{font-size:11px}.image-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.share-actions{display:flex;gap:10px;margin-top:15px}.share-note{font-size:11px;margin-top:12px}#share-filename{font-size:12px;margin-top:12px;overflow-wrap:anywhere}#share-operation{width:100%}#share-url{font-size:11px}.pagination{flex-wrap:wrap;gap:10px}@media(max-width:760px){.pagination .button{padding:8px 10px;font-size:11px}.pagination{gap:7px}}
