:root{--bg-primary:#fff;--bg-secondary:#f7f7f5;--bg-tertiary:#efede8;--text-primary:#1a1a1a;--text-secondary:#6b6b6b;--text-tertiary:#9a9a9a;--border:#e2e0db;--border-light:#eceae5;--accent:#1a7a5a;--accent-hover:#145e46;--accent-light:#e6f4ee;--accent-text:#0d5c3f;--success-bg:#e6f4ee;--success-text:#1a7a5a;--warning-bg:#fdf3e0;--warning-text:#a66b0a;--danger-bg:#fce8e8;--danger-text:#a33030;--info-bg:#e8f1fc;--info-text:#1a5fb4;--radius:8px;--radius-lg:12px;--sidebar-width:210px;--topbar-height:52px}html.dark{--bg-primary:#1e1e1e;--bg-secondary:#272727;--bg-tertiary:#181818;--text-primary:#e8e8e8;--text-secondary:#a0a0a0;--text-tertiary:#6a6a6a;--border:#3a3a3a;--border-light:#333;--accent:#2db87a;--accent-hover:#25a06a;--accent-light:#1a3a2a;--accent-text:#5cd6a0;--success-bg:#1a3a2a;--success-text:#5cd6a0;--warning-bg:#3a2e1a;--warning-text:#e8b84a;--danger-bg:#3a1a1a;--danger-text:#ef7a7a;--info-bg:#1a2a3a;--info-text:#6aafef}*,:after,:before{box-sizing:border-box;margin:0;padding:0}#__nuxt,body,html{height:100%;font-family:DM Sans,system-ui,-apple-system,sans-serif;font-size:14px;background:var(--bg-tertiary);color:var(--text-primary);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 0}.sidebar .sidebar-logo{display:flex;align-items:center;gap:8px;padding:0 18px 16px;border-bottom:1px solid var(--border);margin-bottom:8px;font-weight:600;font-size:15px;color:var(--text-primary)}.sidebar .sidebar-logo svg{color:var(--accent);width:22px;height:22px;flex-shrink:0}.sidebar nav{flex:1;overflow-y:auto}.sidebar .nav-section{font-size:11px;color:var(--text-tertiary);padding:14px 18px 4px;text-transform:uppercase;letter-spacing:.6px;font-weight:500}.sidebar .nav-item{display:flex;align-items:center;gap:10px;padding:9px 18px;font-size:13px;color:var(--text-secondary);cursor:pointer;border-left:3px solid transparent;transition:all .15s;text-decoration:none}.sidebar .nav-item svg{width:17px;height:17px;flex-shrink:0}.sidebar .nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar .nav-item.active,.sidebar .nav-item.router-link-active{background:var(--bg-tertiary);color:var(--accent);border-left-color:var(--accent);font-weight:500}.sidebar .sidebar-footer{padding:14px 18px 0;border-top:1px solid var(--border);margin-top:auto;font-size:11px;color:var(--text-tertiary)}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:var(--topbar-height);border-bottom:1px solid var(--border);background:var(--bg-primary);flex-shrink:0}.topbar h2{font-size:16px;font-weight:500;color:var(--text-primary)}.topbar .topbar-right{display:flex;align-items:center;gap:12px}.topbar .lang-badge{font-size:11px;padding:3px 10px;border-radius:var(--radius);background:var(--info-bg);color:var(--info-text);font-weight:500}.topbar .user-menu{position:relative}.topbar .user-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;cursor:pointer;border:none;padding:0;font-family:inherit;transition:background .15s}.topbar .user-avatar:hover{background:var(--accent-hover)}.topbar .user-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:20;min-width:200px;padding:4px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #0000001f}.topbar .user-dropdown-head{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-bottom:1px solid var(--border-light);margin-bottom:4px}.topbar .user-dropdown-head strong{font-size:12px;font-weight:600;color:var(--text-primary)}.topbar .user-dropdown-head span{font-size:11px;color:var(--text-tertiary);overflow-wrap:anywhere}.topbar .user-dropdown-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--radius);font-size:12px;color:var(--text-secondary);text-decoration:none;transition:all .15s}.topbar .user-dropdown-item svg{width:15px;height:15px}.topbar .user-dropdown-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.topbar .theme-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:5px 10px;font-size:12px;color:var(--text-secondary);cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:5px;transition:all .15s}.topbar .theme-btn svg{width:14px;height:14px}.topbar .theme-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.page-content{flex:1;overflow-y:auto;padding:24px}.login-wrap,.page-content{background:var(--bg-tertiary)}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:36px;width:340px;text-align:center}.login-card .login-icon{color:var(--accent);font-size:32px;margin-bottom:14px;display:flex;justify-content:center}.login-card .login-icon svg{width:40px;height:40px}.login-card h2{font-size:20px;font-weight:600;margin-bottom:4px;color:var(--text-primary)}.login-card .subtitle{font-size:13px;color:var(--text-secondary);margin-bottom:24px}.login-card .form-group{margin-bottom:16px;text-align:left}.login-card .login-link{display:inline-block;margin-top:16px;font-size:12px;color:var(--text-secondary);text-decoration:none}.login-card .login-link:hover{color:var(--accent);text-decoration:underline}.login-card .login-hint{font-size:13px;color:var(--text-secondary);margin-bottom:20px;text-align:left;line-height:1.5}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:12px;color:var(--text-secondary);font-weight:500}.form-input,.form-select{height:36px;border:1px solid var(--border);border-radius:var(--radius);padding:0 12px;font-size:13px;color:var(--text-primary);background:var(--bg-primary);font-family:inherit;width:100%;outline:none;transition:border-color .15s}.form-input:focus,.form-select:focus{border-color:var(--accent)}.form-input::-moz-placeholder,.form-select::-moz-placeholder{color:var(--text-tertiary)}.form-input::placeholder,.form-select::placeholder{color:var(--text-tertiary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13px;cursor:pointer;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-family:inherit;font-weight:500;transition:all .15s;text-decoration:none}.btn svg{width:15px;height:15px;flex-shrink:0}.btn:hover:not(:disabled){background:var(--bg-secondary)}.btn.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.btn-danger{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-text)}.btn.btn-danger:hover:not(:disabled){opacity:.85}.btn:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-secondary);color:var(--text-tertiary);border-color:var(--border)}.btn.full{width:100%;justify-content:center}.btn-group{display:flex;align-items:center;gap:8px}.toolbar{gap:10px;flex-wrap:wrap}.page-header,.toolbar{display:flex;align-items:center;margin-bottom:16px}.page-header{justify-content:space-between}.page-header .back-link{font-size:13px;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;gap:4px}.page-header .back-link:hover{color:var(--text-primary)}.card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 22px;margin-bottom:16px}.card.card-flush{padding:0;overflow:hidden}.section-title{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:14px;display:flex;align-items:center;gap:8px}.section-title svg{color:var(--accent);width:18px;height:18px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.stat-card{background:var(--bg-secondary);border-radius:var(--radius);padding:16px 18px}.stat-card .stat-label{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.stat-card .stat-val{font-size:24px;font-weight:600;color:var(--text-primary)}.stat-card .stat-sub{font-size:11px;color:var(--text-tertiary);margin-top:3px}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-weight:500;color:var(--text-secondary);font-size:12px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.tbl td,.tbl th{padding:9px 12px}.tbl td{border-bottom:1px solid var(--border-light);color:var(--text-primary)}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:var(--bg-secondary)}.tbl .mono{font-family:DM Mono,monospace;font-size:12px;color:var(--text-secondary)}.pill{display:inline-block;font-size:11px;padding:2px 10px;border-radius:var(--radius);font-weight:500}.pill-green{background:var(--success-bg);color:var(--success-text)}.pill-amber{background:var(--warning-bg);color:var(--warning-text)}.pill-red{background:var(--danger-bg);color:var(--danger-text)}.pill-gray{background:var(--bg-secondary);color:var(--text-tertiary)}.toggle{display:inline-flex;width:36px;height:20px;border-radius:10px;position:relative;vertical-align:middle;cursor:pointer;transition:background .15s;flex-shrink:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;font:inherit}.toggle:after{content:"";position:absolute;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s}.toggle.on{background:var(--accent)}.toggle.on:after{left:19px}.toggle.off{background:var(--border)}.toggle.off:after{left:3px}.toggle.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.search-box{display:flex;align-items:center;gap:8px;padding:0 14px;height:36px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);flex:1;max-width:280px}.search-box svg{color:var(--text-tertiary);width:16px;height:16px;flex-shrink:0}.search-box input{border:none;outline:none;background:transparent;font-size:13px;color:var(--text-primary);font-family:inherit;width:100%}.search-box input::-moz-placeholder{color:var(--text-tertiary)}.search-box input::placeholder{color:var(--text-tertiary)}.pager{display:flex;align-items:center;gap:6px;justify-content:flex-end;margin-top:14px;font-size:12px;color:var(--text-secondary)}.pager span{padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.pager span:hover{background:var(--bg-secondary)}.pager span.active{background:var(--accent);color:#fff;border-color:var(--accent);cursor:default}.toast-container{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius);font-size:13px;min-width:260px;max-width:380px;box-shadow:0 4px 16px #0000001f;animation:toast-in .2s ease;border:1px solid transparent}.toast.success{background:var(--success-bg);color:var(--success-text);border-color:color-mix(in srgb,var(--success-text) 20%,transparent)}.toast.error{background:var(--danger-bg);color:var(--danger-text);border-color:color-mix(in srgb,var(--danger-text) 20%,transparent)}.toast.warning{background:var(--warning-bg);color:var(--warning-text);border-color:color-mix(in srgb,var(--warning-text) 20%,transparent)}.toast.info{background:var(--info-bg);color:var(--info-text);border-color:color-mix(in srgb,var(--info-text) 20%,transparent)}.toast .toast-msg{flex:1}.toast .toast-close{cursor:pointer;opacity:.6;font-size:16px;line-height:1}.toast .toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:18px}.tabs .tab{padding:9px 18px;font-size:13px;color:var(--text-secondary);border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;margin-bottom:-1px}.tabs .tab:hover{color:var(--text-primary)}.tabs .tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.loading-overlay{position:fixed;inset:0;background:#ffffffb3;display:flex;align-items:center;justify-content:center;z-index:8000}html.dark .loading-overlay{background:#00000080}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.error-msg{font-size:12px;color:var(--danger-text);background:var(--danger-bg);padding:8px 12px;border-radius:var(--radius);margin-top:4px}.obj-thumb{width:44px;height:34px;border-radius:4px;overflow:hidden;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.obj-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.obj-thumb svg{width:18px;height:18px;color:var(--text-tertiary)}.tbl .col-title{width:560px;max-width:560px}.obj-id,.obj-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obj-title{font-weight:500;font-size:13px}.obj-id{font-size:11px;color:var(--text-tertiary);font-family:monospace}.obj-value{font-size:13px}.obj-meta{font-size:12px;color:var(--text-secondary);white-space:nowrap}.tbl-empty{text-align:center!important;padding:24px!important;color:var(--text-tertiary)}.tbl-row-clickable{cursor:pointer}.flag-row{display:flex;gap:4px;flex-wrap:wrap}.flag-btn{font-size:11px;padding:2px 8px;border-radius:4px;border:1px solid transparent;cursor:pointer;font-family:inherit;font-weight:500;transition:opacity .1s}.flag-btn.flag-on{background:var(--success-bg);color:var(--success-text);border-color:var(--success-text)}.flag-btn.flag-off{background:var(--bg-secondary);color:var(--text-tertiary);border-color:var(--border)}.flag-btn:hover:not(:disabled){opacity:.75}.flag-btn:disabled{opacity:.4;cursor:not-allowed}.form-lock{border:0;margin:0;padding:0;min-inline-size:0}.form-lock:disabled .toggle,.form-lock:disabled label{pointer-events:none}.obj-form-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:16px}.obj-form-title{font-size:18px;font-weight:600;color:var(--text-primary)}.obj-form-subtitle{font-size:12px;color:var(--text-tertiary);font-family:monospace;margin-top:3px}.form-textarea{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font-size:13px;color:var(--text-primary);background:var(--bg-primary);font-family:inherit;width:100%;outline:none;transition:border-color .15s;resize:vertical;min-height:120px}.form-textarea:focus{border-color:var(--accent)}.form-textarea::-moz-placeholder{color:var(--text-tertiary)}.form-textarea::placeholder{color:var(--text-tertiary)}.form-switch{display:flex;align-items:center;gap:10px;padding:5px 0}.form-switch label{font-size:13px;color:var(--text-primary);cursor:pointer}.form-switches{display:flex;flex-wrap:wrap;gap:0 28px}.field-group{border:1px solid var(--border-light);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px}.field-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.field-group-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.multiselect-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);max-height:160px;overflow-y:auto;padding:4px 6px}.multiselect-wrap label{display:flex;align-items:center;gap:8px;padding:5px 6px;font-size:13px;cursor:pointer;border-radius:4px}.multiselect-wrap label:hover{background:var(--bg-secondary)}.multiselect-wrap label input{cursor:pointer;accent-color:var(--accent)}.save-bar{display:flex;justify-content:flex-end;gap:8px;padding:16px 0 4px;margin-top:8px;border-top:1px solid var(--border)}.img-title-zone{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.img-title-preview{position:relative;display:inline-block;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.img-title-preview img{display:block;max-width:280px;max-height:200px;-o-object-fit:cover;object-fit:cover}.img-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:280px;height:180px;border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,background .15s;font-size:13px;color:var(--text-secondary);text-align:center}.img-dropzone:hover{border-color:var(--accent);background:var(--accent-light)}.img-remove-btn{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:#0000008c;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s}.img-remove-btn:hover{background:var(--danger-text)}.img-gallery{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.img-gallery-item{position:relative;width:120px;height:90px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);flex-shrink:0}.img-gallery-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.img-new-badge{position:absolute;bottom:4px;left:4px;background:var(--accent);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px}.img-add-tile{width:120px;height:90px;border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;color:var(--text-tertiary);transition:border-color .15s,background .15s;flex-shrink:0}.img-add-tile:hover{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text)}
