:root{--main:#2c5697;--main-ink:#1e3c6b;--main-10:#e5ecf5;--main-soft:#8fa9ca;--on-main-sub:#c3d5e9;--on-main-2:#d5e3f0;--pass:#0f7b5a;--pass-bg:#e3f5ee;--fail:#b5442e;--fail-ink:#8f2f1c;--fail-bg:#fbeae6;--warn:#8a6a17;--warn-ink:#6e5512;--warn-bg:#fdf6e9;--ink:#16181d;--ink-2:#5b6270;--ink-3:#8a91a0;--line:#e4e7ec;--line-2:#f0f2f5;--line-3:#dde1e7;--bg:#f7f8fa;--surface:#fff;--fill:#f2f4f7;--fill-2:#edeff3;--seg-on:#fff;--shadow:0 1px 2px #1418230a, 0 10px 28px -18px #14182329;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--main-ink:#9fbde3;--main-10:#17243a;--main-soft:#4a6a94;--pass:#5cc79f;--pass-bg:#14291f;--fail:#f0a392;--fail-ink:#f0a392;--fail-bg:#33201c;--warn:#e0bb5a;--warn-ink:#e0c88a;--warn-bg:#2d2615;--ink:#edeff4;--ink-2:#a0a7b4;--ink-3:#7b838f;--line:#262a33;--line-2:#23272f;--line-3:#333945;--bg:#0f1116;--surface:#171a21;--fill:#21252e;--fill-2:#2c313d;--seg-on:#333945;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Pretendard Variable,Pretendard,-apple-system,system-ui,sans-serif;font-size:15px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input{font:inherit;color:inherit}a{color:var(--main);text-decoration:none}.icon{letter-spacing:normal;white-space:nowrap;-webkit-user-select:none;user-select:none;font-family:Material Symbols Rounded;font-style:normal;font-weight:400;line-height:1;display:inline-block}.icon.fill{font-variation-settings:"FILL" 1}.app{min-height:100%;display:flex}.main{flex-direction:column;flex:1;min-width:0;display:flex}.page{flex-direction:column;flex:1;gap:13px;width:100%;max-width:720px;margin:0 auto;padding:16px 20px 96px;display:flex}.page.wide{max-width:none}.header{background:var(--surface);z-index:5;padding:14px 20px;position:sticky;top:0}.header.flat{padding-bottom:0}.header-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.h1{letter-spacing:-.02em;margin:0;font-size:21px;font-weight:800}.sub{color:var(--ink-3);font-size:12.5px;font-weight:600}.sidebar,.topbar{display:none}.tabbar{z-index:10;height:calc(66px + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line-2);display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--ink-3);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:700;display:flex}.tab .icon{font-size:24px}.tab.on{color:var(--main-ink);font-weight:800}@media (prefers-color-scheme:light){.tab.on{color:var(--main)}}@media (width>=960px){.tabbar{display:none}.page{max-width:1180px;padding:26px 28px}.sidebar{background:var(--surface);border-right:1px solid var(--line-2);flex-direction:column;flex:none;width:238px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.topbar{background:var(--surface);border-bottom:1px solid var(--line-2);z-index:5;flex:none;justify-content:space-between;align-items:center;height:74px;padding:0 28px;display:flex;position:sticky;top:0}.header.mobile-only{display:none}}@media (width<=959px){.desktop-only{display:none!important}}.brand{align-items:center;gap:10px;padding:0 8px;display:flex}.logo{background:var(--main);color:#fff;border-radius:11px;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;font-weight:800;display:flex}.nav{flex-direction:column;gap:2px;margin-top:26px;display:flex}.nav-item{height:44px;color:var(--ink-2);text-align:left;border-radius:12px;align-items:center;gap:11px;padding:0 12px;font-size:14.5px;font-weight:600;display:flex}.nav-item .icon{color:var(--ink-3);font-size:21px}.nav-item.on{background:var(--main-10);color:var(--main-ink);font-weight:800}.nav-item.on .icon{color:var(--main-ink);font-variation-settings:"FILL" 1}.nav-item:hover:not(.on){background:var(--fill)}.badge-count{color:#fff;background:#b5442e;border-radius:999px;margin-left:auto;padding:2px 7px;font-size:11px;font-weight:800}.session{background:var(--bg);border-radius:14px;margin-top:auto;padding:13px}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px}.card.dashed{border-style:dashed;border-color:var(--line-3);color:var(--ink-3);align-items:flex-start;gap:10px;font-size:12.5px;line-height:1.55;display:flex}.card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.card-title{font-size:14.5px;font-weight:800}.link{color:var(--main);font-size:12.5px;font-weight:700}@media (prefers-color-scheme:dark){.link{color:var(--main-ink)}}.row{border-top:1px solid var(--line-2);align-items:center;gap:12px;padding:10px 0;display:flex}.row-title{flex:1;min-width:0;font-size:14.5px;font-weight:600}.muted{color:var(--ink-3);font-size:12.5px;font-weight:600}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pill{background:var(--main-10);color:var(--main-ink);white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:11.5px;font-weight:700}.tag{background:var(--fill);color:var(--ink-2);white-space:nowrap;border-radius:6px;padding:3px 7px;font-size:10.5px;font-weight:800}.t-main{background:var(--main-10);color:var(--main-ink)}.t-pass{background:var(--pass-bg);color:var(--pass)}.t-fail{background:var(--fail-bg);color:var(--fail)}.period{background:var(--main-10);width:44px;height:26px;color:var(--main-ink);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.period.solid{background:var(--main);color:#fff}.btn{background:var(--main);color:#fff;border-radius:16px;justify-content:center;align-items:center;gap:7px;width:100%;height:54px;font-size:16.5px;font-weight:700;display:flex}.btn:disabled{opacity:.45;cursor:default}.btn.sm{border-radius:14px;height:44px;font-size:14.5px}.btn.ghost{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.btn.danger{background:var(--surface);border:1px solid var(--line);color:var(--fail);height:48px;font-size:15px}.btn.text{color:var(--ink-2);background:0 0;height:50px;font-size:15px}.btn.secondary{background:var(--fill);color:var(--ink-2);width:auto;padding:0 16px}.chips{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--surface);border:1px solid var(--line);height:34px;color:var(--ink-2);border-radius:999px;flex:none;align-items:center;padding:0 14px;font-size:13px;font-weight:600;display:flex}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:800}.chip.main.on{background:var(--main);border-color:var(--main);color:#fff}.seg{background:var(--fill);border-radius:999px;gap:4px;padding:3px;display:flex}.seg button{color:var(--ink-3);border-radius:999px;padding:5px 10px;font-size:11.5px;font-weight:700}.seg button.on{background:var(--seg-on);color:var(--ink);font-weight:800}.seg.icons button{padding:5px}.seg.icons .icon{font-size:18px}.utabs{gap:20px;margin-top:14px;display:flex}.utab{color:var(--ink-3);border-bottom:2.5px solid #0000;padding-bottom:11px;font-size:14.5px;font-weight:700}.utab.on{border-color:var(--ink);color:var(--ink);font-weight:800}.search{background:var(--fill);height:46px;color:var(--ink-3);border-radius:999px;align-items:center;gap:9px;padding:0 16px;display:flex}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:14.5px}.search .icon{font-size:20px}.bar{background:var(--fill-2);border-radius:999px;height:7px;display:block;overflow:hidden}.bar>span{background:var(--main);border-radius:999px;height:100%;display:block}.bar.soft>span{background:var(--main-soft)}.bar.fail>span{background:var(--fail)}.hero{background:var(--main);color:#fff;border-radius:22px;padding:19px}.hero .pill{color:#fff;background:#ffffff38;font-weight:800}.hero-meta{color:#e2ebf4;flex-wrap:wrap;align-items:center;gap:14px;margin-top:9px;font-size:13.5px;font-weight:600;display:flex}.hero-meta span{align-items:center;gap:5px;display:flex}.hero-meta .icon{font-size:17px}.avatar{background:var(--main-10);width:34px;height:34px;color:var(--main-ink);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:13.5px;font-weight:800;display:flex}.dot-wrap{width:24px;height:24px;position:relative}.dot-wrap .icon{font-size:24px}.dot{border:1.5px solid var(--surface);background:#b5442e;border-radius:999px;width:8px;height:8px;position:absolute;top:1px;right:1px}.kv{border-bottom:1px solid var(--line-2);align-items:center;padding:13px 0;display:flex}.kv:last-child{border-bottom:0}.kv>span:first-child{width:92px;color:var(--ink-3);flex:none;font-size:13px;font-weight:700}.kv>span:nth-child(2){flex:1;font-size:14px;font-weight:600;line-height:1.5}.grid-2{flex-direction:column;gap:13px;display:flex}@media (width>=960px){.grid-2{grid-template-columns:minmax(0,1fr) 352px;align-items:start;gap:20px;display:grid}.grid-2>div{flex-direction:column;gap:18px;display:flex}}.login{background:var(--surface);justify-content:center;align-items:flex-start;min-height:100%;display:flex}.login-inner{flex-direction:column;width:100%;max-width:420px;padding:56px 24px 32px;display:flex}.field-label{color:var(--ink-2);margin-bottom:7px;font-size:13px;font-weight:700;display:block}.field{border:1px solid var(--line-3);background:var(--bg);border-radius:14px;align-items:center;gap:8px;height:52px;padding:0 16px;display:flex}.field:focus-within{border:1.5px solid var(--main);background:var(--surface)}.field.error{border:1.5px solid var(--fail)}.field input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:15.5px}.field .icon{color:var(--ink-3);font-size:20px}.divider{color:var(--ink-3);align-items:center;gap:12px;margin-top:28px;font-size:12px;font-weight:700;display:flex}.divider:before,.divider:after{content:"";background:var(--line-2);flex:1;height:1px}.tt{gap:4px;display:flex}.tt-periods{flex-direction:column;flex:none;gap:4px;width:28px;padding-top:26px;display:flex}.tt-periods span{height:46px;color:var(--ink-3);justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.tt-days{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tt-head{gap:4px;height:22px;display:flex}.tt-head span{text-align:center;color:var(--ink-2);flex:1;align-self:center;font-size:11.5px;font-weight:800}.tt-head span.today{color:var(--main)}.tt-cols{gap:4px;display:flex}.tt-col{background:repeating-linear-gradient(to bottom, var(--fill) 0 46px, var(--surface) 46px 50px);border-radius:8px;flex:1;min-width:0;height:446px;position:relative}.tt-block{text-align:left;background:var(--main);color:#fff;border-radius:8px;padding:5px 6px;position:absolute;left:0;right:0;overflow:hidden}.tt-block b{word-break:keep-all;overflow-wrap:anywhere;font-size:10.5px;font-weight:800;line-height:1.25;display:block}.tt-block small{color:var(--on-main-sub);margin-top:2px;font-size:9.5px;font-weight:600;display:block}@media (width>=960px){.tt-block b{font-size:13px}.tt-block small{font-size:11.5px}}.days{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.day{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;width:48px;height:58px;display:flex}.day small{color:var(--ink-3);font-size:10.5px;font-weight:700}.day small.weekend{color:var(--fail)}.day b{font-size:15px;font-weight:800}.day.on{background:var(--main);border-color:var(--main)}.day.on small{color:var(--on-main-sub)}.day.on b{color:#fff}.slots{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;display:grid}.slot{background:var(--surface);border:1px solid var(--line);height:40px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;font-size:12.5px;font-weight:700;display:flex}.slot.taken{background:var(--line-3);border-color:var(--line-3);color:var(--ink-3);cursor:not-allowed}.slot.mine{background:var(--main-10);border-color:var(--main-soft);color:var(--main-ink);cursor:default;font-weight:800}.slot.sel{background:var(--main);border-color:var(--main);color:#fff;font-weight:800}.legend{color:var(--ink-3);flex-wrap:wrap;gap:12px;font-size:11px;font-weight:700;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:4px;width:11px;height:11px}.book-bar{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px 16px 16px}.sheet-backdrop{z-index:50;background:#16181d8c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:480px;padding:12px 22px calc(26px + env(safe-area-inset-bottom));border-radius:30px 30px 0 0;animation:.22s ease-out up}.sheet .grip{background:var(--line-3);border-radius:999px;width:40px;height:4px;margin:0 auto 18px}@media (width>=960px){.sheet-backdrop{align-items:center}.sheet{border-radius:24px;padding-bottom:26px}.sheet .grip{display:none}}@keyframes up{0%{opacity:0;transform:translateY(24px)}}.warn{background:var(--warn-bg);color:var(--warn-ink);border-radius:16px;gap:9px;padding:14px;font-size:12.5px;line-height:1.6;display:flex}.warn .icon{color:var(--warn);font-size:19px;line-height:1.3}.toast{background:var(--ink);color:var(--bg);z-index:60;box-shadow:var(--shadow);border-radius:14px;padding:12px 18px;font-size:14px;font-weight:700;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.notice-split{flex-direction:column;gap:10px;display:flex}.notice-card{background:var(--surface);border:1px solid var(--line);text-align:left;border-radius:18px;width:100%;padding:15px 16px;display:block}.notice-card .meta{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:9px;margin-top:9px;font-size:12px;font-weight:600;display:flex}.notice-card .meta i{color:var(--line-3);font-style:normal}.notice-card.on{border-color:var(--main);background:var(--main-10)}.file{border-top:1px solid var(--line-2);align-items:center;gap:11px;padding:13px 14px;display:flex}.file-ext{border-radius:10px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:10px;font-weight:800;display:flex}.body-text{white-space:pre-line;text-wrap:pretty;font-size:15.5px;line-height:1.75}@media (width>=960px){.notice-split{grid-template-columns:400px minmax(0,1fr);align-items:start;gap:20px;display:grid}.notice-split .detail{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:32px 36px;position:sticky;top:100px}.notice-split .detail .title{font-size:29px!important}}@media (width<=959px){.notice-split .detail.empty{display:none}}.empty-state{text-align:center;padding:24px 20px}.empty-state .icon{color:var(--line-3);font-size:34px}@media (width>=960px){.desktop-hide{display:none!important}.header{border-bottom:1px solid var(--line-2);padding-left:28px;padding-right:28px;top:74px}}@media (width<=959px){.notice-row{flex-wrap:wrap;gap:5px 7px;padding:9px 0}.notice-row .row-title{flex-basis:100%;order:3;font-size:14px}.notice-row>.muted:last-child{margin-left:auto}}
