:root{--color-navy-950: #0b1b2b;--color-navy-900: #10263c;--color-navy-800: #16344f;--color-navy-700: #1e4364;--color-navy-600: #29567f;--color-blue-500: #2f7dd1;--color-blue-400: #4b98e8;--color-teal-500: #17a398;--color-teal-400: #2cc2b5;--color-amber-500: #f2a93b;--color-amber-600: #db8f1f;--color-red-500: #d64545;--color-bg: #f6f8fb;--color-surface: #ffffff;--color-border: #dde5ee;--color-text: #1c2a38;--color-text-muted: #55677a;--color-text-inverse: #f4f8fb;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--shadow-sm: 0 1px 3px rgba(16, 38, 60, .08);--shadow-md: 0 8px 24px rgba(16, 38, 60, .12);--shadow-lg: 0 20px 45px rgba(16, 38, 60, .22);--max-width: 1180px;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--ok: #1c7f57;--ok-soft: #e6f4ee;--warn: var(--color-amber-600);--warn-soft: #fdf3e2;--danger: var(--color-red-500);--danger-soft: #fbeaea}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{line-height:1.25;margin:0 0 .5rem;color:var(--color-navy-900)}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1rem}a{color:var(--color-blue-500)}.mono{font-family:var(--font-mono);font-size:.85em}.muted{color:var(--color-text-muted)}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.app-bar{background:var(--color-navy-900);color:var(--color-text-inverse);padding:.75rem 1.25rem;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.app-bar .brand{font-weight:700;letter-spacing:.01em;color:var(--color-text-inverse);text-decoration:none}.app-bar .brand span{color:var(--color-amber-500)}.app-nav{display:flex;gap:.25rem;flex-wrap:wrap;flex:1}.app-nav a{color:#f4f8fbc7;text-decoration:none;padding:.35rem .7rem;border-radius:var(--radius-sm);font-size:.92rem}.app-nav a:hover{background:#ffffff14;color:var(--color-text-inverse)}.app-nav a.active{background:var(--color-navy-700);color:var(--color-text-inverse)}.app-bar .who{font-size:.85rem;color:#f4f8fbb3}.app-main{width:100%;max-width:var(--max-width);margin:0 auto;padding:1.75rem 1.25rem 4rem}.page-head{margin-bottom:1.25rem}.page-head p{color:var(--color-text-muted);margin:.25rem 0 0;max-width:70ch}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.25rem;margin-bottom:1.25rem}.panel-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.empty,.loading{background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:2rem 1.25rem;text-align:center;color:var(--color-text-muted)}.empty strong{display:block;color:var(--color-text);margin-bottom:.25rem}.alert,.notice{border-radius:var(--radius-sm);padding:.7rem .9rem;margin-bottom:1rem;border:1px solid transparent;font-size:.93rem}.alert{background:var(--danger-soft);border-color:#f0c9c9;color:#8f2727}.notice{background:var(--ok-soft);border-color:#c6e5d7;color:#145c3e}.notice.warn{background:var(--warn-soft);border-color:#f0dcb6;color:#8a5a10}.field{display:block;margin-bottom:.9rem}.field>span{display:block;font-size:.85rem;font-weight:600;color:var(--color-navy-800);margin-bottom:.25rem}.field .hint{font-weight:400;color:var(--color-text-muted);font-size:.82rem;margin:.2rem 0 0}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=time],select,textarea{width:100%;padding:.5rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;font-size:.95rem;color:var(--color-text);background:var(--color-surface)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--color-blue-500);outline-offset:1px}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.82rem;margin:.25rem 0 0}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 1rem}button{font:inherit;font-size:.93rem;padding:.45rem .95rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-navy-800);cursor:pointer}button:hover:not(:disabled){border-color:var(--color-navy-600)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--color-navy-800);border-color:var(--color-navy-800);color:var(--color-text-inverse);font-weight:600}button.primary:hover:not(:disabled){background:var(--color-navy-700);border-color:var(--color-navy-700)}button.danger{color:var(--danger);border-color:#edc7c7}button.link{background:none;border:none;color:var(--color-blue-500);padding:0;text-decoration:underline}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.92rem}table.data th,table.data td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--color-border);vertical-align:top}table.data th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom-width:2px}table.data tbody tr:hover{background:#fafcfe}.chip{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.01em;border:1px solid transparent;white-space:nowrap}.chip.ok{background:var(--ok-soft);color:var(--ok);border-color:#c6e5d7}.chip.warn{background:var(--warn-soft);color:#8a5a10;border-color:#f0dcb6}.chip.danger{background:var(--danger-soft);color:#8f2727;border-color:#f0c9c9}.chip.neutral{background:#eef2f7;color:var(--color-navy-700);border-color:var(--color-border)}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:1.25rem;background:linear-gradient(160deg,var(--color-navy-900),var(--color-navy-700))}.auth-card{width:100%;max-width:380px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:1.75rem}.auth-card h1{font-size:1.3rem;margin-bottom:.25rem}.auth-card .sub{color:var(--color-text-muted);font-size:.9rem;margin:0 0 1.25rem}.auth-card button.primary{width:100%;margin-top:.35rem}.auth-card .fine{font-size:.8rem;color:var(--color-text-muted);margin:1rem 0 0}.credential-box{background:var(--warn-soft);border:1px solid #f0dcb6;border-radius:var(--radius-sm);padding:.9rem;margin-bottom:1rem}.credential-box dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem .75rem;margin:.5rem 0 0}.credential-box dt{font-size:.8rem;color:var(--color-text-muted)}.credential-box dd{margin:0;font-family:var(--font-mono);font-weight:600}.app-foot{text-align:center;font-size:.8rem;color:var(--color-text-muted);padding:1.5rem 1rem 2.5rem}.wizard-steps{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0 0 1.25rem}.wizard-steps li{display:flex;align-items:center;gap:.4rem;font-size:.88rem;color:var(--color-text-muted);padding:.3rem .75rem .3rem .35rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface)}.wizard-steps .num{display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#eef2f7;font-size:.78rem;font-weight:700}.wizard-steps li.current{border-color:var(--color-navy-700);color:var(--color-navy-900);font-weight:600}.wizard-steps li.current .num{background:var(--color-navy-800);color:var(--color-text-inverse)}.wizard-steps li.done .num{background:var(--ok-soft);color:var(--ok)}.wizard-body{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}@media(min-width:900px){.wizard-body:has(.wizard-aside){grid-template-columns:minmax(0,1fr) 260px}}.wizard-aside h3{margin-top:0}.summary-list{display:grid;grid-template-columns:auto 1fr;gap:.2rem .75rem;margin:0 0 1rem;font-size:.88rem}.summary-list dt{color:var(--color-text-muted)}.summary-list dd{margin:0}.slot-row{align-items:end}.picker{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem;max-height:260px;overflow-y:auto;margin-bottom:.75rem}.picker-option{display:flex;align-items:baseline;gap:.5rem;padding:.3rem .35rem;border-radius:var(--radius-sm);font-size:.92rem;cursor:pointer}.picker-option:hover{background:#f3f7fb}.picker-option input{margin:0}.picker-summary{font-size:.85rem;color:var(--color-text-muted);margin:.25rem 0 0}.lesson-list{list-style:none;margin:0;padding:0}.lesson-item{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:.75rem;align-items:start;padding:.75rem 0;border-top:1px solid var(--color-border)}.lesson-item:first-child{border-top:none}.lesson-when{display:flex;flex-direction:column;font-size:.85rem;color:var(--color-text-muted)}.lesson-time{font-weight:700;font-size:1rem;color:var(--color-navy-800)}.lesson-body .chip{margin-left:.35rem}.lesson-action{display:flex;align-items:center;gap:.5rem}@media(max-width:620px){.lesson-item{grid-template-columns:1fr}.lesson-when{flex-direction:row;gap:.5rem;align-items:baseline}}.banner-list{margin:.5rem 0;padding-left:1.1rem}.banner-list li{margin-bottom:.2rem}.radio-row{display:flex;gap:.75rem;flex-wrap:wrap}.radio-option{display:flex;align-items:center;gap:.3rem;font-size:.92rem;cursor:pointer}.radio-option input{margin:0}.count{font-weight:600;font-size:.8rem}.count.short{color:var(--color-text-muted)}.count.ok{color:var(--ok)}
