:root,[data-theme=default]{--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-light:#e0e7ff;--color-bg:#fff;--color-bg-secondary:#f8f9fa;--color-bg-tertiary:#f1f3f5;--color-surface:#fff;--color-border:#e2e8f0;--color-border-hover:#cbd5e1;--color-text:#1a202c;--color-text-secondary:#64748b;--color-text-muted:#94a3b8;--color-text-inverse:#fff;--color-text-solid:#fff;--color-success:#22c55e;--color-warning:#f59e0b;--color-error:#ef4444;--color-danger:#ef4444;--color-info:#3b82f6;--color-success-bg:#dcfce7;--color-success-border:#86efac;--color-warning-bg:#fef3c7;--color-warning-border:#fcd34d;--color-warning-accent:#f59e0b;--color-error-bg:#fee2e2;--color-error-border:#fca5a5;--color-sidebar-bg:#1a1a2e;--color-sidebar-text:#e2e8f0;--color-sidebar-active:#4f46e5;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-sm:0 1px 2px rgb(0 0 0/5%);--shadow-md:0 4px 12px rgba(0,0,0,.1);--shadow-lg:0 8px 24px rgba(0,0,0,.12);--font-family:"Inter",system-ui,-apple-system,sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--transition-fast:.15s ease;--transition-normal:.25s ease}[data-theme=dark]{--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-primary-light:#312e81;--color-bg:#0f172a;--color-bg-secondary:#1e293b;--color-bg-tertiary:#334155;--color-surface:#1e293b;--color-border:#334155;--color-border-hover:#475569;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-text-inverse:#0f172a;--color-text-solid:#fff;--color-success-bg:#052e16;--color-success-border:#166534;--color-warning-bg:#451a03;--color-warning-border:#92400e;--color-warning-accent:#fbbf24;--color-error-bg:#450a0a;--color-error-border:#991b1b;--color-sidebar-bg:#0f172a;--color-sidebar-text:#e2e8f0;--shadow-sm:0 1px 2px rgba(0,0,0,.2);--shadow-md:0 4px 12px rgba(0,0,0,.3);--shadow-lg:0 8px 24px rgba(0,0,0,.4)}[data-theme=ocean]{--color-primary:#0ea5e9;--color-primary-hover:#0284c7;--color-primary-light:#e0f2fe;--color-bg:#f0f9ff;--color-bg-secondary:#e0f2fe;--color-surface:#fff;--color-border:#bae6fd;--color-text-solid:#fff;--color-success-bg:#dcfce7;--color-success-border:#86efac;--color-warning-bg:#fef3c7;--color-warning-border:#fcd34d;--color-warning-accent:#f59e0b;--color-error-bg:#fee2e2;--color-error-border:#fca5a5;--color-sidebar-bg:#0c4a6e;--color-sidebar-active:#0ea5e9}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-md);line-height:1.6;transition:background var(--transition-normal),color var(--transition-normal)}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}.container{margin:0 auto;max-width:1200px;padding:0 var(--spacing-md)}.btn-danger,.btn-primary,.btn-secondary,.btn-success,.btn-warning{align-items:center;border-radius:var(--radius-sm);box-sizing:border-box;cursor:pointer;display:inline-flex;font-family:inherit;font-weight:500;gap:var(--spacing-sm);justify-content:center;line-height:1.5;outline:none;text-align:center;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.btn-danger:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-success:disabled,.btn-warning:disabled{cursor:not-allowed;opacity:.5;pointer-events:auto}.btn-primary{background:var(--color-primary);border:1px solid var(--color-primary);color:var(--color-text-solid);font-size:var(--font-size-md);padding:var(--spacing-sm) var(--spacing-lg)}.btn-primary:not(:disabled):hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-text-solid)}.btn-secondary{background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md)}.btn-secondary:not(:disabled):hover{background:var(--color-border-hover);color:var(--color-text)}.btn-danger{background:transparent;border:1px solid var(--color-error);color:var(--color-error);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md)}.btn-danger:not(:disabled):hover{background:var(--color-error);color:var(--color-text-solid)}.btn-warning{background:transparent;border:1px solid var(--color-warning);color:var(--color-warning);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md)}.btn-warning:not(:disabled):hover{background:var(--color-warning);color:var(--color-text-solid)}.btn-success{background:var(--color-success);border:1px solid var(--color-success);color:var(--color-text-solid);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md)}.btn-success:not(:disabled):hover{background:#15803d;color:var(--color-text-solid)}.btn-sm{font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md)}.btn-xs{font-size:var(--font-size-xs);padding:2px var(--spacing-sm)}.btn-lg{font-size:var(--font-size-lg);padding:var(--spacing-md) var(--spacing-xl)}.btn-block{width:100%}.field{margin-bottom:var(--spacing-md)}.field label{color:var(--color-text-secondary);display:block;font-size:var(--font-size-sm);font-weight:500;margin-bottom:var(--spacing-xs)}.field input,.field select,.field textarea{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-sizing:border-box;color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);padding:var(--spacing-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.field input::-moz-placeholder,.field textarea::-moz-placeholder{color:var(--color-text-muted);opacity:1}.field input::placeholder,.field textarea::placeholder{color:var(--color-text-muted);opacity:1}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light);outline:none}.field textarea{min-height:80px;resize:vertical}.field-hint{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:4px}.field-row{display:grid;gap:var(--spacing-md);grid-template-columns:1fr 1fr}.checkbox-group,.radio-group{display:flex;gap:var(--spacing-lg)}.checkbox-label,.radio-label{color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);gap:var(--spacing-xs)}.badge,.checkbox-label,.radio-label{align-items:center;display:inline-flex}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;line-height:1.5;padding:2px 8px;white-space:nowrap}.badge-admin{background:#ede9fe;color:#7c3aed}.badge-user{background:#e0f2fe;color:#0284c7}.badge-active{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.badge-pending{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning-accent)}.badge-disabled{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error)}.limit-badge{align-items:center;background:var(--color-bg-tertiary);border-radius:10px;color:var(--color-text-secondary);display:inline-flex;font-size:.75rem;font-weight:600;margin-left:8px;padding:2px 8px;vertical-align:middle}.limit-badge.at-limit{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-xl)}.card-empty{background:transparent;padding:var(--spacing-2xl);text-align:center}.data-table-wrap{margin-bottom:var(--spacing-md);overflow-x:auto}.data-table{background:var(--color-surface);border:1px solid var(--color-border);border-collapse:collapse;border-radius:var(--radius-md);font-size:var(--font-size-sm);width:100%}.data-table td,.data-table th{border-bottom:1px solid var(--color-border);color:var(--color-text);padding:var(--spacing-sm) var(--spacing-md);text-align:left}.data-table th{background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.data-table tr:last-child td{border-bottom:none}.row-disabled{opacity:.5}.modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.modal{background:var(--color-surface);border-radius:var(--radius-md);max-height:85vh;max-width:520px;overflow-y:auto;padding:var(--spacing-xl);width:100%}.modal,.modal-title{color:var(--color-text)}.modal-title{font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg)}.modal-actions{justify-content:flex-end;margin-top:var(--spacing-lg)}.modal-actions,.page-header{display:flex;gap:var(--spacing-sm)}.page-header{align-items:center;flex-wrap:wrap;justify-content:space-between;margin-bottom:var(--spacing-lg)}.page-title{color:var(--color-text);font-size:var(--font-size-2xl);font-weight:700}.section-divider{border:none;border-top:1px solid var(--color-border);margin:var(--spacing-xl) 0}.section-label{border-bottom:2px solid var(--color-primary);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.5px;margin:var(--spacing-lg) 0 var(--spacing-md);padding-bottom:var(--spacing-xs);text-transform:uppercase}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.text-mono{font-family:Fira Code,monospace;font-size:var(--font-size-xs)}.text-center{text-align:center}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-lg{font-size:var(--font-size-lg)}.font-semibold{font-weight:600}.font-bold{font-weight:700}.hint{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.error-text{color:var(--color-error)}.error-text,.success-text{font-size:var(--font-size-sm);margin-top:var(--spacing-sm);text-align:center}.success-text{color:var(--color-success);font-weight:500}.empty-title{color:var(--color-text);font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.action-btns{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.auth-page{align-items:center;background:var(--color-bg-secondary);display:flex;justify-content:center;min-height:100vh}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-width:400px;padding:var(--spacing-xl);width:100%}.auth-title{color:var(--color-text);font-size:var(--font-size-2xl);margin-bottom:var(--spacing-lg);text-align:center}.auth-link{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--spacing-md);text-align:center}.auth-link a{color:var(--color-primary);font-weight:500;text-decoration:none}.auth-link a:hover{text-decoration:underline}.back-link{color:var(--color-text-secondary);font-size:var(--font-size-sm);text-decoration:none}.back-link:hover{color:var(--color-primary)}.code-block{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-sm);overflow-x:auto;padding:var(--spacing-sm)}.code-block code{color:var(--color-text);font-family:Fira Code,monospace;font-size:var(--font-size-xs);word-break:break-all}.hidden-input{display:none}.toggle-btn{border:none;border-radius:10px;cursor:pointer;font-size:var(--font-size-xs);font-weight:600;padding:3px 10px;transition:all .15s}.toggle-on{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.toggle-off{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error)}.limit-upgrade-hint{color:var(--color-primary);font-size:.8rem;margin-left:4px;text-decoration:none}.limit-upgrade-hint:hover{text-decoration:underline}
