:root{--font-display: "Fredoka", sans-serif;--font-sans: "Nunito", sans-serif;--bg: #f5f7fc;--surface: #fff;--border: #e0e5f0;--text: #05257c;--text-muted: #5a6a8a;--accent: #05257c;--accent-gold: #6887ea;--accent-hover: #0d3a9e;--danger: #d62828;--danger-hover: #e63946;--focus-ring: #05257c;--radius: 2px}html.dark{--bg: #0a0e1a;--surface: #121829;--border: #2a3250;--text: #f0f3ff;--text-muted: #8b9dc6;--accent: #6887ea;--accent-gold: #8ba0f0;--accent-hover: #8ba0f0;--danger: #ff6b6b;--danger-hover: #ff8787;--focus-ring: #6887ea}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,input,textarea,select{font:inherit}#root{min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell__header{display:flex;align-items:center;gap:2rem;padding:1.25rem 2rem;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:100}.app-shell__logo{display:block;text-decoration:none}.app-shell__logo-img{display:block;height:2rem;width:auto;object-fit:contain}.app-shell__logo:hover .app-shell__logo-img{opacity:.85}.app-shell__nav{display:flex;align-items:center;gap:.5rem;flex:1}.app-shell__nav a{font-size:.8125rem;font-weight:600;color:var(--text-muted);padding:.5rem 1rem;letter-spacing:.12em;text-transform:uppercase;transition:color .2s}.app-shell__nav a:hover,.app-shell__nav a[aria-current=page]{color:var(--accent)}.app-shell__user{display:flex;align-items:center;gap:.75rem;margin-left:auto}.app-shell__user span{font-size:.8125rem;color:var(--text-muted)}.app-shell__main{flex:1;padding:2rem;max-width:72rem;margin:0 auto;width:100%}.theme-switch{display:inline-flex;align-items:center;cursor:pointer;position:relative;width:2.5rem;height:1.25rem}.theme-switch input{position:absolute;opacity:0;width:0;height:0}.theme-slider{width:100%;height:100%;background:var(--border);transition:background .2s}.theme-slider:before{content:"";position:absolute;width:1rem;height:1rem;left:2px;top:2px;background:var(--surface);border:1px solid var(--accent);transition:transform .2s}.theme-switch input:checked+.theme-slider{background:var(--accent)}.theme-switch input:checked+.theme-slider:before{transform:translate(1.25rem);border-color:var(--accent-gold)}.btn{font-family:var(--font-sans);font-size:.8125rem;font-weight:700;padding:.5rem 1rem;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius);transition:border-color .2s,color .2s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-danger{color:var(--danger)}.btn-danger:hover{color:var(--danger-hover)}.btn-icon{background:none;border:none;padding:.25rem .5rem;font-size:.75rem;cursor:pointer;color:var(--text-muted);font-family:var(--font-sans)}.btn-icon:hover{color:var(--accent)}.btn-subtle{border-color:var(--border);color:var(--text)}.btn-subtle:hover{border-color:var(--accent);color:var(--accent)}.page{max-width:72rem;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;margin:0;color:var(--text)}.page-headline{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:1.5rem}.page-headline h1{margin:0;font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--text)}.page-headline p{margin:0;color:var(--text-muted);font-size:.875rem}.page-surface{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);padding:1.5rem}.toolbar{display:flex;align-items:end;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}.toolbar--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.row-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:.35rem}.field span{color:var(--text-muted);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}.field input,.field textarea,.field select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:.5rem;font-family:var(--font-sans);font-size:.875rem}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--accent)}.field--row{flex-direction:row;align-items:center}.entity-form{display:flex;flex-direction:column;gap:.72rem;max-width:480px}.entity-form label{display:block;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.25rem}.entity-form input,.entity-form textarea{width:100%;font-family:var(--font-sans);font-size:.875rem;padding:.5rem;margin-bottom:.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.entity-form input:focus,.entity-form textarea:focus{outline:none;border-color:var(--accent)}.panel{margin-bottom:1rem;border:1px solid var(--border);border-radius:var(--radius);padding:1rem;background:var(--bg)}.table-wrap{overflow-x:auto;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.data-table th{font-family:var(--font-display);font-weight:600;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#05257c0a}html.dark .data-table tbody tr:hover{background:#6887ea14}.data-table .actions{white-space:nowrap}.clickable-row{cursor:pointer}.clickable-row:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.license-key-cell{display:inline-flex;align-items:center;gap:.375rem}.copy-icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:.25rem;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius);transition:color .15s}.copy-icon-btn:hover{color:var(--accent)}.copy-icon-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.key-chip{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:var(--bg);border:1px solid var(--border);border-radius:999px;color:var(--text);padding:.12rem .5rem;font-size:.8125rem}.loading-state{padding:2rem;text-align:center;font-family:var(--font-sans);color:var(--text-muted)}.auth-card{width:min(480px,calc(100% - 2rem));margin:4rem auto;padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px #0000001f;text-align:center}.auth-card h1{font-family:var(--font-display);font-size:1.5rem;font-weight:600;margin:0 0 .5rem;color:var(--text)}.auth-card p{margin:0 0 1rem;color:var(--text-muted);font-size:.875rem}.error-banner{color:var(--danger);background:#d628281a;border:1px solid var(--danger);border-radius:var(--radius);padding:.625rem .75rem;margin-bottom:1rem;font-size:.875rem}html.dark .error-banner{background:#ff6b6b26}.helper-note{margin:0 0 1rem;color:var(--text-muted);font-size:.875rem}
