:root{--primary: #4f46e5;--sidebar-bg: #111827;--bg: #f3f4f6;--surface: #fff;--text: #111827;--muted: #6b7280;--border: #e5e7eb;--danger: #dc2626;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0}a{color:var(--primary)}h1,h2,p{margin:0}.muted{color:var(--muted);font-size:.875rem}.layout{display:flex;min-height:100vh;background:var(--bg)}.sidebar{width:250px;background:var(--sidebar-bg);color:#e5e7eb;display:flex;flex-direction:column;flex-shrink:0}.sidebar__brand{display:flex;align-items:center;gap:12px;padding:20px}.sidebar__brand small{display:block;color:#9ca3af}.sidebar__logo{width:38px;height:38px;border-radius:10px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:700}.sidebar__nav{display:flex;flex-direction:column;gap:2px;padding:8px 12px;flex:1}.sidebar__nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:inherit;text-decoration:none}.sidebar__nav a:hover{background:#ffffff14}.sidebar__nav a.active{background:var(--primary);color:#fff}.sidebar__icon{width:20px;text-align:center}.sidebar__footer{padding:16px 20px;font-size:.8rem;color:#9ca3af}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:16px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar__title{flex:1}.topbar__title h1{font-size:1.25rem}.topbar__burger{display:none}.topbar__user{display:flex;align-items:center;gap:10px}.topbar__user small{display:block;color:var(--muted)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:600}.content-area{padding:24px;display:flex;flex-direction:column;gap:20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card--narrow{max-width:720px}.card__title{font-size:1.05rem;margin-bottom:12px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.stat{display:flex;flex-direction:column;gap:4px;color:inherit;text-decoration:none}a.stat:hover{border-color:var(--primary)}.stat__label{color:var(--muted);font-size:.875rem}.stat__value{font-size:1.6rem}.stat__hint{color:var(--muted);font-size:.8rem}.link-list{margin:0;padding-left:20px;display:grid;gap:8px}.content{display:flex;flex-direction:column;gap:14px}.content ul{margin:0;padding-left:20px}.toolbar{display:flex;gap:12px;margin-bottom:16px}.toolbar__search{flex:1}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);-webkit-user-select:none;user-select:none}.table th.sortable{cursor:pointer}.actions-col{text-align:right!important;width:1%}.actions-col .btn+.btn{margin-left:6px}.empty{text-align:center!important;color:var(--muted);padding:32px!important}.badge{background:#eef2ff;color:var(--primary);padding:2px 10px;border-radius:999px;font-size:.8rem}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:14px;color:var(--muted);font-size:.875rem}.pagination__page{margin:0 10px}input,select,textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}input[type=checkbox]{width:auto}.btn{padding:9px 16px;border-radius:8px;border:1px solid transparent;font:inherit;cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--primary);color:#fff}.btn--ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn--danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn--small{padding:4px 10px;font-size:.8rem}.icon-btn{background:none;border:0;font-size:1.2rem;cursor:pointer;color:inherit}.form{display:grid;gap:16px}.form__row{display:grid;gap:6px}.form__row--inline{grid-template-columns:auto 1fr;align-items:center}.form__row--inline label{order:2}.form__row--inline .form__error{grid-column:1 / -1;order:3}.form__row label{font-size:.875rem;font-weight:500}.required,.form__error{color:var(--danger)}.form__error{font-size:.8rem}.form__actions{display:flex;justify-content:flex-end;gap:10px}.alert{padding:12px 14px;border-radius:8px;border:1px solid;margin-bottom:4px}.alert--info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.alert--success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.alert--warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.alert--danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182780;display:grid;place-items:center;padding:16px;z-index:50}.modal__dialog{background:var(--surface);border-radius:var(--radius);padding:20px;width:100%;max-width:520px;max-height:90vh;overflow:auto}.modal__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal__header h2{font-size:1.1rem}.codegen{display:grid;gap:20px;grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:start}.code{margin:0;max-height:560px;overflow:auto;background:#0b1020;color:#d1d5db;padding:16px;border-radius:8px;font-size:.8rem;line-height:1.5}@media (max-width: 1100px){.codegen{grid-template-columns:1fr}}.generator-upload{display:grid;gap:14px;margin-top:20px}.upload-field{display:grid;gap:8px;font-size:.875rem}.upload-field input{padding:8px}.html-preview{display:block;width:100%;height:360px;margin-top:14px;border:1px solid var(--border);border-radius:8px;background:#fff}.import-summary{display:grid;gap:7px;margin:16px 0;font-size:.9rem}.invalid-list{margin-top:16px;color:var(--danger)}.invalid-list ul{max-height:200px;overflow:auto;padding-left:20px}.consent-check{display:flex;align-items:flex-start;gap:8px;font-size:.875rem}.consent-check input{width:auto;margin-top:3px}.login{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:16px}.login__card{width:100%;max-width:380px}.backdrop{display:none}@media (max-width: 820px){.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;transform:translate(-100%);transition:transform .2s}.layout--menu-open .sidebar{transform:none}.layout--menu-open .backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:30}.topbar__burger{display:block}.topbar__user div{display:none}.content-area{padding:16px}}
