:root{--paper: #f2f4f8;--card: #ffffff;--sunk: #e9edf4;--ink: #16213d;--ink-2: #4b5675;--ink-3: #7c86a1;--line: #d9dfea;--rail: #16213d;--rail-ink: #e8ebf3;--rail-dim: #9aa5c2;--brass: #9c6f22;--brass-strong: #b8862f;--brass-soft: #f4e9d2;--open: #9c6f22;--open-bg: #fbf3e2;--applied: #b45309;--applied-bg: #fdebd6;--selected: #4548b8;--selected-bg: #e7e8fb;--confirmed: #17714f;--confirmed-bg: #dcf1e7;--canceled: #7f879a;--canceled-bg: #eceef2;--adult: #5f6b85;--adult-bg: #e6eaf1;--bad: #b42318;--bad-bg: #fde7e4;--focus: #4548b8;--shadow: 0 1px 2px rgba(22, 33, 61, .06), 0 8px 24px rgba(22, 33, 61, .07);--font-display: "Hahmlet", "Noto Serif KR", "AppleMyungjo", serif;--font-body: "IBM Plex Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--r-s: 6px;--r-m: 10px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #0e1424;--card: #161e33;--sunk: #1c2640;--ink: #e7eaf3;--ink-2: #aeb7cf;--ink-3: #7d88a6;--line: #2a3551;--rail: #0a0f1c;--rail-ink: #e7eaf3;--rail-dim: #8792b0;--brass: #d9ac5c;--brass-strong: #e2b968;--brass-soft: #3a2f1a;--open: #e0b566;--open-bg: #352a14;--applied: #f39a4a;--applied-bg: #3d2513;--selected: #a3a6ff;--selected-bg: #262a55;--confirmed: #5cd3a2;--confirmed-bg: #12382a;--canceled: #8d95a8;--canceled-bg: #232a3b;--adult: #aab3c8;--adult-bg: #222b40;--bad: #ff8a7a;--bad-bg: #3d1a17;--focus: #a3a6ff;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35);color-scheme:dark}}:root[data-theme=dark]{--paper: #0e1424;--card: #161e33;--sunk: #1c2640;--ink: #e7eaf3;--ink-2: #aeb7cf;--ink-3: #7d88a6;--line: #2a3551;--rail: #0a0f1c;--rail-ink: #e7eaf3;--rail-dim: #8792b0;--brass: #d9ac5c;--brass-strong: #e2b968;--brass-soft: #3a2f1a;--open: #e0b566;--open-bg: #352a14;--applied: #f39a4a;--applied-bg: #3d2513;--selected: #a3a6ff;--selected-bg: #262a55;--confirmed: #5cd3a2;--confirmed-bg: #12382a;--canceled: #8d95a8;--canceled-bg: #232a3b;--adult: #aab3c8;--adult-bg: #222b40;--bad: #ff8a7a;--bad-bg: #3d1a17;--focus: #a3a6ff;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:anywhere}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.25;margin:0;text-wrap:balance;letter-spacing:-.01em}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1.02rem}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.faint{color:var(--ink-3);font-size:.86rem}.small{font-size:.86rem}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100%}.rail{background:var(--rail);color:var(--rail-ink);display:flex;flex-direction:column;gap:20px;padding:22px 14px;position:sticky;top:0;height:100vh}.brand{display:flex;flex-direction:row;align-items:center;gap:8px;padding:0 4px;min-width:0}.brand-logo{width:38px;height:38px;flex:none}.login-logo{width:clamp(120px,16vw,180px);height:auto}.login .side .login-org{color:var(--rail-ink);font-size:clamp(1.05rem,1.8vw,1.3rem);font-weight:500;max-width:none;line-height:1.5}.brand b{font-family:var(--font-display);font-size:.86rem;white-space:nowrap;font-weight:700;letter-spacing:-.01em}.brand b i{font-style:normal;color:var(--brass-strong)}.brand span{color:var(--rail-dim);font-size:.68rem;white-space:nowrap;letter-spacing:.01em}.nav{display:flex;flex-direction:column;gap:2px}.nav button{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;border:0;background:transparent;color:var(--rail-dim);padding:9px 10px;border-radius:var(--r-s);cursor:pointer;font-size:.95rem}.nav button:hover{color:var(--rail-ink);background:#ffffff0f}.nav button[aria-current=page]{color:var(--rail-ink);background:#ffffff1a;box-shadow:inset 3px 0 0 var(--brass-strong)}.nav .count{font-size:.75rem;background:var(--brass-strong);color:#1b1404;border-radius:99px;padding:0 7px;font-weight:600}.me{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding:12px 8px 0;border-top:1px solid rgba(255,255,255,.1);font-size:.86rem}.me strong{font-size:.95rem}.me .role{color:var(--rail-dim)}.me .links{display:flex;gap:12px;flex-wrap:wrap}.me .links button{background:none;border:0;color:var(--rail-dim);padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.me .links button:hover{color:var(--rail-ink)}.main{min-width:0;padding-block:28px 64px;padding-inline:clamp(16px,3vw,40px);display:flex;flex-direction:column;gap:22px}.preview-bar{position:sticky;top:0;z-index:30;background:var(--selected-bg);color:var(--selected);border:1px solid var(--selected);border-radius:var(--r-m);padding:10px 14px;margin-bottom:14px;font-size:.9rem;display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between;box-shadow:var(--shadow)}.preview-bar b{color:var(--ink)}.demo-bar{background:var(--brass-soft);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-m);padding:10px 14px;font-size:.88rem;display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between}@media (max-width: 860px){.app{grid-template-columns:minmax(0,1fr)}.rail{position:sticky;top:0;height:auto;z-index:20;padding:10px 16px;gap:8px;padding-top:calc(10px + env(safe-area-inset-top,0px))}.brand{gap:8px;padding:0}.brand-logo{width:34px;height:34px}.brand .stack{gap:0!important}.brand b{font-size:.92rem}.brand span{font-size:.68rem}.nav{flex-direction:row;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}.nav button{white-space:nowrap;flex:none;padding:7px 10px}.nav button[aria-current=page]{box-shadow:inset 0 -2px 0 var(--brass-strong)}.me{margin:0;flex-direction:row;align-items:center;justify-content:space-between;padding:6px 0 0}.me .role{display:none}.main{padding-block:18px 48px}}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.page-head .lead{display:flex;flex-direction:column;gap:4px;min-width:0}.page-head .lead p{color:var(--ink-2);max-width:62ch}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:var(--r-s);padding:8px 14px;cursor:pointer;font-weight:500;font-size:.92rem;line-height:1.2;white-space:nowrap}.btn:hover{border-color:var(--ink-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn.primary:hover{filter:brightness(1.15)}.btn.gold{background:var(--brass-strong);border-color:var(--brass-strong);color:#1b1404}.btn.danger{color:var(--bad)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2);padding-inline:8px}.btn.ghost:hover{color:var(--ink);background:var(--sunk)}.btn.sm{padding:5px 10px;font-size:.85rem}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>span{font-size:.84rem;color:var(--ink-2);font-weight:500}.field small{color:var(--ink-3);font-size:.8rem}.input,.select,.textarea{width:100%;border:1px solid var(--line);background:var(--card);border-radius:var(--r-s);padding:8px 10px;min-height:38px}.textarea{min-height:96px;resize:vertical;line-height:1.55}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:transparent}.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden;background:var(--card);flex-wrap:wrap}.seg button{border:0;background:transparent;padding:7px 12px;cursor:pointer;color:var(--ink-2);font-size:.88rem}.seg button+button{border-left:1px solid var(--line)}.check{display:flex;gap:8px;align-items:flex-start;cursor:pointer;font-size:.92rem}.check input{margin-top:4px;accent-color:var(--ink)}.search{position:relative;min-width:200px;flex:1 1 220px;max-width:320px}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:2px 9px;font-size:.78rem;font-weight:600;white-space:nowrap;line-height:1.6}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.t-open{color:var(--open);background:var(--open-bg)}.t-applied{color:var(--applied);background:var(--applied-bg)}.t-selected{color:var(--selected);background:var(--selected-bg)}.t-confirmed{color:var(--confirmed);background:var(--confirmed-bg)}.t-canceled{color:var(--canceled);background:var(--canceled-bg)}.t-adult{color:var(--adult);background:var(--adult-bg)}.t-bad{color:var(--bad);background:var(--bad-bg)}.tag{display:inline-block;border:1px solid var(--line);border-radius:4px;padding:0 6px;font-size:.76rem;color:var(--ink-2);white-space:nowrap}.flag{display:inline-flex;gap:4px;align-items:center;font-size:.8rem;padding:1px 8px;border-radius:4px}.flag.warn{background:var(--applied-bg);color:var(--applied)}.flag.good{background:var(--confirmed-bg);color:var(--confirmed)}.flag.bad{background:var(--bad-bg);color:var(--bad)}.ribbon{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;max-width:360px}.ribbon i{height:14px;border-radius:3px;background:var(--sunk);position:relative}.ribbon i.open{background:transparent;box-shadow:inset 0 0 0 1.5px var(--open)}.ribbon i.applied{background:linear-gradient(90deg,var(--applied) 50%,var(--applied-bg) 50%)}.ribbon i.selected{background:var(--selected)}.ribbon i.confirmed{background:var(--confirmed)}.ribbon i.adult{background:var(--adult);opacity:.55}.ribbon i.canceled{background:repeating-linear-gradient(135deg,var(--canceled-bg) 0 3px,var(--line) 3px 6px)}.ribbon i.tbd{background:var(--sunk);box-shadow:inset 0 0 0 1px var(--line)}.ribbon i.past:after{content:"";position:absolute;inset:auto 2px -5px 2px;height:2px;background:var(--ink-3);border-radius:2px;opacity:.6}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--ink-2);align-items:center}.legend span{display:inline-flex;gap:6px;align-items:center}.legend .ribbon{display:inline-grid;grid-template-columns:14px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px}.class-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0}.class-card .top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.class-card h3{font-size:1rem}.class-card .meta{display:flex;gap:6px 12px;flex-wrap:wrap;font-size:.85rem;color:var(--ink-2)}.class-card .foot{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-m);background:var(--card)}table.t{border-collapse:collapse;width:100%;font-size:.9rem}table.t th{text-align:left;font-weight:600;color:var(--ink-2);font-size:.8rem;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--sunk);white-space:nowrap;position:sticky;top:0}table.t td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}table.t tr:last-child td{border-bottom:0}table.t tr.click{cursor:pointer}table.t tr.click:hover td{background:var(--sunk)}table.t td.n,table.t th.n{text-align:right;font-variant-numeric:tabular-nums}.empty{border:1px dashed var(--line);border-radius:var(--r-m);padding:28px;text-align:center;color:var(--ink-2);display:flex;flex-direction:column;gap:10px;align-items:center}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:14px 16px;display:flex;flex-direction:column;gap:2px}.kpi b{font-family:var(--font-display);font-size:1.7rem;font-weight:600;font-variant-numeric:tabular-nums}.kpi span{color:var(--ink-2);font-size:.85rem}.kpi.alert b{color:var(--applied)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;flex-shrink:0}.drawer-body>*,.modal>.body>*{flex-shrink:0}.tabs button{border:0;background:none;padding:9px 12px;cursor:pointer;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;font-size:.93rem}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--brass-strong);font-weight:600}.tabs .count{font-size:.75rem;color:var(--ink-3);margin-left:4px}.two{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}@media (max-width: 1080px){.two{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:12px;min-width:0}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:.92rem}.kv dt{color:var(--ink-2)}.kv dd{margin:0;min-width:0}.cal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.cal-title{display:flex;align-items:center;gap:6px}.cal-title h2{font-size:1.5rem;min-width:7.5em;text-align:center;font-variant-numeric:tabular-nums}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;background:var(--line);gap:1px}.cal .dow{background:var(--sunk);padding:6px 8px;font-size:.8rem;color:var(--ink-2);font-weight:600}.cal .dow:nth-child(6){color:var(--selected)}.cal .dow:nth-child(7){color:var(--bad)}.cal .day{background:var(--card);min-height:118px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}.cal .day.out{background:var(--paper)}.cal .day.out .d{opacity:.45}.cal .day .d{font-size:.8rem;color:var(--ink-2);font-variant-numeric:tabular-nums;display:flex;justify-content:space-between}.cal .day .day-add{border:0;background:transparent;color:var(--ink-2);cursor:pointer;padding:0 5px;border-radius:6px;font-size:.85rem;line-height:1.3;opacity:0;transition:opacity .12s}.cal .day:hover .day-add,.cal .day .day-add:focus-visible{opacity:1}.cal .day .day-add:hover{background:var(--sunk);color:var(--ink)}@media (hover: none){.cal .day .day-add{opacity:.55}}.cal .day.today .d b{background:var(--brass-strong);color:#1b1404;border-radius:99px;padding:0 7px}.chip{display:flex;gap:5px;align-items:center;width:100%;border:0;text-align:left;cursor:pointer;border-radius:4px;padding:2px 6px;font-size:.76rem;line-height:1.35;min-width:0;border-left:3px solid currentColor}.chip .tx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink)}.chip .tm{font-variant-numeric:tabular-nums;flex:none;opacity:.85}.chip .badge{flex:none;margin-left:auto;font-weight:700}.chip.mine{outline:2px solid var(--brass-strong);outline-offset:-1px}.chip:hover{filter:brightness(.97)}.more{font-size:.75rem;color:var(--ink-2);background:none;border:0;text-align:left;cursor:pointer;padding:0 6px}.cal-list{display:flex;flex-direction:column;gap:14px}.cal-list .date-group{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px}.cal-list .date-label{font-family:var(--font-display);font-weight:600;padding-top:8px}.cal-list .date-label small{display:block;font-family:var(--font-body);font-weight:400;color:var(--ink-3);font-size:.78rem}.list-item{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-left:4px solid currentColor;border-radius:var(--r-s);padding:9px 12px;cursor:pointer;width:100%;text-align:left}.list-item .tx{color:var(--ink);min-width:0}.list-item .tx b{display:block;font-weight:600}.list-item .tx span{color:var(--ink-2);font-size:.85rem}.list-item .tm{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.list-item.mine{box-shadow:0 0 0 2px var(--brass-strong)}@media (max-width: 700px){.cal .day{min-height:64px;padding:3px}.chip .tx,.chip .tm{display:none}.chip{height:8px;padding:0;border-left-width:0}.chip .badge{display:none}.cal-list .date-group{grid-template-columns:1fr;gap:6px}.list-item{grid-template-columns:46px minmax(0,1fr)}.list-item>:last-child{grid-column:1 / -1;justify-self:start}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f1c73;z-index:50;display:flex;justify-content:flex-end;animation:fade .15s ease-out}.drawer{width:min(520px,100%);height:100%;background:var(--paper);display:flex;flex-direction:column;box-shadow:var(--shadow);animation:slide .2s ease-out}.drawer-head{padding:18px 20px;padding-top:calc(18px + env(safe-area-inset-top,0px));background:var(--card);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.drawer-body{padding:18px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;flex:1}.drawer-foot{padding:14px 20px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f1c73;z-index:60;display:grid;place-items:center;padding:16px}.modal{background:var(--card);border-radius:var(--r-m);width:min(560px,100%);max-height:90vh;overflow:auto;box-shadow:var(--shadow);display:flex;flex-direction:column}.modal.wide{width:min(880px,100%)}.modal>header{padding:18px 20px 0;display:flex;justify-content:space-between;gap:12px}.modal>.body{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.modal>footer{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.x{border:0;background:none;font-size:1.4rem;line-height:1;color:var(--ink-2);cursor:pointer;padding:2px 6px;border-radius:4px}.x:hover{background:var(--sunk)}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{transform:translate(24px);opacity:.6}}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:80;background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:var(--r-s);box-shadow:var(--shadow);font-size:.92rem;max-width:calc(100% - 32px);animation:fade .15s}.toast.err{background:var(--bad);color:#fff}.note{border-radius:var(--r-s);padding:10px 12px;font-size:.88rem;background:var(--sunk);color:var(--ink-2)}.note.warn{background:var(--applied-bg);color:var(--ink)}.note.info{background:var(--selected-bg);color:var(--ink)}.applicant{border:1px solid var(--line);border-radius:var(--r-m);background:var(--card);padding:14px;display:flex;flex-direction:column;gap:10px}.applicant.picked{border-color:var(--selected);box-shadow:0 0 0 1px var(--selected)}.applicant .who{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.applicant .rank{font-family:var(--font-display);font-weight:700;color:var(--brass);font-size:1.1rem;min-width:1.6em}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:6px}.stat-row div{background:var(--sunk);border-radius:var(--r-s);padding:6px 8px;display:flex;flex-direction:column}.stat-row b{font-variant-numeric:tabular-nums;font-size:1.05rem}.stat-row span{font-size:.74rem;color:var(--ink-2)}.queue-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;background:var(--card);border-left:3px solid transparent;width:100%;text-align:left;border-top:0;border-right:0}.queue-row:hover{background:var(--sunk)}.queue-row[aria-current=true]{border-left-color:var(--brass-strong);background:var(--sunk)}.queue-row .when{font-variant-numeric:tabular-nums;font-weight:600;font-size:.9rem}.queue-row .when small{display:block;font-weight:400;color:var(--ink-3)}.queue{border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;max-height:70vh;overflow-y:auto}.sess-table td{padding:6px 8px}.sess-table .input,.sess-table .select{min-height:34px;padding:5px 8px}.sess-table tr.locked td{background:var(--sunk)}.quota{font-variant-numeric:tabular-nums;font-weight:600}.quota.over{color:var(--bad)}.bars{display:flex;flex-direction:column;gap:6px}.bar-row{display:grid;grid-template-columns:minmax(70px,120px) minmax(0,1fr) 42px;gap:10px;align-items:center;font-size:.86rem}.bar-row .lab{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}.bar-track{height:14px;background:var(--sunk);border-radius:3px;overflow:hidden}.bar-fill{height:100%;background:var(--ink);border-radius:3px}.bar-fill.gold{background:var(--brass-strong)}.bar-row .v{text-align:right;font-variant-numeric:tabular-nums}.colchart{display:flex;flex-direction:column;gap:6px}.colchart svg{width:100%;height:auto;display:block;overflow:visible}.colchart text{fill:var(--ink-2);font-size:11px;font-family:var(--font-body)}.colchart .grid{stroke:var(--line);stroke-width:1}.colchart rect.c{fill:var(--ink)}.colchart rect.c.now{fill:var(--brass-strong)}.login{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.login .side{background:var(--rail);color:var(--rail-ink);padding:clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:32px}.login .side h1{font-size:clamp(2.6rem,6vw,4.2rem);font-weight:700;line-height:1.05;letter-spacing:-.02em}.login .side h1 i{font-style:normal;color:var(--brass-strong)}.login .side p{color:var(--rail-dim);max-width:34ch}.login .side .ribbon i{height:22px}.login .side .ribbon i.tbd{background:#ffffff14;box-shadow:none}.login .form{padding:clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:center;gap:18px;max-width:520px;width:100%}.role-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-card{text-align:left;border:1px solid var(--line);background:var(--card);border-radius:var(--r-m);padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.role-card:hover{border-color:var(--ink)}.role-card b{font-family:var(--font-display);font-size:1.02rem}.role-card span{font-size:.82rem;color:var(--ink-2)}@media (max-width: 760px){.login{grid-template-columns:1fr}.login .side{gap:16px}.role-cards{grid-template-columns:1fr}}.sheet{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:24px;display:flex;flex-direction:column;gap:14px}.sheet h2{font-size:1.3rem}.sheet table{width:100%;border-collapse:collapse;font-size:.92rem}.sheet th,.sheet td{border:1px solid var(--line);padding:7px 10px;text-align:left}.sheet th{background:var(--sunk);font-weight:600}@media print{body{background:#fff;color:#000}.rail,.no-print,.demo-bar,.toast{display:none!important}.app{display:block}.main{padding:0}.sheet{border:0;padding:0}.sheet th,.sheet td{border-color:#999}}.history-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px;padding:14px;background:var(--sunk);border-radius:var(--r-m)}.history-stats .bar-track{background:var(--card)}.tag-strong{border-color:var(--applied);color:var(--applied);font-weight:600}.care-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.care-item{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--brass-strong);border-radius:var(--r-s);padding:10px 12px;display:flex;flex-direction:column;gap:6px}.tag.care-warn{border-color:var(--bad);color:var(--bad)}.audit{display:flex;flex-direction:column;gap:2px}.audit-row{display:grid;grid-template-columns:112px minmax(90px,150px) 104px minmax(0,1fr);gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--line);font-size:.88rem}.audit-row:last-of-type{border-bottom:0}.audit-row .act{font-weight:600}.by-line{font-size:.8rem;color:var(--ink-3)}.by-line b{color:var(--ink-2);font-weight:600}@media (max-width: 700px){.audit-row{grid-template-columns:1fr 1fr}.audit-row .det{grid-column:1 / -1}}.tag.tier-pearl{border-color:var(--brass-strong);color:var(--brass);background:var(--brass-soft);font-weight:600}.banner{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 16px;border-radius:var(--r-m);background:var(--brass-soft);border:1px solid var(--line)}.tag.tz-tag{border-color:var(--selected);color:var(--selected)}.local-time{color:var(--selected);font-size:.82em;font-variant-numeric:tabular-nums;margin-left:4px;white-space:nowrap}.nav.help{margin-top:auto;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.nav.help+.me{margin-top:0}@media (max-width: 860px){.nav.help{margin-top:0;padding-top:0;border-top:0}}.faq{display:flex;flex-direction:column;gap:8px}.faq details{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:0}.faq summary{cursor:pointer;padding:14px 16px;font-weight:600;display:flex;justify-content:space-between;gap:10px;align-items:center;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--ink-3);font-weight:400;font-size:1.2rem}.faq details[open] summary:after{content:"–"}.faq .ans{padding:0 16px 14px;white-space:pre-wrap;color:var(--ink-2);line-height:1.7;max-width:70ch}.branch-local{color:var(--brass);font-size:.82em;font-variant-numeric:tabular-nums;margin-left:4px;white-space:nowrap}.contact-box{border:1px solid var(--line);border-radius:var(--r-m);background:var(--card);padding:14px;display:flex;flex-direction:column;gap:10px}.contact-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.dir-list{display:grid;gap:10px}.dir-list .contact-row{padding:8px 0;border-top:1px solid var(--line)}.dir-list .contact-row:first-child{border-top:0}.dir-list .contact-row b{min-width:8em}.contact-row .who{font-size:.78rem;color:var(--ink-3);min-width:3.6em}.kakao{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:99px;padding:2px 10px 2px 3px;cursor:pointer;font-size:.86rem;color:var(--ink)}.kakao:hover{border-color:var(--ink-3)}.kakao-mark{background:#fee500;color:#191600;border-radius:99px;padding:1px 7px;font-size:.72rem;font-weight:700}.kpi-link{font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .12s,box-shadow .12s}.kpi-link:hover:not(:disabled){border-color:var(--brass-strong);box-shadow:var(--shadow)}.kpi-link:disabled{cursor:default}.kpi.gold b{color:var(--brass)}.dash-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dash-list li{display:flex;gap:10px;align-items:baseline;font-size:.9rem;min-width:0}.dash-list li>span:last-child{min-width:0;overflow-wrap:anywhere}.dash-list .num{white-space:nowrap;font-size:.82rem}.mi-region{display:flex;flex-direction:column;gap:10px}.mi-region-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;border-bottom:2px solid var(--brass-soft);padding-bottom:6px}.mi-region-head h2{font-size:1.15rem}.mi-leader{font-size:.92rem;color:var(--ink-2);display:inline-flex;gap:6px;align-items:baseline;flex-wrap:wrap}.mi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.mi-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}.mi-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.mi-head h3{font-size:1rem;display:flex;gap:8px;align-items:center;margin:0}.mi-line{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:.9rem}.mi-role{font-size:.74rem;color:var(--ink-3);min-width:58px}.mi-role.yrg{color:var(--brass);font-weight:600}.phone{color:var(--selected);text-decoration:none;white-space:nowrap}.phone:hover{text-decoration:underline}.access-note{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.78rem;color:var(--ink-3);margin-bottom:-6px}.access-label{font-weight:600;color:var(--ink-2);margin-right:2px}.access-chip{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:1px 9px;color:var(--ink-2);white-space:nowrap}.access-chip em{font-style:normal;color:var(--ink-3)}.qna-item{gap:8px}.qna-body{white-space:pre-wrap;line-height:1.7}.qna-answer{background:var(--confirmed-bg);border-radius:var(--r-s);padding:10px 12px;display:flex;flex-direction:column;gap:4px}.qna-answer>div{white-space:pre-wrap;line-height:1.7;color:var(--ink)}.qna-answer>b{color:var(--confirmed);font-size:.85rem}.lesson-table td{vertical-align:middle}.lesson-table tr.edited td{background:var(--brass-soft)}.lesson-table .add-row td{background:var(--sunk)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.perm-table th.c,.perm-table td.c{text-align:center}.perm-table td{vertical-align:middle}.perm-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;border-radius:99px;padding:3px 10px 3px 6px;font-size:.82rem;font-weight:600;white-space:nowrap}.perm-toggle.on{background:var(--confirmed-bg);color:var(--confirmed)}.perm-toggle.off{background:var(--bad-bg);color:var(--bad)}.perm-toggle input{width:16px;height:16px;accent-color:var(--confirmed)}.notice-strip{display:flex;flex-direction:column;gap:8px}.notice-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.notice-grid.c1{grid-template-columns:1fr}.notice-list{display:grid;gap:12px}.notice{--n: var(--selected);--n-bg: var(--selected-bg);background:var(--card);border:1px solid var(--line);border-left:4px solid var(--n);border-radius:var(--r-m);padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}.notice.n-feature{--n: var(--brass-strong);--n-bg: var(--brass-soft)}.notice.n-event{--n: var(--confirmed);--n-bg: var(--confirmed-bg)}.notice.pinned{background:linear-gradient(90deg,var(--n-bg),var(--card) 70%)}.notice h3{margin:0;font-family:var(--font-display);font-size:1.05rem;font-weight:600;line-height:1.4}.notice-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.notice-kind{font-size:.75rem;font-weight:700;color:var(--n);background:var(--n-bg);border-radius:4px;padding:1px 7px}.notice-flag{font-size:.7rem;font-weight:700;color:var(--bad);border:1px solid var(--bad);border-radius:4px;padding:0 5px}.notice-flag.new{color:var(--brass);border-color:var(--brass-strong)}.notice-x{margin-left:auto;border:0;background:transparent;color:var(--ink-3);font-size:1.15rem;line-height:1;cursor:pointer;padding:2px 4px;border-radius:4px}.notice-x:hover{color:var(--ink);background:var(--sunk)}.notice-body{white-space:pre-wrap;line-height:1.65;color:var(--ink-2);font-size:.92rem}.notice-body.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notice-go{border-color:var(--n);color:var(--n);text-decoration:none}.notice-empty{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;border:1px dashed var(--line);border-radius:var(--r-m);padding:8px 12px}.link-btn{align-self:flex-start;border:0;background:none;padding:0;color:var(--selected);cursor:pointer;font-family:inherit}.subnav{display:inline-flex;gap:2px;padding:3px;background:var(--sunk);border-radius:var(--r-m);align-self:flex-start;max-width:100%;overflow-x:auto}.subnav button{border:0;background:transparent;padding:7px 14px;border-radius:var(--r-s);cursor:pointer;color:var(--ink-2);font:inherit;font-size:.92rem;white-space:nowrap}.subnav button:hover{color:var(--ink)}.subnav button[aria-selected=true]{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #16213d1f}.subnav .count{margin-left:6px;font-size:.75rem;background:var(--brass-strong);color:#1b1404;border-radius:99px;padding:0 7px;font-weight:600}.notice-toggle{align-items:center;font-weight:600;font-size:.88rem;border:1px solid var(--line);border-radius:99px;padding:3px 10px 3px 8px;background:var(--card)}.notice-toggle input{margin-top:0}
