@import "https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&display=swap";:root{color:#28362f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green:#315c47;--muted:#7c887f;--line:#e6eae4;--soft:#eef3eb;background:#f7f8f5;font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #98b6a3}button{color:inherit}h1,h2,h3,p{margin:0}h1{letter-spacing:-1.2px;font-size:29px;font-weight:700;line-height:1.4}h2{letter-spacing:-.6px;font-size:18px}h3{font-size:16px}small{font-size:12px}button,input{-webkit-tap-highlight-color:transparent}.brand{letter-spacing:1.25px;color:#254d38;align-items:center;gap:11px;font-size:13px;font-weight:700;display:flex}.brand small{letter-spacing:1px;color:#91a092;margin-top:4px;font-size:11px;font-weight:500;display:block}.brand-mark{align-items:center;gap:3px;width:30px;height:36px;display:flex;transform:rotate(-8deg)}.brand-mark i{background:#376147;border-radius:6px;width:6px;height:23px}.brand-mark i:nth-child(2){background:#769277;height:35px}.brand-mark i:nth-child(3){background:#a8b89b;height:27px}.app-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;flex:0 0 222px;width:222px;padding:35px 23px 25px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar .brand{margin-bottom:55px}.nav-section{color:#99a39b;letter-spacing:1.5px;margin:0 12px 14px;font-size:10px}.nav-link{text-align:left;color:#7b867e;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;width:100%;margin-bottom:7px;padding:13px 14px;font-size:13px;font-weight:500;display:flex}.nav-link.active{color:#31583e;background:#edf3ec;font-weight:700}.nav-link:hover{background:#f3f6f1}.nav-count{background:#dfeadd;border-radius:5px;margin-left:auto;padding:1px 7px;font-size:11px}.sidebar-bottom{margin-top:auto}.instructor-mini{border-top:1px solid var(--line);align-items:center;gap:10px;margin-bottom:24px;padding-top:23px;font-size:12px;font-weight:600;display:flex}.instructor-mini small{color:#94a093;margin-top:4px;font-size:10px;font-weight:400;display:block}.avatar{color:#6c8062;background:#eaf0e4;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:12px;font-weight:600;display:inline-flex}.sidebar-action{align-items:center;gap:10px;width:100%;display:flex;color:#909a92!important;padding:10px!important;font-size:11px!important}.workspace{width:calc(100% - 222px);margin-left:222px}.topbar{border-bottom:1px solid var(--line);color:#8d978e;background:#fcfcfa;justify-content:space-between;align-items:center;height:76px;padding:0 44px;font-size:11px;display:flex}.topbar>span{align-items:center;gap:11px;display:flex}.admin-label{align-items:center;gap:8px;display:flex}.main{max-width:1350px;margin:0 auto;padding:40px 44px 25px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px;display:flex}.eyebrow{color:#748b74;margin-bottom:10px;font-size:11px;font-weight:500}.subtitle{color:#70806c;margin-top:10px;font-size:12px;line-height:1.7}.button,.primary{background:#fff;border:1px solid #dde3d8;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:10px 15px;font-size:12px;font-weight:500;line-height:1.5;transition:background .15s;display:inline-flex}.button:hover{background:#f2f5ef}.primary{background:var(--green);color:#fff;border-color:var(--green);padding:12px 17px}.primary:hover{background:#264b38}.button.small{gap:5px;padding:7px 10px;font-size:11px}.quiet{color:#7a877c;background:0 0;border:0;padding:7px}.button.muted{color:#7a847a;background:#f5f6f2}.full{width:100%}.refresh{white-space:nowrap}.preview-banner{background:#eef2e9;border:1px solid #e1e7d8;border-radius:9px;align-items:center;gap:14px;padding:17px 20px;display:flex}.banner-icon{color:#7b8f67;background:#e0e8d6;border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.preview-banner strong{color:#587049;margin-bottom:5px;font-size:12px;font-weight:600;display:block}.preview-banner div>span{color:#7b8772;font-size:11px;line-height:1.7;display:block}.preview-banner>.badge{white-space:nowrap;margin-left:auto}.badge{color:#8a9085;white-space:nowrap;background:#f0f1ed;border-radius:5px;align-items:center;gap:5px;padding:5px 8px;font-size:10px;font-weight:500;line-height:1.5;display:inline-flex}.badge.waiting{color:#547849;background:#eaf2e8}.badge.preview{color:#72845d;background:#e0e8d6}.badge.excluded,.badge.cancelled,.badge.booking-cancelled{color:#aa8068;background:#f5ece7}.badge.no-contact{color:#9d7b3a;background:#f8eed9}.live-dot{background:#8caa7d;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.live-dot.amber{background:#bd9662}.sync-line{color:#76826f;align-items:center;gap:7px;min-height:15px;margin:17px 1px 24px;font-size:10px;display:flex}.sync-count{margin-left:auto}.day-picker{gap:8px;width:fit-content;margin-bottom:24px;display:flex}.day-picker button{color:#929b90;background:0 0;border:1px solid #0000;border-radius:9px;flex-direction:column;align-items:center;width:62px;min-height:74px;padding:9px 6px 13px;display:flex;position:relative}.day-picker button span{font-size:10px}.day-picker button strong{margin-top:2px;font-size:19px;font-weight:500;line-height:1.5}.day-picker button i{background:#9eb48d;border-radius:50%;width:3px;height:3px;position:absolute;bottom:8px}.day-picker button.selected{color:#fff;background:#32543e;border-color:#32543e;box-shadow:0 3px 6px #315c4712}.day-picker button.selected i{background:#c5d7b4}.day-picker button:hover:not(.selected){background:#edf1e8}.today-grid{grid-template-columns:minmax(0,1fr) 250px;align-items:start;gap:24px;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:11px;overflow:hidden;box-shadow:0 2px 5px #39473802}.card-heading{justify-content:space-between;align-items:center;gap:12px;padding:23px 24px;display:flex}.section-kicker{letter-spacing:1.6px;color:#93a18d;margin-bottom:7px;font-size:9px;font-weight:500;display:block}.count{color:#79916c;margin-left:5px;font-size:13px;font-weight:500}.paused-strip{color:#98a18f;background:#fafbf8;border-top:1px solid #eff1eb;align-items:center;gap:6px;padding:9px 25px;font-size:10px;display:flex}.schedule-columns{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#77836f;background:#fcfdfb;grid-template-columns:minmax(0,1fr) 90px 123px;gap:8px;padding:13px 24px 12px;font-size:10px;display:grid}.schedule-row{text-align:left;background:#fff;border:0;border-bottom:1px solid #f0f2ec;grid-template-columns:minmax(0,1fr) 90px 123px;align-items:center;gap:8px;width:100%;padding:21px 24px;display:grid}.schedule-row:hover{background:#fbfcf8}.lesson-member{align-items:center;gap:12px;min-width:0;display:flex}.lesson-time{font-variant-numeric:tabular-nums;color:#4d5d4e;min-width:44px;font-size:14px;font-weight:500}.member-avatar{color:#8b9779;background:#f0f2e9;width:32px;height:32px}.lesson-member strong{font-size:13px;font-weight:500;display:block}.lesson-member small{color:#798571;white-space:nowrap;margin-top:5px;font-size:10px;display:block}.notify-time{color:#8b9985;font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:11px;display:flex}.notify-time svg{color:#aebaa4}.row-status{justify-content:space-between;align-items:center;gap:8px;display:flex}.row-status>svg{color:#b6beb0;flex-shrink:0}.card-foot{color:#78866c;align-items:center;gap:7px;padding:16px 24px;font-size:10px;line-height:1.6;display:flex}.digest-card{background:#fdfefb;padding:25px 23px}.digest-icon{color:#81956e;background:#eef3e7;border:1px solid #e3ead9;border-radius:11px;place-items:center;width:38px;height:38px;margin-bottom:21px;display:grid}.digest-card h2{font-size:16px}.digest-time{color:#526944;letter-spacing:-.5px;margin:21px 0 24px;font-size:17px;font-weight:400}.digest-time strong{letter-spacing:-1px;font-size:29px;font-weight:500}.digest-time span{color:#a4ae9b;letter-spacing:0;margin-top:6px;font-size:10px;display:block}.digest-person{border-top:1px solid #edf0e6;align-items:center;gap:10px;padding-top:19px;display:flex}.digest-person strong{font-size:12px;font-weight:500;display:block}.digest-person small{color:#9aa58e;margin-top:4px;font-size:10px;display:block}.digest-wait{color:#8f9e80;background:#f5f7f0;border-radius:6px;gap:8px;margin:20px 0;padding:12px 10px;font-size:10px;line-height:1.8;display:flex}.digest-wait svg{flex-shrink:0;margin-top:2px}.digest-card .button{background:#fff;font-size:11px}.small-note{color:#7b896e;align-items:flex-start;gap:9px;padding:19px 10px;font-size:10px;line-height:1.9;display:flex}.small-note svg{margin-top:2px}.page-footer{border-top:1px solid var(--line);color:#aeb4a8;letter-spacing:.2px;justify-content:space-between;margin-top:50px;padding:22px 0 5px;font-size:9px;display:flex}.page-footer span:first-child{letter-spacing:1.8px}.empty-state{text-align:center;color:#829272;flex-direction:column;align-items:center;gap:13px;padding:57px 24px;display:flex}.empty-state h2,.empty-state h3{color:#63735a;font-size:15px;font-weight:500}.empty-state p{color:#7c886f;font-size:11px;line-height:1.9}.empty-state .primary{margin-top:8px}.error-banner{color:#9f704a;background:#fbf5ef;border:1px solid #eadbce;border-radius:7px;align-items:center;gap:10px;margin-top:15px;padding:14px 17px;font-size:12px;line-height:1.7;display:flex}.error-banner svg{flex-shrink:0}.error-banner button{color:#89633f;background:0 0;border:0;flex-shrink:0;margin-left:auto;font-weight:600}.text-muted{color:#98a18f;font-size:11px}.search{color:#9ca78f;border:1px solid var(--line);border-radius:6px;align-items:center;gap:8px;padding:8px 11px;display:flex}.search input{color:#4c6046;background:0 0;border:0;outline:none;width:155px;font-size:11px}.search input::placeholder{color:#75836b}.member-columns,.member-row{grid-template-columns:200px minmax(0,1fr) 145px;align-items:center;gap:20px;padding:16px 24px;display:grid}.member-columns{border-block:1px solid var(--line);color:#9ca590;background:#fbfcf8;font-size:10px}.member-row{border-bottom:1px solid #eef1e9;padding-block:20px}.member-name{text-align:left;background:0 0;border:0;align-items:center;gap:11px;padding:0;display:flex}.member-name strong{font-size:13px;font-weight:500;display:block}.member-name small{color:#7b896e;margin-top:5px;font-size:10px;display:block}.member-passes{text-align:left;color:#849277;background:0 0;border:0;gap:3px;padding:0;font-size:11px;line-height:1.9;display:grid}.member-passes strong{color:#597249;margin-left:5px;font-weight:600}.member-passes small{color:#b29358;font-size:9px}.member-row>.button{justify-self:end}.activity-card{margin-top:22px}.activity-card .card-heading{border-bottom:1px solid var(--line)}.activity-row{border-bottom:1px solid #f2f3ee;align-items:center;gap:12px;padding:17px 24px;font-size:12px;display:flex}.activity-dot{background:#bccab0;border-radius:50%;width:6px;height:6px}.activity-row time{color:#99a28f;margin-left:auto;font-size:10px}.activity-empty{color:#7b8a6d;padding:30px 24px;font-size:12px}.history-empty{padding:60px 24px}.icon-button{color:#93a087;background:0 0;border:0;place-items:center;padding:6px;display:grid}.close-dialog{position:absolute;top:20px;right:20px}dialog{color:#34452f;border:1px solid #dde5d4;border-radius:14px;width:min(470px,100% - 28px);max-height:90vh;padding:0;box-shadow:0 30px 90px #1c341b22}dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#16251255}.dialog-inner{padding:33px 28px;position:relative}.dialog-inner h2{letter-spacing:-.6px;padding-right:20px;font-size:22px}.dialog-meta{color:#95a086;margin-top:10px;font-size:11px}.message-bubble{color:#52654a;white-space:pre-wrap;word-break:keep-all;background:#f1f5ec;border:1px solid #e5ebdc;border-radius:0 13px 13px;margin:27px 0 22px;padding:22px 20px;font-size:13px;line-height:1.95}.message-detail{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:15px;padding-bottom:21px;display:grid}.message-detail>span:not(.badge){color:#95a28b;font-size:11px}.message-detail strong{text-align:right;font-size:11px;font-weight:500}.message-detail .badge{justify-self:end}.preview-caption{color:#758269;margin:17px 0;font-size:10px;line-height:1.8}.cancel-button{color:#a2876a;background:#fffdf9;border-color:#e7dfd2;margin-top:9px}.recheck-result{color:#a27956;background:#faf0e7;border-radius:6px;gap:8px;margin-bottom:15px;padding:13px;font-size:11px;line-height:1.8;display:flex}.recheck-result.valid{color:#65884c;background:#edf4e8}.recheck-result svg{flex-shrink:0;margin-top:2px}.recheck-result small{opacity:.8;margin-top:3px;font-size:9px;display:block}.detail-section-title{color:#86977b;margin:27px 0 13px;font-size:12px}.pass-card{border:1px solid var(--line);border-radius:8px;margin-bottom:12px;padding:16px}.pass-card>div{justify-content:space-between;align-items:center;gap:8px;display:flex}.pass-card>div>strong{font-size:12px;font-weight:500}.pass-card>p{color:#839477;margin:14px 0;font-size:11px}.pass-card>p>strong{color:#52733f;margin-right:3px;font-size:22px;font-weight:500}.pass-card>p>span{color:#a1ae93;margin-left:10px;font-size:10px}.pass-card>small{color:#a7b19a;font-size:10px}.compact{padding:30px 0}.compact small{font-size:10px}.connection-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;padding:20px 0;font-size:12px;display:flex}.toast{color:#f5f9f0;z-index:5;white-space:nowrap;background:#304c39;border:1px solid #536e50;border-radius:8px;align-items:center;gap:9px;max-width:90vw;padding:14px 20px;font-size:12px;display:flex;position:fixed;bottom:28px;left:calc(50% + 111px);transform:translate(-50%);box-shadow:0 7px 25px #22371c25}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{color:#8a9980;flex-direction:column;justify-content:center;align-items:center;gap:40px;min-height:100vh;font-size:12px;display:flex}.login-page{background:radial-gradient(at 50% 15%,#e7ede1 0,#0000 65%),#f7f8f4;place-items:center;min-height:100vh;padding:30px 18px;display:grid;position:relative}.login-box{background:#fff;border:1px solid #e0e6d9;border-radius:15px;width:min(425px,100%);padding:43px 40px 29px;box-shadow:0 18px 80px #50643a09}.login-box .brand{margin-bottom:42px}.login-heading h1{letter-spacing:-1.2px;font-size:25px}.login-heading p{color:#738168;margin:12px 0 30px;font-size:11px;line-height:1.8}.login-box label{color:#76886a;margin-bottom:18px;font-size:11px;font-weight:500;display:block}.login-box input{color:#465d39;background:#fcfdfb;border:1px solid #e0e7d9;border-radius:7px;outline-color:#799768;width:100%;margin-top:8px;padding:12px 13px;font-size:12px;display:block}.login-box input::placeholder{color:#b0b9a7}.login-submit{justify-content:space-between;width:100%;margin-top:7px;padding-inline:16px}.login-foot{color:#7b886e;border-top:1px solid #eff2e9;justify-content:center;align-items:center;gap:7px;margin-top:28px;padding-top:22px;font-size:10px;display:flex}.login-note{letter-spacing:2.5px;color:#acb69d;font-size:9px;position:absolute;bottom:28px}.form-error{color:#ad744e;margin:14px 0;font-size:11px;line-height:1.8}@media (width>=1500px){.main{padding-top:50px}.page-heading{margin-bottom:30px}.today-grid{grid-template-columns:minmax(0,1fr) 270px}.schedule-row{padding-block:24px}}@media (width<=1150px){.sidebar{flex-basis:190px;width:190px;padding-inline:16px}.workspace{width:calc(100% - 190px);margin-left:190px}.topbar{padding-inline:28px}.main{padding:32px 28px 20px}.today-grid{grid-template-columns:minmax(0,1fr) 218px;gap:17px}.schedule-columns,.schedule-row{grid-template-columns:minmax(0,1fr) 73px 108px;gap:5px;padding-inline:17px}.lesson-member{gap:8px}.member-avatar{display:none}.lesson-time{min-width:37px;font-size:12px}.card-heading{padding:20px 18px}.digest-card{padding:22px 18px}.member-columns,.member-row{grid-template-columns:170px minmax(0,1fr) 140px;gap:12px}.toast{left:calc(50% + 95px)}}@media (width<=900px){.today-grid{grid-template-columns:1fr}.digest-column{grid-template-columns:1fr;gap:10px;display:grid}.digest-card{grid-template-columns:40px 1fr auto;align-items:center;gap:5px 14px;padding:22px;display:grid}.digest-icon{grid-row:1/3;margin:0}.digest-card .section-kicker{margin:0}.digest-card h2{grid-area:2/2}.digest-time{text-align:right;grid-area:1/3/3;margin:0}.digest-time strong{font-size:24px}.digest-person{grid-column:1/3;margin-top:15px;padding-top:15px}.digest-wait{grid-area:4/1/auto/4;margin:12px 0}.digest-card .button{grid-area:3/3;align-self:end;margin-bottom:3px}.small-note{padding:8px 0}.small-note br{display:none}.member-columns,.member-row{grid-template-columns:150px minmax(0,1fr) 110px}.member-row>.button{font-size:10px}.member-row>.button .badge{display:none}.preview-banner div>span{max-width:440px}.preview-banner>.badge{display:none}}@media (width<=700px){.sidebar{border:0;border-top:1px solid var(--line);z-index:4;background:#fff;width:100%;height:67px;padding:0;position:fixed;inset:auto 0 0}.sidebar>.brand,.nav-section,.sidebar-bottom{display:none}.sidebar nav{justify-content:space-around;height:100%;display:flex}.nav-link{color:#9ba68f;border-radius:0;flex-direction:column;justify-content:center;gap:5px;width:33.33%;margin:0;padding:7px 0;background:#fff!important;font-size:10px!important}.nav-link.active{color:#3e6635}.nav-count{display:none}.workspace{width:100%;margin:0;padding-bottom:67px}.topbar{height:59px;padding-inline:20px;font-size:10px}.main{padding:27px 18px 12px}.page-heading{gap:13px;margin-bottom:22px}.page-heading h1{font-size:23px}.eyebrow{margin-bottom:8px;font-size:10px}.subtitle{max-width:240px;margin-top:8px;font-size:10px}.refresh{flex-shrink:0;align-self:center;gap:0;width:37px;padding:10px;font-size:0}.refresh svg{width:16px}.preview-banner{gap:10px;padding:14px}.preview-banner strong{font-size:11px}.preview-banner div>span{font-size:10px}.banner-icon{width:29px;height:29px}.sync-line{gap:5px;margin-block:15px 20px;font-size:9px}.sync-count{font-size:9px}.day-picker{justify-content:space-between;gap:3px;width:100%;margin-bottom:20px}.day-picker button{width:13.5%;min-height:67px}.day-picker button strong{font-size:18px}.schedule-columns,.schedule-row{grid-template-columns:minmax(0,1fr) 68px 102px;gap:3px;padding-inline:15px}.schedule-columns{font-size:9px}.schedule-row{padding-block:21px}.lesson-member{gap:8px}.lesson-time{min-width:36px;font-size:12px}.lesson-member strong{font-size:12px}.lesson-member small{margin-top:3px;font-size:9px}.notify-time{gap:4px;font-size:10px}.notify-time svg{width:12px}.badge{padding:4px 6px;font-size:9px}.row-status{gap:3px}.row-status>svg{width:14px}.card-heading{padding:18px 16px}.card-heading h2{font-size:16px}.button.small{padding:6px 8px;font-size:10px}.section-kicker{margin-bottom:6px;font-size:8px}.card-foot{gap:6px;padding:14px 15px;font-size:9px}.digest-card{padding:19px 18px}.digest-card h2,.digest-time{font-size:14px}.digest-time strong{font-size:23px}.digest-time span{font-size:9px}.digest-card .button{font-size:10px}.small-note{font-size:9px}.page-footer{gap:10px;margin-top:30px;font-size:8px}.toast{padding:12px 15px;font-size:11px;bottom:82px;left:50%}.members-card .card-heading{flex-direction:column;align-items:flex-start;gap:15px}.search{width:100%;padding:10px}.search input{width:100%;font-size:12px}.member-columns{display:none}.member-row{border-top:1px solid #edf0e7;border-bottom:0;grid-template-columns:1fr auto;gap:12px;padding:19px 16px}.member-name{grid-area:1/1}.member-passes{grid-area:2/1/auto/3;padding-left:45px;font-size:10px}.member-row>.button{grid-area:1/2}.member-passes .text-muted{font-size:10px}.activity-card .card-heading{flex-direction:column;align-items:flex-start;gap:7px}.activity-card .text-muted{font-size:9px}.activity-row{gap:8px;padding:17px 16px;font-size:11px}.activity-row time{white-space:nowrap;font-size:9px}.empty-state{padding:45px 20px}.empty-state p{font-size:10px}.dialog-inner{padding:29px 22px}.dialog-inner h2{font-size:20px}.error-banner{gap:7px;padding:12px;font-size:10px}.error-banner button{font-size:10px}.login-box{padding:35px 27px 25px}.login-heading h1{font-size:23px}.login-note{bottom:18px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
