:root{--ground: #F3F0EB;--sheet: #FFFFFF;--sheet-2: #FAF8F5;--rule: #E3DDD4;--rule-strong: #CFC7BB;--ink: #141414;--ink-2: #5E5850;--ink-3: #8C857B;--brand: #E56B07;--danger: #B3372B;--danger-tint: #F7E4DF;--warn: #9A5B0C;--warn-tint: #F6EADB;--info: #3F5A72;--info-tint: #E3E9EF;--ok: #33634A;--ok-tint: #E2ECE5;--select: #EFEAE2;--font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--mono: "Pretendard Variable", Pretendard, ui-monospace, Consolas, monospace;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--side: 240px;--ease: cubic-bezier(.16, 1, .3, 1);color-scheme:light}*{box-sizing:border-box;border-radius:0!important}html,body{margin:0}body{background:var(--ground);color:var(--ink);font:400 14px/1.55 var(--font);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased}::selection{background:var(--ink);color:#fff}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--ink);text-underline-offset:3px}*{scrollbar-color:var(--rule-strong) transparent;scrollbar-width:thin}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.muted{color:var(--ink-2)}.small{font-size:12.5px}.tiny{font-size:11px}.mono{font-variant-numeric:tabular-nums;letter-spacing:.01em}.nowrap{white-space:nowrap}.pad{padding:var(--s5) 0;color:var(--ink-2)}.spacer{flex:1}.row{display:flex;gap:var(--s3);align-items:center}.row.wrap{flex-wrap:wrap}.error{color:var(--danger)}.ok-text{color:var(--ok)}.warn-text{color:var(--warn)}ul.plain{list-style:none;margin:0;padding:0}ul.plain li{margin:6px 0}code{font-family:var(--mono);font-size:12.5px;background:var(--sheet-2);border:1px solid var(--rule);padding:0 4px}details summary{cursor:pointer;color:var(--ink-2);margin:4px 0}details summary::marker{color:var(--ink-3)}.shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:var(--s6) var(--s5) var(--s5);border-right:1px solid var(--rule)}.logo{display:block;width:81px;margin-bottom:var(--s2)}.logo img{display:block;width:100%;height:auto;filter:brightness(0)}.product-name{font-size:12.5px;color:var(--ink-2);letter-spacing:.01em;margin-bottom:var(--s7)}.nav{display:grid;gap:2px}.nav-item{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;border:0;background:transparent;cursor:pointer;padding:10px 12px;font-size:14px;font-weight:500;color:var(--ink);transition:background-color .18s var(--ease),color .18s var(--ease)}.nav-item:hover{background:var(--select)}.nav-item[aria-current=page]{background:var(--ink);color:#fff;font-weight:600}.nav-divider{height:1px;background:var(--rule);margin:var(--s3) 0}.side-foot{margin-top:auto;display:grid;gap:var(--s2);padding-top:var(--s5);border-top:1px solid var(--rule)}.side-team{font-weight:700;font-size:15px}.side-user{font-size:12.5px;color:var(--ink-2);word-break:break-all}.side-foot select{width:100%}.logout{justify-self:start;border:0;background:none;padding:0;cursor:pointer;color:var(--ink-2);font-size:13px;text-decoration:underline;text-underline-offset:3px}.logout:hover{color:var(--ink)}.main{min-width:0;padding:var(--s6) var(--s6) var(--s7)}.page-head{display:flex;align-items:flex-end;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s5);max-width:1200px}.page-title{margin:0;font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-.025em}.page-sub{color:var(--ink-2);font-size:13.5px;padding-bottom:3px}.content{max-width:1200px}.card{background:var(--sheet);border:1px solid var(--rule);padding:var(--s4) var(--s5)}.notice{background:var(--warn-tint);border-color:#e7d3b6}.empty{color:var(--ink-2);text-align:center;padding:var(--s6) var(--s5)}.h2{margin:0;font-size:18px;font-weight:700;letter-spacing:-.015em}.h3{margin:0 0 var(--s2);font-size:14px;font-weight:700}.toolbar{display:grid;gap:var(--s3);margin-bottom:var(--s4)}.field-row{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap}.form-grid{display:grid;gap:var(--s3)}.form-grid>label:not(.inline){max-width:520px}.form-grid input.num{width:110px}.skip-section{display:grid;gap:var(--s2)}label{display:grid;gap:6px;font-size:13px;color:var(--ink-2)}.inline{display:flex;flex-direction:row;gap:var(--s2);align-items:center;color:var(--ink)}.inline.check{cursor:pointer;align-items:baseline;flex-wrap:wrap}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{background:var(--sheet);border:1px solid var(--rule-strong);padding:8px 10px;color:var(--ink);transition:border-color .15s var(--ease)}input:hover,select:hover,textarea:hover{border-color:var(--ink-3)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}input::placeholder,textarea::placeholder{color:#8a8379}textarea{width:100%;resize:vertical;margin-top:var(--s3)}input[type=checkbox]{accent-color:var(--ink);width:15px;height:15px}.grow{flex:1;min-width:0}.skips form input:not([type=date]):not([type=checkbox]),.admin input[type=email],.admin input[type=number]{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);border:1px solid var(--ink);background:var(--sheet);color:var(--ink);padding:8px 16px;font-weight:600;font-size:13.5px;cursor:pointer;white-space:nowrap;transition:background-color .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease)}.btn:hover,.btn.primary{background:var(--ink);color:#fff}.btn.primary:hover{background:#333;border-color:#333}.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-2);font-weight:500}.btn.ghost:hover{background:var(--select);color:var(--ink)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover{background:#8f2a20;border-color:#8f2a20}.btn.small{padding:4px 10px;font-size:12.5px}.btn:disabled,.btn:disabled:hover{opacity:.38;cursor:not-allowed;background:var(--sheet);color:var(--ink)}.btn.primary:disabled,.btn.primary:disabled:hover{background:var(--ink);color:#fff}.file-btn{color:var(--ink)}.seg{display:inline-flex;border:1px solid var(--ink);background:var(--sheet)}.seg.wrap{flex-wrap:wrap}.seg-btn{border:0;border-right:1px solid var(--ink);background:transparent;padding:7px 14px;cursor:pointer;color:var(--ink);font-size:13px;font-weight:500;white-space:nowrap;transition:background-color .15s var(--ease),color .15s var(--ease)}.seg-btn:last-child{border-right:0}.seg-btn:hover{background:var(--select)}.seg-btn.on{background:var(--ink);color:#fff;font-weight:600}.seg-btn .count{font-variant-numeric:tabular-nums;margin-left:6px;opacity:.6;font-weight:500}.seg-btn.on .count{opacity:.75}.stats{display:flex;align-items:baseline;flex-wrap:wrap;margin:0 0 var(--s4);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.stat{display:flex;align-items:baseline;gap:8px;padding:10px 20px 10px 0;margin-right:20px;border-right:1px solid var(--rule)}.stat:last-of-type{border-right:0}.stat-v{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-l{color:var(--ink-2);font-size:12.5px}.stat.danger .stat-v{color:var(--danger)}.stat.warn .stat-v{color:var(--warn)}.stat.info .stat-v{color:var(--info)}.stat.ok .stat-v{color:var(--ok)}.stats>.muted{padding:10px 0}table.grid{width:100%;border-collapse:collapse;background:var(--sheet);border:1px solid var(--rule)}.grid th{text-align:left;font-weight:600;font-size:12px;color:var(--ink-2);letter-spacing:.02em;padding:10px 14px;border-bottom:1px solid var(--rule-strong);background:var(--sheet-2)}.grid td{padding:11px 14px;border-bottom:1px solid var(--rule);vertical-align:top}.grid tbody tr:last-child td{border-bottom:0}.grid.click tbody tr.row-item{cursor:pointer;transition:background-color .12s var(--ease)}.grid.click tbody tr.row-item:hover{background:var(--sheet-2)}.grid tr.sel td{background:var(--select);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.grid tr.ref td{color:var(--ink-2)}.grid tr.day td{background:var(--sheet);padding:22px 14px 8px;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--ink);border-top:2px solid var(--ink);border-bottom:1px solid var(--rule-strong)}.grid tbody tr.day:first-child td{border-top:0;padding-top:14px}.grid tr.day td .muted{font-size:12.5px;font-weight:500;margin-left:10px}.grid td.time{font-weight:600;font-variant-numeric:tabular-nums;width:64px}.grid td.who{font-weight:700}.timeline tr.day-start td{border-top:1px solid var(--rule-strong)}.badge,.pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;line-height:1.3;padding:2px 8px 2px 7px;margin:0 6px 3px 0;white-space:nowrap;color:var(--ink);background:var(--sheet-2);border:1px solid var(--rule)}.badge:before,.pill:before{content:"";width:7px;height:7px;background:var(--ink-3);flex:none}.badge.danger{background:var(--danger-tint);border-color:transparent;color:#7e261d}.badge.danger:before{background:var(--danger)}.badge.warn{background:var(--warn-tint);border-color:transparent;color:#6e410a}.badge.warn:before{background:var(--warn)}.badge.info{background:var(--info-tint);border-color:transparent;color:#2f4558}.badge.info:before{background:var(--info)}.badge.muted{color:var(--ink-2);margin-left:6px}.pill{background:transparent;border-color:transparent;padding-left:0;font-weight:600}.pill.brand:before{background:var(--brand)}.pill.danger:before{background:var(--danger)}.pill.warn:before{background:var(--warn)}.pill.ok:before{background:var(--ok)}.pill.info:before{background:var(--info)}.pill.action:before{background:var(--ink)}.pill.muted{color:var(--ink-2);font-weight:500}.memo-mark{font-size:12px;color:var(--ink-2);border-bottom:1px dotted var(--ink-3);margin-left:4px}.with-drawer{margin-right:440px}.drawer{position:fixed;top:0;right:0;bottom:0;width:440px;max-width:100vw;z-index:10;background:var(--sheet);border-left:1px solid var(--ink);overflow-y:auto;padding:var(--s5) var(--s5) var(--s7);box-shadow:-12px 0 32px -16px #1414142e;animation:drawer-in .26s var(--ease)}@keyframes drawer-in{0%{transform:translate(24px);opacity:.4}to{transform:none;opacity:1}}.drawer-head{display:flex;justify-content:space-between;gap:var(--s3);align-items:flex-start;padding-bottom:var(--s4);border-bottom:1px solid var(--ink)}.drawer-title{font-weight:700;font-size:18px;letter-spacing:-.015em}.drawer section{border-bottom:1px solid var(--rule);padding:var(--s4) 0}.drawer section:last-child{border-bottom:0}.drawer h3{margin:0 0 var(--s3);font-size:12px;color:var(--ink-2);font-weight:600;letter-spacing:.04em}.drawer p{margin:6px 0}.session{padding:10px 0;border-bottom:1px solid var(--rule)}.session:last-child{border-bottom:0}.session .t{font-weight:700;font-variant-numeric:tabular-nums}.center{min-height:100vh;display:grid;place-items:center;padding:var(--s4)}.login{width:min(380px,100%);display:grid;gap:var(--s4);padding:var(--s6);background:var(--sheet);border:1px solid var(--rule)}.login .logo{width:90px;margin-bottom:0}.login h1{margin:var(--s3) 0 0;font-size:22px;letter-spacing:-.02em}.login p{margin:0}.login .btn{width:100%;padding:11px 16px}.split{display:grid;grid-template-columns:232px minmax(0,1fr);gap:var(--s5);align-items:start}.side-list{position:sticky;top:var(--s6);max-height:calc(100vh - 64px);overflow-y:auto;display:grid;gap:var(--s2);padding:var(--s3)}.side-list input{width:100%}.names li{margin:0}.names li.group-start{margin-top:var(--s2);padding-top:var(--s2);border-top:1px solid var(--rule)}.name-btn{width:100%;text-align:left;border:0;background:transparent;padding:7px 8px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}.name-btn:hover{background:var(--select)}.name-btn.on{background:var(--ink);color:#fff;font-weight:600}.name-btn.on .badge{background:transparent;color:#fff;border-color:#fff6}.detail{min-width:0;display:grid;gap:var(--s4)}.skips,.admin,.zoomlinks,.upload{display:grid;gap:var(--s5);max-width:1000px}.admin>.seg{justify-self:start}.pick-list{border:1px solid var(--rule);margin-top:6px;max-height:280px;overflow-y:auto}.pick-list li{margin:0;border-bottom:1px solid var(--rule)}.pick-list li:last-child{border-bottom:0}.picked{border:1px solid var(--ink);padding:var(--s3);background:var(--sheet-2);display:grid;gap:2px;justify-items:start}.confirm-row td{background:var(--warn-tint)}.steps{margin:0;padding-left:18px;display:grid;gap:4px}.err-pre{margin:0;white-space:pre-wrap;font:inherit;color:var(--danger);max-height:120px;overflow:auto}.link-card{display:grid;gap:var(--s3)}.link-head b{font-size:15px}.cands{border-top:1px solid var(--rule)}.cands li.cand{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:8px 4px;margin:0;border-bottom:1px solid var(--rule)}.cands li.cand:hover{background:var(--sheet-2)}.cands .badge{margin:0 0 0 6px}.confirm-box{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;background:var(--sheet-2);border:1px solid var(--ink);padding:var(--s3)}.progress{height:6px;background:var(--ground);overflow:hidden;margin:var(--s2) 0}.progress>div{height:100%;width:100%;background:var(--ink);transform-origin:left;transition:transform .2s var(--ease)}.ok-box{border-color:var(--ok);background:var(--ok-tint)}.issues li{margin:4px 0;display:flex;gap:8px;align-items:baseline}.issue-mark{width:7px;height:7px;flex:none;transform:translateY(-1px);background:var(--warn)}.issue-mark.error{background:var(--danger)}@media(max-width:960px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:20;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4);padding:var(--s3) var(--s4);border-right:0;border-bottom:1px solid var(--rule);background:var(--ground)}.logo{width:59px;margin:0}.product-name{display:none}.nav{order:3;width:100%;display:flex;flex-wrap:wrap;gap:2px}.nav-item{width:auto;flex:none;padding:7px 11px;font-size:13.5px}.nav-divider{display:none}.side-foot{margin:0 0 0 auto;border-top:0;padding:0;display:flex;align-items:center;gap:var(--s3)}.side-team{font-size:13px}.side-user{display:none}.side-foot select{width:auto;max-width:140px}.main{padding:var(--s5) var(--s4) var(--s7)}.page-title{font-size:22px}.with-drawer{margin-right:0}.drawer{width:100vw;border-left:0}.split{grid-template-columns:1fr}.side-list{position:static;max-height:260px}table.grid{display:block;overflow-x:auto}.toolbar,.toolbar>*,.card{min-width:0}.card{padding:var(--s4)}.seg{flex-wrap:wrap;max-width:100%}.seg-btn{border-bottom:1px solid var(--ink);margin-bottom:-1px}.inline{flex-wrap:wrap}.inline input[type=date]{flex:1 1 128px;min-width:0}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.stat{margin:0;padding:10px 0;border-right:0;border-bottom:1px solid var(--rule)}}@media(max-width:640px){table.grid.click{display:block;overflow:visible;border:1px solid var(--rule)}.grid.click thead{display:none}.grid.click tbody,.grid.click tr.day{display:block}.grid.click tr.day td{display:block;padding:18px 14px 8px}.grid.click tr.row-item{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"time who status" "course course course" "sig sig sig";column-gap:12px;row-gap:4px;padding:12px 14px;border-bottom:1px solid var(--rule)}.grid.click tr.row-item td{display:block;padding:0;border:0;width:auto;background:none}.grid.click tr.row-item td:nth-child(1){grid-area:time}.grid.click tr.row-item td:nth-child(2){grid-area:who}.grid.click tr.row-item td:nth-child(3){grid-area:course;font-size:13px}.grid.click tr.row-item td:nth-child(4){grid-area:sig}.grid.click tr.row-item td:nth-child(5){grid-area:status;text-align:right}.grid.click tr.row-item.sel{background:var(--select);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.grid.click tr.row-item.sel td{border:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
