:root{--bg: #0f1722;--panel: #18222f;--panel-2: #212e3d;--line: #263445;--line-strong: #34455a;--text: #e6edf3;--muted: #9fb2c4;--muted-faint: #7d8a99;--accent: #4f9cff;--accent-hover: #6aabff;--accent-ink: #04203f;--ok: #3fb950;--warn: #e0a93b;--danger: #ff7b72;--neutral: #7d8a99;--cal-bg: #141d28;--cal-text: #e6edf3;--cal-border: #2a3a4d;--cal-muted: #93a4b5;--cal-today: rgba(79, 156, 255, .1);--shadow-card: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .45)}:root[data-theme=light]{--bg: #f4f6f9;--panel: #ffffff;--panel-2: #eef2f7;--line: #dde3ea;--line-strong: #c4ced9;--text: #18222e;--muted: #5a6b7b;--muted-faint: #7a8a99;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-ink: #ffffff;--ok: #15803d;--warn: #b45309;--danger: #dc2626;--neutral: #64748b;--cal-bg: #ffffff;--cal-text: #18222e;--cal-border: #e2e8f0;--cal-muted: #64748b;--cal-today: rgba(37, 99, 235, .07);--shadow-card: 0 1px 3px rgba(16, 24, 40, .08);--shadow-md: 0 10px 30px rgba(16, 24, 40, .14)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.app{height:100vh;display:flex;flex-direction:column}.app__header{display:flex;align-items:center;gap:20px;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--line-strong);box-shadow:var(--shadow-card)}.app__header h1{font-size:18px;margin:0}.nav{display:flex;gap:8px}.nav__btn{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:7px;font-size:15px;padding:8px 18px;transition:background .12s ease,color .12s ease,border-color .12s ease}.nav__btn:hover:not(.is-active){color:var(--text);background:var(--panel-2)}.nav__btn.is-active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.app__user{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px}.app__user .nav__btn{padding:6px 12px;font-size:13px}.site-picker{margin-left:auto;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.site-picker select{font-size:13px}.workspace{flex:1;display:flex;flex-direction:column;min-height:0}.workspace__bar{display:flex;align-items:center;gap:18px;padding:10px 20px;border-bottom:1px solid var(--line);background:var(--panel)}.workspace>.content,.workspace>.split{flex:1;min-height:0}.subnav{display:flex;gap:4px;flex-wrap:wrap}.subnav__btn{background:transparent;color:var(--muted);border:1px solid transparent;border-bottom:2px solid transparent;border-radius:6px;padding:7px 14px;font-size:14px;cursor:pointer}.subnav__btn:hover{color:var(--text)}.subnav__btn.is-active{color:var(--text);background:var(--bg);border-color:var(--line);border-bottom-color:var(--accent)}.clinic-picker{display:flex;align-items:center;gap:8px}.clinic-picker__label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.clinic-picker select{font-size:15px;padding:6px 10px}.app__body{flex:1;display:flex;min-height:0}.split{flex:1;display:flex;min-height:0;width:100%}.sidebar{width:320px;border-right:1px solid var(--line);overflow-y:auto;padding:16px}.sidebar__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sidebar__head h2{margin:0}.sidebar__head button{padding:4px 10px;font-size:12px}.content{flex:1;overflow-y:auto;padding:20px}.auth-card{width:360px;max-width:100%;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:var(--shadow-md)}h2{font-size:19px;font-weight:600;line-height:1.3;margin:0 0 12px}h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:18px 0 8px}.muted{color:var(--muted);font-size:13px}.error{color:#ff7b72;font-size:13px}button{background:var(--accent);color:var(--accent-ink);border:none;border-radius:7px;padding:8px 14px;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:default}button.secondary{background:transparent;color:var(--text);border:1px solid var(--line)}button.secondary:hover:not(:disabled){background:var(--panel);border-color:var(--accent)}.form{display:flex;flex-direction:column;gap:8px;margin:8px 0 16px}.form--row{flex-direction:row;flex-wrap:wrap;align-items:center}.form input,.form select,.form textarea,input[type=text],input[type=password],input[type=number],input[type=date],input[type=time]{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit}.form textarea{resize:vertical}.form input:focus,.form select:focus,.form textarea:focus,input[type=text]:focus,input[type=password]:focus,input[type=number]:focus,input[type=date]:focus,input[type=time]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f9cff40}input:disabled{opacity:.5;cursor:not-allowed}.course-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.course-list--row{flex-direction:row;flex-wrap:wrap}.course{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;cursor:pointer;font-weight:400;box-shadow:var(--shadow-card);transition:border-color .12s ease,background .12s ease}.course:hover{background:var(--panel-2);border-color:var(--line-strong)}.course.is-active{border-color:var(--accent)}.panel{margin-top:8px;border-top:1px solid var(--line);padding-top:12px}.panel__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.message{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);padding:8px 12px;border-radius:6px;box-shadow:var(--shadow-card)}.badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;vertical-align:middle;border:1px solid var(--line);color:var(--muted);background:transparent}.detail-actions{display:flex;gap:8px;align-items:center;margin-bottom:12px}button.danger{background:transparent;color:#ff8585;border:1px solid #6e2b2b}button.danger:hover{background:#2a1414;border-color:#a23a3a}.held{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--ok);padding:10px 12px;border-radius:8px;margin-bottom:14px;box-shadow:var(--shadow-card)}.patterns{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.pattern{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;box-shadow:var(--shadow-card)}.pattern__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.pattern__first{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:13px}.sessions{list-style:none;margin:0;padding:0;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:3px;font-variant-numeric:tabular-nums}.calendar-wrap{flex:1;width:100%;overflow-y:auto;padding:20px}.calendar__head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.calendar__head h2{margin:0}.calendar{background:var(--cal-bg);color:var(--cal-text);border:1px solid var(--line);border-radius:10px;padding:12px;box-shadow:var(--shadow-card)}.calendar .fc{--fc-border-color: var(--cal-border);--fc-page-bg-color: var(--cal-bg);--fc-neutral-bg-color: var(--cal-bg);--fc-today-bg-color: var(--cal-today);--fc-button-bg-color: var(--panel-2);--fc-button-border-color: var(--line);--fc-button-text-color: var(--text);--fc-button-hover-bg-color: var(--accent);--fc-button-hover-border-color: var(--accent);--fc-button-active-bg-color: var(--accent);--fc-button-active-border-color: var(--accent);color:var(--cal-text);font-size:13px}.calendar .fc .fc-toolbar-title{font-size:16px}.calendar .fc .fc-col-header-cell-cushion,.calendar .fc .fc-daygrid-day-number{color:var(--cal-muted)}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 8px;cursor:pointer}.chip.is-on{border-color:var(--accent)}.components{margin:12px 0}.components__head{display:flex;align-items:center;justify-content:space-between}.comp{border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px}.link{background:transparent;color:var(--accent);padding:4px 6px;font-weight:600}.detail-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px;font-variant-numeric:tabular-nums}.detail-table th,.detail-table td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--line)}.detail-table th{color:var(--muted);font-weight:600}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--panel);border:1px solid var(--line-strong);border-radius:12px;padding:18px 20px;width:min(560px,92vw);max-height:86vh;overflow-y:auto;box-shadow:var(--shadow-md)}.modal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal__head h3{margin:0;text-transform:none;letter-spacing:0;font-size:15px;color:var(--text)}.guide{max-width:880px}.guide-hero h2{font-size:22px;margin:0 0 8px}.guide-hero__intro{font-size:15px;line-height:1.6;color:var(--text);max-width:760px;margin:0 0 8px}.guide-hero__areas{margin:0;font-size:13px;color:var(--muted)}.guide-hero__areas strong{color:var(--text);font-weight:600}.guide-section{margin-top:26px}.guide-section__head{display:flex;align-items:center;gap:10px}.guide-section__head h3{margin:0;font-size:16px;text-transform:none;letter-spacing:0;color:var(--text)}.guide-section__badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 9px;border-radius:999px}.guide-section__badge--once{color:#07101b;background:var(--accent)}.guide-section__badge--loop{color:#06210f;background:var(--ok)}.guide-section__sub{margin:6px 0 14px;font-size:13px;color:var(--muted)}.guide-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.guide-step{display:flex;gap:14px;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;transition:border-color .15s ease}.guide-step:hover{border-color:#34465a}.guide-step__num{flex:0 0 auto;width:30px;height:30px;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:var(--accent);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}.guide-step__body{flex:1;min-width:0}.guide-step__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.guide-step__head h4{margin:0;font-size:16px;color:var(--text)}.guide-step__go{flex:0 0 auto;white-space:nowrap;background:transparent;color:var(--accent);border:1px solid var(--line);border-radius:7px;padding:6px 12px;font-size:13px;font-weight:600}.guide-step__go:hover{border-color:var(--accent)}.guide-step__lead{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--text)}.guide-step__detail{margin:6px 0 0;font-size:13px;line-height:1.55;color:var(--muted)}.guide-step__tip{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--muted);background:var(--bg);border-radius:8px;padding:8px 10px}.guide-step__tip-label{display:inline-block;margin-right:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}.guide-closing{max-width:820px;margin-top:22px;padding:4px 0 4px 14px;border-left:3px solid var(--ok);font-size:13.5px;line-height:1.6;color:var(--muted)}.danger-zone{margin-top:22px;padding-top:10px;border-top:1px dashed var(--danger, #ff7b72)}.danger-zone__label{display:block;margin-bottom:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--danger, #ff7b72);opacity:.8}.badge--warn{border-color:var(--warn);color:var(--warn)}.warn{color:var(--warn);font-size:13px}.legend{display:inline-flex;align-items:center;gap:12px;font-size:12.5px;color:var(--muted)}.legend__item{display:inline-flex;align-items:center;gap:5px}.legend__dot{width:10px;height:10px;border-radius:3px;display:inline-block}details.howto{max-width:680px;margin:4px 0 8px}details.howto summary{cursor:pointer;color:var(--accent);font-size:13px;font-weight:600}details.howto[open] summary{margin-bottom:6px}details.howto p{margin:4px 0;font-size:13px;line-height:1.55;color:var(--muted)}.subnav-hint{margin:0;padding:6px 20px 0;font-size:12.5px;color:var(--muted)}
