:root{--brand-orange: #e85002;--brand-black: #000000;--brand-white: #f9f9f9;--brand-gray: #646464;--brand-dark-gray: #333333;--brand-blue: #09198d;--gradient-1: #000000;--gradient-2: #c10801;--gradient-3: #f16001;--gradient-4: #d9c3ab;--bg: var(--brand-black);--surface: #0b0b0b;--surface-raised: #141414;--surface-soft: #202020;--border: rgba(249, 249, 249, .12);--border-strong: rgba(232, 80, 2, .8);--text: var(--brand-white);--muted: #c3c3c3;--muted-strong: #e7e7e7;--danger: #ff6a4d;--success: #5fd98b;--focus-ring: rgba(232, 80, 2, .28);color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:var(--bg)}body{background:linear-gradient(180deg,rgba(9,25,141,.2),transparent 360px),var(--bg);margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}h1{color:var(--text);font-size:clamp(2rem,4vw,3.3rem);line-height:1;margin-bottom:0}h2{color:var(--text);font-size:1.05rem;line-height:1.2;margin-bottom:0}input,select{background:var(--surface-soft);border:1px solid var(--border);border-radius:6px;color:var(--text);min-height:42px;padding:10px 12px;width:100%}input::placeholder{color:#949494}input:disabled,select:disabled{color:#9f9f9f;cursor:not-allowed;opacity:.76}select{color-scheme:dark}select option{background:var(--surface);color:var(--text)}input:focus,select:focus,button:focus-visible,a:focus-visible{border-color:var(--border-strong);outline:3px solid var(--focus-ring);outline-offset:1px}.brand-mark{align-items:center;display:inline-flex;gap:14px;min-width:0}.brand-symbol{display:block;flex:0 0 auto;height:44px;object-fit:contain;width:44px}.brand-mark.compact .brand-symbol{height:34px;width:34px}.brand-copy{display:grid;gap:2px;min-width:0}.brand-name{color:var(--brand-white);font-family:Georgia,Times New Roman,serif;font-size:clamp(1.6rem,3vw,2.15rem);line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-name span{font-size:.72em}.brand-mark.compact .brand-name{font-size:1.45rem}.brand-subtitle{color:var(--muted);font-size:.78rem;font-weight:700}.eyebrow{color:var(--brand-orange);font-size:.76rem;font-weight:900;letter-spacing:0;margin:0 0 5px;text-transform:uppercase}.btn,.icon-btn{align-items:center;border:1px solid transparent;border-radius:6px;display:inline-flex;font-weight:850;gap:8px;justify-content:center;line-height:1;min-height:40px;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.btn{padding:0 14px}.icon-btn{height:40px;min-width:40px;padding:0}.btn:hover,.icon-btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--brand-orange);color:#180700}.btn-primary:hover{background:#ff6a10}.btn-secondary{background:var(--surface-soft);border-color:var(--border);color:var(--text)}.btn-secondary:hover{border-color:#e8500273;color:var(--brand-white)}.btn-ghost{background:#f9f9f90f;border-color:#f9f9f914;color:var(--text)}.btn-ghost:hover{background:#f9f9f91a;border-color:#f9f9f929}.btn-danger{background:#ff6a4d1a;border-color:#ff6a4d2e;color:var(--danger)}.btn-danger:hover{background:#ff6a4d2e}.btn:disabled,.icon-btn:disabled{opacity:.55;transform:none}.notice{align-items:flex-start;border:1px solid;border-radius:8px;display:flex;font-weight:750;gap:10px;margin:0;padding:12px 14px}.notice.compact{padding:10px 12px}.notice-error{background:#ff6a4d1f;border-color:#ff6a4d52;color:#ffd6cd}.notice-success{background:#5fd98b1c;border-color:#5fd98b4d;color:#c8ffd9}.auth-shell,.public-shell{align-items:stretch;display:grid;min-height:100vh;padding:28px}.auth-shell{background:linear-gradient(125deg,#0003,#c1080140,#f1600133,#09198d38),var(--brand-black);gap:22px;grid-template-columns:minmax(0,1fr) minmax(320px,420px)}.auth-hero,.auth-panel,.panel,.data-panel,.public-panel{background:#0b0b0be0;border:1px solid var(--border);border-radius:8px;box-shadow:0 24px 70px #0000006b}.auth-hero{align-content:space-between;display:grid;min-height:calc(100vh - 56px);overflow:hidden;padding:30px;position:relative}.auth-hero:after{background:linear-gradient(90deg,var(--gradient-1),var(--gradient-2),var(--gradient-3),var(--gradient-4));bottom:0;content:"";height:8px;left:0;position:absolute;right:0}.hero-copy{color:var(--muted);font-size:clamp(1rem,2vw,1.22rem);line-height:1.6;margin:16px 0 0;max-width:620px}.auth-panel{align-self:center;display:grid;gap:18px;padding:28px;width:100%}.panel-heading{display:grid;gap:3px}.field{color:var(--muted-strong);display:grid;font-size:.88rem;font-weight:800;gap:8px}.input-shell{align-items:center;background:var(--surface-soft);border:1px solid var(--border);border-radius:6px;color:var(--muted);display:flex;gap:10px;min-height:44px;padding:0 12px}.input-shell:focus-within{border-color:var(--border-strong);outline:3px solid var(--focus-ring)}.input-shell input{background:transparent;border:0;min-height:0;outline:0;padding:0}.app-shell{margin:0 auto;max-width:1480px;min-height:100vh;padding:24px}.topbar{align-items:center;background:#0b0b0beb;border:1px solid var(--border);border-radius:8px;display:flex;gap:16px;justify-content:space-between;padding:14px 16px}.topbar-actions{align-items:center;display:flex;gap:10px}.admin-chip{background:#f9f9f912;border:1px solid var(--border);border-radius:6px;color:var(--muted-strong);font-weight:800;min-height:36px;padding:8px 11px}.dashboard-hero{align-items:end;background:linear-gradient(100deg,#000000d1,#c1080142,#f160012e),var(--surface);border:1px solid var(--border);border-radius:8px;display:flex;justify-content:space-between;margin:18px 0;min-height:134px;overflow:hidden;padding:22px}.hero-actions{align-items:center;display:flex;gap:10px}.stats-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.stat-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:8px;min-height:86px;padding:15px}.stat-card span{color:var(--muted);font-size:.82rem;font-weight:800}.stat-card strong{color:var(--text);font-size:1.75rem;line-height:1}.message-stack{display:grid;gap:10px;margin-bottom:14px}.message-stack.compact{margin-bottom:0;width:min(100%,520px)}.workspace-grid{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 370px}.main-column{min-width:0}.side-column{display:grid;gap:18px}.toolbar{align-items:center;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(220px,1fr) 150px 112px 170px auto;margin-bottom:12px;padding:10px}.search-box{align-items:center;background:var(--surface-soft);border:1px solid var(--border);border-radius:6px;color:var(--muted);display:flex;gap:8px;min-height:42px;padding:0 12px}.search-box:focus-within{border-color:var(--border-strong);outline:3px solid var(--focus-ring)}.search-box input{background:transparent;border:0;min-height:0;min-width:0;outline:0;padding:0}.toolbar-actions{display:flex;gap:8px}.data-panel{overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;min-width:900px;width:100%}th,td{border-bottom:1px solid rgba(249,249,249,.08);color:var(--text);padding:15px 16px;text-align:left;vertical-align:middle}th{background:#050505;color:var(--muted);font-size:.74rem;font-weight:900;text-transform:uppercase}tbody tr{background:#0b0b0bf0}tbody tr:hover{background:#111}tr:last-child td{border-bottom:0}.person-cell{align-items:center;display:flex;gap:11px;min-width:210px}.person-cell span:last-child{display:grid;gap:3px;min-width:0}.person-cell strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-cell small,.muted{color:var(--muted);font-size:.84rem}.avatar{align-items:center;background:linear-gradient(135deg,var(--brand-orange),var(--brand-blue));border-radius:8px;color:var(--brand-white);display:inline-flex;flex:0 0 auto;font-size:.78rem;font-weight:900;height:34px;justify-content:center;width:34px}.status-pill,.vip-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:900;gap:6px;padding:6px 9px;white-space:nowrap}.status-pill.fully_paid{background:var(--brand-orange);color:#180700}.status-pill.not_fully_paid{background:#f9f9f917;color:#f2d0bd}.vip-badge{background:#09198dc7;color:var(--brand-white)}.action-cluster{align-items:center;display:flex;gap:7px}.action-cluster.end{justify-content:flex-end}.empty-state{color:var(--muted);padding:42px 16px;text-align:center}.empty-state strong,.empty-state span{display:block}.empty-state strong{color:var(--text);margin-bottom:5px}.table-footer{align-items:center;background:#050505;border-top:1px solid rgba(249,249,249,.08);color:var(--muted);display:flex;font-size:.84rem;font-weight:800;justify-content:space-between;padding:12px 16px}.panel{display:grid;gap:14px;padding:16px}.panel-title{align-items:center;display:flex;gap:10px}.panel-icon{align-items:center;background:#e8500224;border:1px solid rgba(232,80,2,.28);border-radius:8px;color:var(--brand-orange);display:inline-flex;height:38px;justify-content:center;width:38px}.panel-icon.blue{background:#09198d42;border-color:#09198d8a;color:#b8c0ff}.switch-field{align-items:center;color:var(--muted-strong);display:flex;font-size:.9rem;font-weight:850;gap:10px}.switch-field input{height:1px;opacity:0;position:absolute;width:1px}.switch-track{background:var(--brand-dark-gray);border:1px solid var(--border);border-radius:999px;display:inline-flex;height:24px;padding:2px;transition:background .16s ease;width:44px}.switch-track span{background:var(--brand-white);border-radius:999px;display:block;height:18px;transition:transform .16s ease;width:18px}.switch-field input:checked+.switch-track{background:var(--brand-orange)}.switch-field input:checked+.switch-track span{transform:translate(20px)}.switch-field input:disabled+.switch-track,.switch-field input:disabled~span:last-child{cursor:not-allowed;opacity:.62}.switch-field input:focus-visible+.switch-track{outline:3px solid var(--focus-ring)}.creation-status{align-items:center;background:linear-gradient(90deg,#e8500229,#09198d2e);border:1px solid rgba(232,80,2,.32);border-radius:8px;color:var(--muted-strong);display:flex;gap:11px;min-height:56px;padding:11px 12px}.creation-status svg{color:var(--brand-orange);flex:0 0 auto}.creation-status span{display:grid;gap:3px;min-width:0}.creation-status strong{color:var(--text);font-size:.9rem;line-height:1.2}.creation-status small{color:var(--muted);font-size:.78rem;font-weight:750}.button-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.inline-form{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 40px}.course-list{display:grid;gap:8px}.course-row{align-items:center;background:var(--surface-soft);border:1px solid var(--border);border-radius:8px;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;min-height:48px;padding:7px 8px}.course-row span{color:var(--text);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-note{color:var(--muted);font-weight:800;margin:0}.public-shell{align-items:center;background:linear-gradient(135deg,#000000b3,#09198d3d),var(--brand-black);justify-content:center}.public-panel{display:grid;justify-items:center;overflow:hidden;padding:28px;position:relative;width:min(100%,760px)}.public-panel:after{background:linear-gradient(90deg,var(--gradient-1),var(--gradient-2),var(--gradient-3),var(--gradient-4));bottom:0;content:"";height:8px;left:0;position:absolute;right:0}.certificate-panel{gap:34px;min-height:420px;text-align:center}.certificate-content{display:grid;gap:12px;justify-items:center}.certificate-content p{color:var(--muted);font-size:1.05rem;margin-bottom:0}.certificate-content h2{color:var(--brand-orange);font-size:clamp(1.8rem,4vw,2.7rem)}.qr-panel{gap:18px}.qr-frame{background:var(--brand-white);border:2px solid var(--brand-orange);border-radius:8px;padding:10px}.qr-frame img{display:block;height:320px;width:320px}.public-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.loading{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;color:var(--muted-strong);font-weight:900;padding:14px 18px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation:none}.btn,.icon-btn,.switch-track,.switch-track span{transition:none}}@media(max-width:1180px){.workspace-grid{grid-template-columns:1fr}.side-column{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-hero{min-height:360px}.toolbar{grid-template-columns:minmax(0,1fr) minmax(130px,.5fr)}.toolbar-actions{justify-content:flex-end}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-shell,.auth-shell,.public-shell{padding:14px}.topbar,.dashboard-hero{align-items:flex-start;flex-direction:column}.topbar-actions{justify-content:space-between;width:100%}.side-column,.toolbar{grid-template-columns:1fr}.stats-grid{gap:10px}.data-panel{background:transparent;border:0;box-shadow:none}.table-scroll{overflow:visible}table,thead,tbody,tr,td{display:block;min-width:0;width:100%}thead{display:none}tbody{display:grid;gap:10px}tbody tr{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;overflow:hidden}tbody tr:hover{background:var(--surface-raised)}td{align-items:center;border-bottom:1px solid rgba(249,249,249,.08);display:grid;gap:12px;grid-template-columns:96px minmax(0,1fr);min-height:48px;padding:12px}td:before{color:var(--muted);content:attr(data-label);font-size:.72rem;font-weight:900;text-transform:uppercase}td.empty-state{display:block;padding:34px 12px}td.empty-state:before{content:none}.person-cell{min-width:0}.action-cluster.end{justify-content:flex-start}.status-pill,.vip-badge{justify-self:start}.table-footer{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;margin-top:10px}.qr-frame img{height:min(320px,calc(100vw - 84px));width:min(320px,calc(100vw - 84px))}}@media(max-width:520px){h1{font-size:2rem}.brand-name{font-size:1.45rem}.brand-symbol{height:36px;width:36px}.stats-grid{grid-template-columns:1fr}.auth-hero,.auth-panel,.public-panel,.panel{padding:16px}.topbar-actions,.button-row,.public-actions{align-items:stretch;flex-direction:column}.btn{width:100%}td{grid-template-columns:82px minmax(0,1fr)}}
