:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#111;color:#f5f5f5;--green: #76b900;--green-dark: #568800;--panel: #181818;--panel-soft: #202020;--border: #313131;--text-muted: #a7a7a7;--danger: #ff5b5b}*{box-sizing:border-box}html{overflow-y:scroll;scrollbar-gutter:stable}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:#111}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.app-shell{min-height:100vh}.page-shell{width:min(1440px,100%);margin:0 auto}.navbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:24px;padding:16px 28px;border-bottom:1px solid var(--border);background:#111111f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{color:var(--green);font-size:22px;font-weight:800}.nav-links,.nav-user,.header-actions,.card-actions,.detail-actions,.selection-row,.batch-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.nav-links{flex:1;gap:14px}.nav-links a{display:inline-flex;align-items:center;min-height:36px;padding:8px 14px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#ffffff09;color:var(--text-muted);transition:border-color .2s,background .2s,color .2s,transform .2s}.nav-links a:hover{border-color:#76b900b3;background:#76b9001f;color:#fff;transform:translateY(-1px)}.nav-links a.router-link-active{border-color:var(--green);background:#76b90033;color:#fff;box-shadow:inset 0 0 0 1px #76b9002e}.content-page{min-height:calc(100vh - 76px);padding:28px}.content-page.narrow{max-width:820px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:6px;font-size:32px}h2{font-size:22px}h3{margin-bottom:6px;font-size:17px}.muted,.meta-line{color:var(--text-muted)}.meta-line{font-size:13px;overflow-wrap:anywhere}.button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 14px;border:1px solid var(--border);border-radius:8px;background:#262626;color:#fff;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.button:hover{border-color:var(--green);transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.55;transform:none}.button.primary{border-color:var(--green);background:var(--green);color:#071100;font-weight:700}.button.primary:hover{background:var(--green-dark)}.button.ghost{background:transparent}.button.danger,.button.small.danger{border-color:#ff5b5b8c;color:#fff}.button.small{min-height:32px;padding:6px 10px;font-size:13px}.button.wide{width:100%}.input{width:100%;min-height:40px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#101010;color:#fff;outline:none}.input:focus{border-color:var(--green)}label{display:grid;gap:8px;color:#dcdcdc;font-size:14px}.auth-page{display:grid;min-height:100vh;place-items:center;padding:24px}.auth-panel,.form-card,.toolbar,.detail-panel{border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:0 18px 60px #00000047}.auth-panel{width:min(430px,100%);padding:28px}.auth-panel form,.form-card{display:grid;gap:16px}.form-card{padding:20px}.switch-link{margin-top:18px;color:var(--text-muted)}.switch-link a{color:var(--green)}.message{padding:10px 12px;border-radius:8px;background:var(--panel-soft)}.message.info{border:1px solid rgba(118,185,0,.28);color:#d8f5a2}.toast-message{position:sticky;top:74px;z-index:8}.message.success{border:1px solid rgba(118,185,0,.55)}.message.error{border:1px solid rgba(255,91,91,.55);color:#ffd1d1}.toolbar{display:grid;gap:14px;padding:16px;margin-bottom:18px;background:linear-gradient(180deg,#1f1f1ffa,#161616fa)}.toolbar-main{display:grid;grid-template-columns:1fr auto auto;gap:12px}.toolbar-filters{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:12px;align-items:end}.dashboard-content{min-height:460px}.list-status-row{min-height:28px;margin:-4px 0 10px}.inline-loading{display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;border:1px solid rgba(118,185,0,.35);border-radius:999px;background:#76b90014;color:#d8f5a2;font-size:13px}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.detail-list{grid-template-columns:1fr}.image-card{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--panel);transition:border-color .2s,box-shadow .2s,transform .2s}.image-card:hover{border-color:#76b9008c;box-shadow:0 18px 50px #00000052;transform:translateY(-2px)}.image-card-detail{display:grid;grid-template-columns:260px 1fr}.thumb-wrap{aspect-ratio:4 / 3;overflow:hidden;background:#0a0a0a}.image-card-detail .thumb-wrap{aspect-ratio:auto;min-height:180px}.thumb-wrap img,.detail-image-wrap img,.preview-image,.batch-item img{width:100%;height:100%;object-fit:cover;display:block}.card-body{display:grid;gap:7px;padding:14px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;min-height:24px}.tag{padding:4px 8px;border-radius:999px;background:#76b90029;color:#cfff77;font-size:12px}.empty-state{padding:36px;border:1px dashed var(--border);border-radius:12px;background:#181818b8;color:var(--text-muted);text-align:center}.empty-state.compact{padding:22px}.context-menu{position:fixed;z-index:50;display:grid;width:190px;padding:8px;border:1px solid var(--border);border-radius:10px;background:#1f1f1f;box-shadow:0 14px 36px #0006}.context-menu button{padding:9px 10px;border:0;border-radius:7px;background:transparent;color:#fff;text-align:left;cursor:pointer}.context-menu button:hover{background:#2b2b2b}.danger-text{color:var(--danger)!important}.preview-image{max-height:380px;border-radius:12px;border:1px solid var(--border);object-fit:contain;background:#0a0a0a}.upload-dropzone{padding:18px;border:1px dashed rgba(118,185,0,.5);border-radius:12px;background:#76b90014;transition:border-color .2s,background .2s}.upload-dropzone:hover{border-color:var(--green);background:#76b9001f}.batch-list{display:grid;gap:12px;margin-top:18px}.progress-wrap{display:grid;gap:8px}.progress-bar{height:10px;overflow:hidden;border:1px solid var(--border);border-radius:999px;background:#0d0d0d}.progress-bar span{display:block;height:100%;background:var(--green);transition:width .2s ease}.batch-item{display:grid;grid-template-columns:auto 90px 1fr auto;align-items:center;gap:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.batch-item img{width:90px;height:70px;border-radius:8px}.detail-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(360px,.8fr);gap:22px}.detail-image-wrap{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#0a0a0a}.detail-image-wrap img{max-height:76vh;object-fit:contain}.detail-panel{padding:20px}dl{display:grid;grid-template-columns:140px 1fr;gap:10px 14px}dt{color:var(--text-muted)}dd{margin:0;overflow-wrap:anywhere}.grouped-gallery,.image-group,.folder-sync-list,.preset-list,.preset-form,.sync-panel,.folder-panel{display:grid;gap:14px}.group-header,.sync-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.image-group{padding-top:8px}.folder-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.5fr);gap:18px;align-items:start}.preset-card,.folder-sync-item{border:1px solid var(--border);border-radius:12px;background:var(--panel-soft);transition:border-color .2s,background .2s}.preset-card{display:grid;gap:12px;padding:14px}.preset-card.active{border-color:var(--green);background:#76b90014}.preset-actions{display:flex;flex-wrap:wrap;gap:8px}.sync-options{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) minmax(220px,auto);gap:12px;align-items:end}.checkbox-line{display:flex;align-items:center;min-height:40px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#101010}.folder-sync-item{display:grid;grid-template-columns:auto 96px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px}.folder-sync-item img{width:96px;height:72px;object-fit:cover;border-radius:8px;background:#0a0a0a}.status-pill{padding:5px 9px;border:1px solid var(--border);border-radius:999px;color:#fff;font-size:12px}.status-pill.new,.status-pill.uploaded{border-color:#76b9008c;color:#cfff77}.status-pill.changed{border-color:#ffc457a6;color:#ffe0a3}.status-pill.unchanged{color:var(--text-muted)}.status-pill.failed{border-color:#ff5b5b8c;color:#ffd1d1}.hidden-input{display:none}@media (max-width: 900px){.navbar,.page-header,.detail-layout{display:grid}.navbar{gap:14px}.nav-links{order:3;width:100%}.toolbar-main,.toolbar-filters,.folder-layout,.sync-options,.image-card-detail{grid-template-columns:1fr}.batch-controls{display:grid}.detail-layout{grid-template-columns:1fr}.group-header,.sync-header{display:grid}}@media (max-width: 600px){.content-page{padding:18px}.navbar{padding:14px 18px}.nav-links{gap:8px}.nav-links a{min-height:34px;padding:7px 11px;font-size:13px}.nav-user{width:100%;justify-content:space-between}.toolbar-main{grid-template-columns:1fr}.header-actions,.selection-row,.preset-actions{width:100%}.header-actions .button,.selection-row .button,.preset-actions .button{flex:1 1 auto}h1{font-size:26px}.image-grid{grid-template-columns:1fr}.batch-item{grid-template-columns:auto 70px 1fr}.folder-sync-item{grid-template-columns:auto 72px 1fr}.folder-sync-item img{width:72px;height:58px}.batch-item .button,.folder-sync-item .status-pill{grid-column:1 / -1}dl{grid-template-columns:1fr}}
