:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#1f2926;--muted:#6d7874;--line:#dde4e1;--line-strong:#c9d3cf;--paper:#fff;--canvas:#f2f5f3;--accent:#24594c;--accent-dark:#17443a;--accent-soft:#e4eee9;--radius-control:10px;--radius-card:14px;--control-height:44px;--slot-height:38px;--header-height:58px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--canvas);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Apple SD Gothic Neo,Noto Sans KR,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}input,select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-control);background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #24594c1a}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}h1,h2,p{margin:0}.desktopThemeToggle{z-index:95;border:1px solid var(--line);background:var(--paper);min-width:74px;min-height:32px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:11px;display:inline-flex;position:fixed;top:64px;right:22px;box-shadow:0 2px 8px #121c1914}.desktopThemeToggle span{align-items:center;gap:5px;font-size:15px;line-height:1}.desktopThemeToggle b{font-size:10px}.desktopThemeToggle .darkThemeLabel{display:inline-flex}.desktopThemeToggle .lightThemeLabel{display:none}.appShell{min-height:100vh}.topbar{background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:68px;padding:10px 24px;display:flex;position:relative}.brand,.topActions,.dateNavigation,.viewControls,.legend{align-items:center;display:flex}.brand{gap:11px}.brandLogo{background:url(/aire-spa-logo.png) 50%/contain no-repeat;width:118px;height:36px;display:block;position:absolute;right:24px}.eyebrow{color:var(--accent);letter-spacing:.14em;margin-bottom:3px;font-size:10px;font-weight:800}h1{font-size:22px;line-height:1.25}h2{font-size:20px}h3{margin:0;line-height:1.35}dl{margin:16px 0}dl>div{border-bottom:1px solid #edf1ef;grid-template-columns:86px minmax(0,1fr);align-items:center;padding:10px 0;display:grid}dt{color:var(--muted);font-size:11px;line-height:1.4}dd{overflow-wrap:anywhere;margin:0;font-size:12px;font-weight:700;line-height:1.45}.topActions{gap:12px;margin-right:136px}.onlineBookingNotice{border:1px solid var(--line);min-height:38px;color:var(--text);white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:0 13px;font-size:13px;text-decoration:none;display:inline-flex}.onlineBookingNotice.hasRequests{color:#5f491a;background:#fff7dc;border-color:#b89242}.onlineBookingNotice b{color:#fff;background:#b89242;border-radius:10px;place-items:center;min-width:20px;height:20px;font-size:11px;display:grid}.systemBadge{display:none}.systemBadge i{background:#d29e3d;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.primary{min-height:var(--control-height);border:1px solid var(--accent);border-radius:var(--radius-control);background:var(--accent);color:#fff;padding:0 17px;font-size:14px;font-weight:700}.primary:hover{background:var(--accent-dark)}.newReservationButton{min-height:38px;padding:0 14px;font-size:13px}.mainNav{background:var(--paper);border-bottom:1px solid var(--line);gap:4px;height:51px;padding:6px 24px 0;display:flex}.mainNav button,.mainNav a,.mainNav>span{color:#53625d;background:0 0;border:0;border-bottom:3px solid #0000;place-items:center;padding:0 15px;font-size:13px;font-weight:600;text-decoration:none;display:grid}.mainNav button.active,.mainNav a.active,.mainNav>span.active{border-color:var(--accent);color:var(--accent);font-weight:800}.mainNav button:disabled{opacity:.58}.mainNav small{margin-left:4px;font-size:9px}.mainNav .logoutForm{margin-left:auto;display:flex}.mainNav .logoutForm button{cursor:pointer}.brandLink{color:inherit;text-decoration:none}.appShell .membershipWorkspace,.appShell .settlementWorkspace,.appShell .closingWorkspace,.appShell .expenseWorkspace,.appShell .handoverWorkspace,.appShell .settingsWorkspace,.appShell .checkoutWorkspace{width:calc(100% - 28px);max-width:1440px;margin-left:auto;margin-right:auto}.workspace{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);width:calc(100% - 28px);max-width:1360px;margin:14px auto;overflow:hidden;box-shadow:0 4px 20px #1b2f280a}.scheduleToolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.dateNavigation{gap:7px}.dateNavigation button{border:1px solid var(--line);background:#fff;border-radius:7px;width:36px;min-height:36px;font-size:20px}.dateNavigation .todayDirectButton{cursor:pointer;width:auto;min-width:58px;padding:0 14px;font-size:13px;font-weight:800}.calendarControl{position:relative}.dateNavigation .calendarButton{cursor:pointer;width:auto;min-width:58px;padding:0 14px;font-size:13px;font-weight:800}.calendarPopover{z-index:80;border:1px solid var(--line);background:#fff;border-radius:10px;width:260px;padding:12px;position:absolute;top:43px;left:0;box-shadow:0 12px 32px #121c192e}.calendarHeader{text-align:center;grid-template-columns:32px 1fr 32px;align-items:center;margin-bottom:9px;display:grid}.dateNavigation .calendarHeader button{width:32px;min-height:30px;font-size:17px}.calendarHeader strong{font-size:13px}.calendarWeekdays,.calendarDays{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.calendarWeekdays span{color:var(--muted);text-align:center;padding:4px 0;font-size:9px;font-weight:800}.dateNavigation .calendarDays button{background:0 0;border:0;border-radius:6px;width:100%;min-height:30px;font-size:10px}.dateNavigation .calendarDays button:hover{background:#edf5f2}.dateNavigation .calendarDays button.selected{background:var(--accent);color:#fff;font-weight:900}.dateNavigation h2{white-space:nowrap;margin-left:8px}.viewControls{gap:12px}.viewControls label{color:var(--muted);align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}select,input,textarea{border:1px solid var(--line-strong);background:#fff;border-radius:7px}.viewControls select{min-height:36px;padding:0 28px 0 10px}.staffSettingsButton{border:1px solid var(--line);min-height:36px;color:var(--accent);background:#fff;border-radius:7px;padding:0 11px;font-size:12px;font-weight:800}.boardExpandButton{border:1px solid var(--accent);background:var(--accent-soft);min-height:36px;color:var(--accent);border-radius:7px;padding:0 11px;font-size:12px;font-weight:800}.segmented{border:1px solid var(--line);background:#f5f7f6;border-radius:8px;padding:3px;display:flex}.segmented button{width:35px;min-height:30px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-size:12px;font-weight:700}.segmented button.selected{color:var(--accent);background:#fff;box-shadow:0 1px 4px #1b2f281f}.segmented button:disabled{opacity:.42}.segmented small{font-size:6px;line-height:6px;display:block}.mobileDensity{display:none}.viewNotice{color:#765f23;background:#fff9e8;border-bottom:1px solid #eadfbf;padding:10px 16px;font-size:12px}.legend{min-height:38px;color:var(--muted);gap:16px;padding:0 16px;font-size:11px}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:3px;width:8px;height:8px}.legend i.advance{background:#d1962f}.legend i.general{background:#5d8f80}.legend i.waiting{background:#d6a244}.legend i.arrived{background:#6788aa}.legend i.paid{background:#76519a}.legend strong{color:var(--ink);margin-left:auto}.historyButton{color:#623c81;background:#f5eff9;border:1px solid #cbb7da;border-radius:999px;min-height:28px;margin-left:auto;padding:0 10px;font-size:10px;font-weight:900}.legend .historyButton+strong{margin-left:0}.boardFrame{border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:500px;max-height:calc(100vh - 245px);overflow:auto}.scheduleGrid{grid-template-columns:72px repeat(var(--visible-count), minmax(var(--staff-column-min), 1fr));width:100%;min-width:100%;display:grid;position:relative}.stickyTop{z-index:20;box-shadow:0 1px 0 var(--line-strong);position:sticky;top:0}.corner,.therapistHeader{border-right:1px solid var(--line);border-bottom:1px solid var(--line-strong);background:#f7f9f8;height:58px}.corner{z-index:30;color:var(--muted);place-items:center;font-size:11px;font-weight:700;display:grid;left:0}.therapistHeader{place-items:center;padding:7px 9px;display:grid;position:relative}.therapistHeader.stickyTop{z-index:20;position:sticky;top:0}.therapistHeader span{white-space:nowrap;font-size:13px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.therapistHeader:not(.off) span{top:42%}.therapistHeader>small{color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:800;position:absolute;bottom:4px;left:3px;right:3px;overflow:hidden}.therapistHeader .workStatus{color:#4f806f;background:0 0;border:0;place-self:start;width:auto;min-height:auto;padding:0;font-size:10px;font-weight:800}.therapistHeader button{border:1px solid var(--line);width:28px;min-height:28px;color:var(--accent);background:#fff;border-radius:6px;position:absolute;right:7px}.therapistHeader .workStatus{bottom:2px;left:50%;right:auto;transform:translate(-50%)}.therapistHeader.off{color:#878d8a;background:#f1f1f1}.therapistHeader.off .workStatus{color:#666d69;background:#dedede;border-radius:999px;padding:2px 6px}.therapistHeader button:disabled{opacity:.35}.scheduleRow{display:contents}.timeLabel,.emptySlot{min-height:var(--slot-height);border:0;border-right:1px solid var(--line);background:#fff;border-bottom:1px dashed #e3e9e6;border-radius:0}.timeLabel{z-index:12;color:#53625d;background:#fafbfa;justify-content:center;align-items:flex-start;padding-top:5px;font-size:12px;font-weight:800;display:flex;position:sticky;left:0}.timeLabel small{color:#a16d29;margin-left:3px;font-size:8px}.timeLabel.nextDay{background:#fff9ed}.emptySlot{color:#0000;place-items:center;display:grid}.timeLabel.halfHour,.emptySlot.halfHour{border-bottom:1px solid var(--line)}.emptySlot:hover{background:var(--accent-soft);color:var(--accent)}.emptySlot span{font-size:15px}.emptySlot.offSlot{background-color:#f7f8f7;background-image:repeating-linear-gradient(135deg,#0000,#0000 8px,#6e767206 8px 9px)}.reservationCard{z-index:5;text-align:left;border:0;border-left:4px solid;border-radius:6px;flex-direction:column;align-self:stretch;align-items:flex-start;gap:4px;margin:2px 3px;padding:7px 8px;display:flex;overflow:hidden;box-shadow:0 1px 4px #223b3321}.reservationCard strong,.reservationCard span,.reservationCard small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.reservationCard strong{font-size:12px}.reservationCard span{font-size:11px}.reservationCard .serviceName{font-size:13px;font-weight:800;line-height:1.25}.reservationCard small{opacity:.78;font-size:10px}.prepaidBadge{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#6b408f;border:1px solid #7652a0;border-radius:999px;align-items:center;width:max-content;max-width:100%;padding:4px 8px;font-size:9px;font-weight:900;line-height:1;display:inline-flex;overflow:hidden;box-shadow:0 2px 7px #54307338}.reservationCard .prepaidBadge{margin-top:4px;display:inline-flex}.reservationCard .newCustomerBadge{min-height:23px;color:inherit;background:#ffffff85;border:1px solid #3d534b3d;border-radius:999px;flex:none;align-items:center;padding:0 7px;font-size:10px;font-weight:800;line-height:1;display:inline-flex}.reservationBadges{flex-wrap:wrap;align-items:center;gap:4px;width:100%;min-width:0;display:flex}.reservationBadges .prepaidBadge{margin-top:0}.drawerPrepaidBadge{vertical-align:middle;margin:0 0 4px 8px;padding:6px 9px;font-size:10px}.reservationCard.general{color:#204a3e;background:#dfeee8;border-color:#4d7c6e}.reservationCard.advance{color:#654c1a;background:#fff0ca;border-color:#c58b25}.reservationCard.waiting{color:#654c1a;background:#fff0ca;border-color:#c38d2d}.reservationCard.arrived{color:#2d506f;background:#e3edf7;border-color:#55789d}.reservationCard.in_service{color:#244b6f;background:#e8f0fa;border-color:#5079a5}.reservationCard.payment_pending{color:#6f4b10;background:#fff1d8;border-color:#d8992f}.reservationCard.paid{color:#533975;background:#eee7f7;border-color:#76519a}.reservationCard.outsideSchedule{outline-offset:-2px;outline:2px solid #b24b45}.reservationCard .scheduleBadge{color:#fff;opacity:1;background:#a33f3a;border-radius:999px;width:fit-content;padding:2px 5px;font-weight:900}.assignmentBadge,.depositBadge{border:1px solid #0000;border-radius:999px;align-items:center;width:fit-content;min-height:23px;padding:0 8px;font-weight:900;line-height:1;font-size:10px!important;display:inline-flex!important}.assignmentBadge.designated{color:#6b388f;background:#f1e7f8;border:1px solid #d9c0e9}.assignmentBadge.random{color:#365f79;background:#e8f1f6;border:1px solid #cbdde8}.assignmentBadge.selected{color:#37684f;background:#e5f1ea;border:1px solid #c5ddcf}.depositBadge.none{color:#687571;background:#eef1f0;border-color:#d9e0dd}.depositBadge.pending,.depositBadge.partial{color:#875f13;background:#fff0c9;border:1px solid #eed18c}.depositBadge.paid{color:#1f6956;background:#dcefe8;border:1px solid #b7dbcf}.depositBadge.extra,.depositBadge.full{color:#653887;background:#eee2f7;border:1px solid #d5bde8}.depositBadge.refund{color:#983f34;background:#ffe5df;border:1px solid #efc2b8}.boardMemoCard{z-index:7;color:#234f68;text-align:left;background:#e8f3fb;border:1px dashed #76a5c4;border-left:4px solid #3d7fa6;border-radius:6px;align-self:stretch;margin:2px 3px;padding:4px 7px;overflow:hidden;box-shadow:0 1px 3px #2b5c7a1f}.boardMemoCard strong,.boardMemoCard span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.boardMemoCard strong{font-size:9px}.boardMemoCard span{margin-top:2px;font-size:10px;font-weight:800}.boardMemoCard.overlapping{z-index:8;justify-self:end;width:45%;min-width:46px}.boardMemoCard.overlapping strong{display:none}.boardFooter{color:var(--muted);justify-content:space-between;padding:10px 16px;font-size:10px;display:flex}.drawerBackdrop{z-index:100;background:#121c1957;justify-content:flex-end;display:flex;position:fixed;inset:0}.detailDrawer{background:#fff;width:min(460px,100%);height:100%;padding:24px;animation:.18s ease-out slideIn;overflow-y:auto;box-shadow:-12px 0 35px #121c1929}@keyframes slideIn{0%{opacity:.7;transform:translate(24px)}}.drawerHeader{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:18px;display:flex}.drawerHeader h2{margin:0;font-size:22px;line-height:1.3}.drawerHeader .eyebrow{margin:0 0 5px;font-size:10px}.iconButton{border:1px solid var(--line);background:#fff;border-radius:8px;width:38px;height:38px;font-size:22px}.detailContent{padding-top:18px;font-size:13px}.reservationMeta{flex-wrap:wrap;align-items:center;gap:6px;min-height:28px;display:flex}.reservationMeta .statusPill,.reservationMeta .assignmentBadge,.reservationMeta .depositBadge,.reservationMeta .drawerPrepaidBadge{vertical-align:middle;align-items:center;min-height:26px;margin:0;padding:0 9px;line-height:1;font-size:10px!important;display:inline-flex!important}.statusPill{border-radius:999px;align-items:center;padding:6px 9px;font-size:11px;font-weight:800;display:inline-flex}.statusPill.confirmed{color:#204a3e;background:#dfeee8}.statusPill.waiting{color:#654c1a;background:#fff0ca}.statusPill.arrived{color:#2d506f;background:#e3edf7}.statusPill.in_service{color:#244b6f;background:#e8f0fa}.statusPill.payment_pending{color:#6f4b10;background:#fff1d8}.statusPill.paid{color:#533975;background:#eee7f7}.statusPill.no_show{color:#7b2f2f;background:#f5dddd}.statusPill.cancelled{color:#666;background:#eee}.statusPill.memo{color:#59496c;background:#f0ebf5}.detailContent dl{margin:18px 0}.detailContent dl div{border-bottom:1px solid #edf1ef;grid-template-columns:96px minmax(0,1fr);align-items:center;min-height:40px;padding:7px 0;display:grid}.detailContent dt{color:var(--muted);font-size:12px;line-height:1.4}.detailContent dd{overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:700;line-height:1.45}.drawerCustomerLink{width:fit-content;max-width:100%;color:var(--ink);flex-wrap:wrap;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.drawerCustomerLink strong{font-size:13px}.drawerCustomerLink span{color:#654181;background:#eee7f7;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900;line-height:1.2}.drawerCustomerLink b{color:var(--accent);font-size:12px}.drawerCustomerLink:hover strong,.drawerCustomerLink:focus-visible strong{color:var(--accent);text-decoration:underline}.drawerCustomerLink:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:3px;border-radius:5px}.detailContent .customerMemoRow{background:#faf7fc;border:1px solid #dfd4ea;border-left:4px solid #704494;border-radius:9px;min-height:auto;margin:8px 0;padding:11px 12px}.detailContent .customerMemoRow dt{color:#654181;font-weight:800}.detailContent .customerMemoRow dd{white-space:pre-wrap}.drawerActions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.drawerActions button,.drawerActions a{min-height:var(--control-height);border:1px solid var(--line);border-radius:var(--radius-control);color:var(--ink);text-align:center;background:#fff;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:800;line-height:1.2;display:inline-flex}.drawerActions a.primary{border-color:var(--accent);background:var(--accent);color:#fff}.drawerActions .danger{color:#9b3e3e}.reservationSmsPanel{background:#f8fbfa;border:1px solid #d8e2df;border-radius:9px;gap:8px;margin:0 0 12px;padding:12px;display:grid}.reservationSmsPanel>button{color:#185b49;background:#e1f1eb;border:1px solid #8ebdaf;border-radius:8px;min-height:42px;font-size:12px;font-weight:850}.reservationSmsPanel>button:disabled{cursor:wait;opacity:.65}.reservationSmsSent,.reservationSmsNotice{margin:0;font-size:11px;line-height:1.5}.reservationSmsSent{color:#20604f;font-weight:850}.reservationSmsSent time{color:var(--muted);font-size:10px;font-weight:700;display:block}.reservationSmsNotice{color:#8f433c}.reservationSmsBackdrop{z-index:90;background:#171f1c7a;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.reservationSmsDialog{background:var(--paper);border-radius:12px;width:min(520px,100%);max-height:calc(100vh - 32px);padding:20px;overflow:auto;box-shadow:0 18px 60px #0d18144d}.reservationSmsDialog h3{margin:0 0 10px;font-size:17px}.reservationSmsDialog .reservationSmsWarning{color:#765716;background:#fff0ca;border-radius:8px;margin:0 0 12px;padding:10px;font-size:11px;line-height:1.5}.reservationSmsDialog dl{margin:0 0 12px}.reservationSmsDialog dl div{grid-template-columns:90px minmax(0,1fr);min-height:34px;padding:5px 0}.reservationSmsDialog label{color:var(--muted);gap:6px;font-size:11px;font-weight:800;display:grid}.reservationSmsDialog textarea{resize:none;border:1px solid var(--line-strong);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:10px;font:12px/1.55 inherit}.reservationSmsActions{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.reservationSmsActions button{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:42px;font-weight:800}.reservationSmsActions button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.depositPanel{background:#f8fbfa;border:1px solid #d8e2df;border-radius:9px;margin:0 0 12px;padding:0 12px}.depositToggle{color:#215f50;text-align:left;cursor:pointer;background:0 0;border:0;width:100%;min-height:42px;padding:0;font-size:13px;font-weight:850}.depositForm{gap:12px;margin:0 -2px;padding:0 2px 12px;display:grid}.depositForm p,.depositForm small{color:#687571;margin:0;font-size:11px;line-height:1.5}.depositForm label{gap:6px;font-size:12px;font-weight:750;display:grid}.depositForm input,.depositForm select,.depositForm textarea{background:#fff;border:1px solid #cbd8d4;border-radius:9px;min-height:42px;padding:0 10px}.depositForm textarea{resize:vertical;min-height:70px;font:inherit;padding:10px;line-height:1.45}.depositHistory{gap:7px;padding:0 0 12px;display:grid}.depositHistory>strong{color:var(--muted);font-size:11px}.depositHistory>div{border:1px solid var(--line);background:var(--paper);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:8px 9px;display:grid}.depositHistory span{min-width:0;color:var(--muted);font-size:10px;line-height:1.4}.depositHistory b{font-size:11px}.depositHistory em{color:var(--muted);font-size:10px;font-style:normal;font-weight:800}.depositHistory button{color:#95443d;background:#fff7f6;border:1px solid #d7aaa5;border-radius:7px;min-height:30px;padding:0 8px;font-size:10px;font-weight:800}.depositHistory .reversed{opacity:.72}.visitButton{color:#185b49!important;background:#e1f1eb!important;border-color:#a9d4c5!important;font-weight:850!important}.reservationEditForm{grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;display:grid}.reservationEditForm label{color:var(--muted);gap:6px;font-size:12px;font-weight:800;display:grid}.reservationEditForm select,.reservationEditForm input,.reservationEditForm textarea{min-height:var(--control-height);padding:0 11px;font-size:14px}.reservationEditForm textarea{resize:vertical;min-height:86px;font:inherit;padding:10px;line-height:1.45}.reservationEditForm .fullRow{grid-column:1/-1}.reservationEditForm .formNotice{margin:0}.reservationEditForm .drawerActions{grid-column:1/-1;margin-top:5px}.auditToggle{color:#5f4770;background:#faf7fc;border:1px solid #d9d0df;border-radius:8px;justify-content:space-between;align-items:center;width:100%;min-height:44px;margin:0 0 12px;padding:0 12px;font-size:12px;font-weight:800;display:flex}.auditToggle strong{color:#fff;background:#6b408f;border-radius:999px;place-items:center;min-width:24px;height:24px;font-size:10px;display:grid}.auditTimeline{gap:0;margin:12px 0 16px;padding:0;list-style:none;display:grid}.auditTimeline li{grid-template-columns:18px 1fr;gap:9px;padding:0 0 17px;display:grid;position:relative}.auditTimeline li:not(:last-child):before{content:"";background:#ded7e3;width:1px;position:absolute;top:12px;bottom:0;left:5px}.auditDot{z-index:1;background:#6b408f;border:2px solid #fff;border-radius:50%;width:11px;height:11px;margin-top:3px;position:relative;box-shadow:0 0 0 1px #9b7ab2}.auditDot.cancelled{background:#b14b42;box-shadow:0 0 0 1px #c87b75}.auditTimeline strong,.auditTimeline time{display:block}.auditTimeline strong{margin-bottom:3px;font-size:12px}.auditTimeline time{color:var(--muted);margin-top:3px;font-size:9px}.auditEntry{min-width:0}.auditEntry>summary{cursor:pointer;padding-right:22px;list-style:none;position:relative}.auditEntry>summary::-webkit-details-marker{display:none}.auditEntry>summary:after{content:"＋";color:#6b408f;font-size:13px;font-weight:900;position:absolute;top:0;right:2px}.auditEntry[open]>summary:after{content:"−"}.auditEntry>summary span{color:#53605b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.45;display:block;overflow:hidden}.auditDetails{background:#faf7fc;border:1px solid #ded7e3;border-radius:8px;margin-top:9px;padding:9px 10px}.auditTimeline p{color:#35433d;margin:3px 0;font-size:10px;line-height:1.5}.auditDetails a{color:#5f4770;text-underline-offset:3px;margin-top:7px;font-size:10px;font-weight:800;text-decoration:underline;display:inline-flex}.auditEmpty{color:var(--muted);text-align:center;padding:34px 12px;font-size:11px}.reservationForm{gap:15px;padding-top:20px;display:grid}.reservationForm label{color:var(--muted);gap:6px;font-size:12px;font-weight:800;display:grid}.reservationForm input,.reservationForm select,.reservationForm textarea{width:100%;min-height:var(--control-height);color:var(--ink);padding:9px 11px;font-size:14px}.reservationForm textarea{resize:vertical}.customerSuggestions{background:#fbfdfc;border:1px solid #d5e0dc;border-radius:9px;gap:6px;max-height:300px;margin-top:-8px;padding:7px;display:grid;overflow-y:auto}.customerSuggestions button{text-align:left;cursor:pointer;background:#fff;border:1px solid #e1e9e6;border-radius:7px;grid-template-columns:1fr;gap:5px;min-height:54px;padding:10px 12px;display:grid}.customerSuggestions button:hover,.customerSuggestions button.selected{background:#e5f1ec}.customerSuggestions strong{font-size:13px}.customerSuggestions small{color:var(--muted);font-size:11px}.newCustomerToggle{width:100%;min-height:40px;color:var(--accent);background:#f4faf7;border:1px dashed #9bbcaf;border-radius:8px;font-size:11px;font-weight:900}.newCustomerForm{background:#f8fbfa;border:1px solid #c9ddd5;border-radius:9px;gap:9px;padding:12px;display:grid}.newCustomerForm>strong{color:var(--accent);font-size:12px}.newCustomerForm>div{grid-template-columns:1fr 1fr;gap:7px;display:grid}.newCustomerForm>div button{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:40px;font-weight:800}.newCustomerForm>div button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.customerPermanentMemo{background:#faf7fc;border:1px solid #dfd4ea;border-left:4px solid #704494;border-radius:9px;padding:12px 13px}.customerPermanentMemo strong{color:#654181;margin-bottom:5px;font-size:11px;display:block}.customerPermanentMemo p{color:#3f3745;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.55}.reservationSaveButton{z-index:5;min-height:48px;position:sticky;bottom:-1px;box-shadow:0 -12px 18px 10px #fff}.programPicker{border:0;gap:10px;margin:0;padding:0;display:grid}.programPicker legend{color:var(--muted);margin-bottom:6px;font-size:11px;font-weight:800}.categoryTabs{border:1px solid var(--line);background:#f4f6f5;border-radius:9px;grid-template-columns:repeat(4,1fr);gap:5px;padding:4px;display:grid}.categoryTabs button{min-height:38px;color:var(--muted);background:0 0;border:0;border-radius:7px;padding:0 5px;font-size:10px;font-weight:800}.categoryTabs button.selected{background:var(--accent);color:#fff;box-shadow:0 2px 7px #24594c2e}.programSummary{background:#f3f8f6;border:1px solid #cbdcd5;border-radius:9px;grid-template-columns:1fr auto;gap:4px 10px;padding:12px;display:grid}.programSummary span{color:var(--accent);grid-column:1/-1;font-size:9px;font-weight:900}.programSummary strong{font-size:12px}.programSummary b{color:var(--accent);font-size:12px}.programSummary small{color:#8a6726;grid-column:1/-1;font-size:9px;line-height:1.45}.additionalPrograms{gap:8px;display:grid}.additionalPrograms>div{grid-template-columns:minmax(0,1fr) auto;gap:7px;display:grid}.additionalPrograms select{min-width:0;min-height:42px;padding:0 9px}.additionalPrograms button{border:1px solid var(--line);min-height:42px;color:var(--accent);background:#fff;border-radius:8px;padding:0 11px;font-size:10px;font-weight:900}.additionalPrograms .addProgramButton{background:#f4faf7;border-style:dashed;width:100%}.reservationProgramList{gap:5px;margin:0;padding-left:17px;display:grid}.formRow{grid-template-columns:1fr 1fr;gap:10px;display:grid}.selectionRow{background:#f3f8f6;border:1px solid #cbdcd5;border-radius:9px;padding:12px}.formNotice{color:var(--muted);background:#f5f7f6;border-radius:7px;padding:10px;font-size:11px}.scheduleWarning{color:#785517;background:#fff2d9;border-top:1px solid #efd0a3;margin:0;padding:10px 14px;font-size:11px;font-weight:800}.fullWidth{width:100%}.fullWidth:disabled{background:#aeb9b5;border-color:#aeb9b5}.entryTypeSelector{border:1px solid var(--line);background:#f4f6f5;border-radius:9px;grid-template-columns:1fr 1fr;padding:3px;display:grid}.entryTypeSelector button{min-height:37px;color:var(--muted);background:0 0;border:0;border-radius:7px;font-weight:800}.entryTypeSelector button.selected{color:var(--accent);background:#fff;box-shadow:0 1px 5px #1b2f281f}.memoPosition{color:#5e506d;background:#f6f3f8;border-radius:8px;justify-content:space-between;padding:13px;font-size:12px;display:flex}.deleteMemoButton{color:#77506d;background:#fff;border:1px solid #d8cbdc;border-radius:8px;width:100%;min-height:42px;font-weight:800}.memoDetailActions{gap:8px;display:grid}.memoDetailActions>button{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;min-height:42px;font-weight:800}.drawerHeader small{color:var(--muted);margin-top:5px;font-size:11px;display:block}.settingsHelp{color:var(--muted);margin:16px 0 10px;font-size:12px;line-height:1.55}.staffList{gap:7px;max-height:calc(100vh - 245px);margin:0 0 14px;padding:0;list-style:none;display:grid;overflow-y:auto}.staffList li{border:1px solid var(--line);border-radius:8px;grid-template-columns:28px 1fr auto auto;align-items:center;gap:9px;min-height:49px;padding:6px 8px;display:grid}.orderNumber{width:24px;height:24px;color:var(--muted);background:#f1f4f2;border-radius:6px;place-items:center;font-size:10px;font-weight:800;display:grid}.staffList strong{font-size:13px}.staffName{gap:2px;display:grid}.staffName small{color:var(--muted);font-size:8px;font-weight:800}.staffScheduleEditor{border-top:1px solid #e7ecea;grid-column:1/-1;gap:6px;padding-top:7px;display:grid}.scheduleEditRow{grid-template-columns:58px minmax(0,1fr) 10px minmax(0,1fr) auto;align-items:center;gap:5px;display:grid}.scheduleEditRow b{color:var(--muted);font-size:9px}.scheduleEditRow input{width:100%;min-width:0;height:34px;padding:0 5px;font-size:10px}.scheduleEditRow>button{min-height:34px;color:var(--accent);white-space:nowrap;background:#edf6f2;border:1px solid #bad1c8;border-radius:6px;padding:0 8px;font-size:9px;font-weight:900}.scheduleEditRow.dateOverride{border-top:1px dashed #e1e8e5;padding-top:6px}.scheduleEditRow.dateOverride.hasReset{grid-template-columns:58px minmax(0,1fr) 10px minmax(0,1fr) auto auto}.scheduleEditRow>button:disabled{opacity:.5}.scheduleEditRow .useDefaultButton{border-color:var(--line);color:var(--muted);background:#fff}.offToggle{min-width:49px;min-height:30px;color:var(--accent);background:#edf6f2;border:1px solid #bad1c8;border-radius:999px;font-size:10px;font-weight:800}.offToggle.selected{color:#616864;background:#e7e7e7;border-color:#c7c7c7}.orderButtons{gap:3px;display:flex}.orderButtons button{border:1px solid var(--line);background:#fff;border-radius:6px;width:30px;min-height:30px}.orderButtons button:disabled{opacity:.28}.confirmBackdrop{z-index:200;background:#121c1975;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.confirmDialog{background:#fff;border-radius:16px;width:min(420px,100%);padding:24px;box-shadow:0 18px 55px #121c193d}.confirmDialog h2{margin-bottom:10px;font-size:18px;line-height:1.4}.confirmDialog>p:not(.eyebrow){color:var(--muted);font-size:12px;line-height:1.6}.cancellationReasonField{color:var(--muted);gap:6px;margin-top:14px;font-size:11px;font-weight:800;display:grid}.cancellationReasonField textarea{resize:vertical;min-height:84px;font:inherit;padding:10px 11px;line-height:1.5}.confirmActions{grid-template-columns:1fr 1fr;gap:8px;margin-top:20px;display:grid}.confirmActions button:disabled{cursor:not-allowed;opacity:.45}@media (min-width:0){html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#edf4f1;--muted:#9daba5;--line:#34423d;--line-strong:#485851;--paper:#19221f;--canvas:#0f1513;--accent:#79b7a5;--accent-dark:#5e9d8b;--accent-soft:#263c35}html[data-theme=dark] .desktopThemeToggle{color:#d9e7e1;background:#26322e;box-shadow:0 2px 10px #00000047}html[data-theme=dark] .desktopThemeToggle .darkThemeLabel{display:none}html[data-theme=dark] .desktopThemeToggle .lightThemeLabel{display:inline-flex}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{color:var(--ink);background-color:#111916}html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:#718079}html[data-theme=dark] input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=dark] :is(.workspace,.membershipWorkspace,.settlementWorkspace,.closingWorkspace,.expenseWorkspace,.handoverWorkspace,.settingsWorkspace,.checkoutWorkspace,.membersWorkspace,.detailDrawer,.confirmDialog,.calendarPopover){background-color:var(--paper)}html[data-theme=dark] :is(.mainNav button,.mainNav a,.mainNav>span){color:#aab8b2}html[data-theme=dark] :is(.mainNav button.active,.mainNav a.active,.mainNav>span.active){color:var(--accent)}html[data-theme=dark] :is(.dateNavigation button,.staffSettingsButton,.iconButton,.drawerActions button,.drawerActions a,.therapistHeader button,.orderButtons button,.scheduleEditRow input,.scheduleEditRow button,.memoDetailActions>button,.deleteMemoButton,.historyButton,.periodForm button,.periodForm a,.staffPerformanceHeader button,.targetEditButton,.targetForm button,.commissionEditButton,.commissionForm select,.commissionForm button,.checkoutPayments button,.mixedPayments button,.membershipSearch a,.memberInfoShortcut,.entryTypeTabs,.settingsRow input,.settingsRow select,.settingsRow button){background-color:#222d29}html[data-theme=dark] :is(.segmented,.categoryTabs,.entryTypeSelector,.checkoutSummary,.settingsRow,.settlementCards article,.payrollSummary article,.performanceCard,.membershipCards article,.membershipLots article,.mixedPayments label,.categorySummary span,.addRow){background-color:#202a27}html[data-theme=dark] :is(.segmented button.selected,.entryTypeSelector button.selected){background-color:#34433d}html[data-theme=dark] :is(.corner,.therapistHeader,.sectionTitle,.expenseListHeader,.handoverListHeader,.membershipListHeader,.payrollTable thead,.membershipSearch){background-color:#202a27}html[data-theme=dark] :is(.timeLabel,.emptySlot){background-color:#161f1c;border-bottom-color:#2c3934}html[data-theme=dark] .timeLabel{color:#b7c5bf;background-color:#1c2622}html[data-theme=dark] .boardMemoCard{color:#b9dcef;background:#182a35;border-color:#527f9a #527f9a #527f9a #67a7cf;box-shadow:0 1px 3px #0000003d}html[data-theme=dark] :is(.therapistHeader.off,.emptySlot.offSlot){background-color:#252b29}html[data-theme=dark] :is(.detailContent dl div,dl>div,.membershipLedger article,.membershipListRow){border-bottom-color:#2c3934}html[data-theme=dark] .reservationSaveButton{box-shadow:0 -12px 18px 10px var(--paper)}html[data-theme=dark] :is(.depositPanel,.customerSuggestions,.programSummary,.selectionRow,.expenseForm,.handoverForm,.handoverForm .entryTypeTabs){background-color:#182722}html[data-theme=dark] .customerSuggestions button{color:var(--ink);background-color:#202a27;border-color:#34443e}html[data-theme=dark] .customerSuggestions button:hover,html[data-theme=dark] .customerSuggestions button.selected{background-color:#30443d}html[data-theme=dark] .customerSuggestions small{color:#b4c2bc}html[data-theme=dark] :is(.formNotice,.checkoutCustomers a,.checkoutCustomerList,.membershipDenied,.handoverDenied,.settlementDenied){background-color:#202a27}html[data-theme=dark] :is(.customerPermanentMemo,.detailContent .customerMemoRow,.auditToggle,.auditDetails,.memoPosition){background-color:#282331}html[data-theme=dark] :is(.customerPermanentMemo strong,.detailContent .customerMemoRow dt){color:#d4b7e8}html[data-theme=dark] :is(.customerPermanentMemo p,.detailContent .customerMemoRow dd){color:#eee8f2}html[data-theme=dark] :is(.auditEntry>summary span,.auditTimeline p){color:#d2d8d5}html[data-theme=dark] :is(.viewNotice,.payrollRule,.settlementCards .expenseCard,.payrollSummary .discountSummary,.expiryOverview){color:#e5c77d;background-color:#302817}html[data-theme=dark] :is(.settlementCards .collectionCard,.payrollSummary .spaSummary,.coupleNotice){background-color:#2b2332}html[data-theme=dark] .performanceCard.near{background-color:#302817}html[data-theme=dark] :is(.performanceCard.achieved,.payrollSummary .paySummary,.membershipCards article.usedCard){background-color:#1b3027}html[data-theme=dark] .loginThemeSurface{background:var(--canvas)}}.confirmActions button{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:42px;font-weight:800}.confirmActions .dangerConfirm{color:#fff;background:#a44742;border-color:#a44742}.orderButtons button:disabled{visibility:hidden}@media (min-width:801px){:root{--slot-height:40px;--header-height:50px}.topbar{min-height:58px;padding:8px 22px}.brandLogo{width:108px;height:32px;right:22px}h1{font-size:24px}.topActions{margin-right:124px}.mainNav{height:44px;padding:4px 20px 0}.mainNav button,.mainNav a,.mainNav>span{padding:0 13px;font-size:12px}.workspace{width:calc(100% - 48px);margin:16px auto}.scheduleToolbar{padding:10px 14px}.dateNavigation button,.viewControls button{min-height:34px}.dateNavigation h2{font-size:18px}.legend{min-height:34px;padding:0 14px}.boardFrame{min-height:520px;max-height:calc(100vh - 194px)}.corner,.therapistHeader{height:50px}.therapistHeader span{font-size:13px}.reservationCard{gap:4px;padding:7px 8px}.reservationCard .assignmentBadge,.reservationCard .depositBadge{min-height:23px;padding:0 8px;font-size:10px!important}.reservationCard .prepaidBadge{padding:4px 7px;font-size:9px}.emptySlot span{opacity:.22}.emptySlot:hover span{opacity:1}.boardFooter{padding:7px 14px;font-size:9px}.scheduleExpanded .topbar,.scheduleExpanded .mainNav{display:none}.scheduleExpanded .workspace{margin-top:8px;margin-bottom:8px}.scheduleExpanded{--slot-height:34px}.scheduleExpanded .scheduleToolbar{padding:6px 10px}.scheduleExpanded .dateNavigation button,.scheduleExpanded .viewControls button{min-height:30px}.scheduleExpanded .legend{min-height:28px;padding:0 10px}.scheduleExpanded .corner,.scheduleExpanded .therapistHeader{height:44px}.scheduleExpanded .boardFrame{height:calc(100vh - 105px);min-height:0;max-height:calc(100vh - 105px)}.scheduleExpanded .reservationCard{gap:2px;padding:4px 6px}.scheduleExpanded .reservationCard strong{font-size:12px}.scheduleExpanded .reservationCard span{font-size:11px}.scheduleExpanded .reservationCard .serviceName{font-size:13px}.scheduleExpanded .reservationCard[data-slots="2"]>small:not(.scheduleBadge),.scheduleExpanded .reservationCard[data-slots="2"] .assignmentBadge,.scheduleExpanded .reservationCard[data-slots="2"] .prepaidBadge{display:none!important}}@media (max-width:800px){:root{--slot-height:34px;--header-height:52px}.desktopThemeToggle{border-radius:50%;min-width:44px;min-height:44px;padding:0;top:auto;bottom:72px;right:14px}.desktopThemeToggle b{display:none}.topbar{padding:10px 14px}.brandLogo{right:14px}.topActions{margin-right:128px}.systemBadge{display:none}.mainNav{padding-left:12px;overflow-x:auto}.mainNav button,.mainNav a,.mainNav>span{white-space:nowrap}.workspace{width:auto;margin:8px}.scheduleToolbar{flex-direction:column;align-items:flex-start}.viewControls{justify-content:flex-start;gap:7px;width:100%;overflow-x:auto}.viewControls label,.boardExpandButton{display:none}.currentTimeButton,.staffSettingsButton{flex:none}.mobileDensity{border:1px solid var(--line);background:#f5f7f6;border-radius:8px;flex:none;padding:3px;display:flex}.mobileDensity button{min-height:30px;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:0 9px;font-size:10px;font-weight:800}.mobileDensity button.selected{color:var(--accent);background:#fff;box-shadow:0 1px 4px #1b2f281f}html[data-theme=dark] .mobileDensity{background:#202a27}html[data-theme=dark] .mobileDensity button.selected{background:#34433d}.dateNavigation h2{font-size:16px}.boardFrame{max-height:calc(100vh - 305px)}.scheduleGrid{grid-template-columns:46px repeat(var(--visible-count), 70px)}.scheduleGrid.mobile-detail{grid-template-columns:46px repeat(var(--visible-count), 112px)}.corner,.therapistHeader{height:52px}.corner{font-size:9px}.therapistHeader{padding:5px 4px}.therapistHeader span{font-size:10px}.therapistHeader .workStatus{font-size:8px}.therapistHeader button{width:22px;min-height:24px;font-size:11px}.timeLabel{padding-top:4px;font-size:10px}.emptySlot:not(:disabled){color:#24594c38}.reservationCard{border-left-width:3px;margin:1px 2px;padding:5px 4px}.reservationCard strong{font-size:10px}.reservationCard span{font-size:9px}.reservationCard .serviceName{font-size:11px}.reservationCard small{font-size:8px}.reservationCard .prepaidBadge{max-width:70px;padding:3px 4px;font-size:8px}.categoryTabs{grid-template-columns:1fr 1fr}.legend{gap:8px;overflow-x:auto}.legend span,.legend strong,.historyButton{white-space:nowrap;flex:none}.boardMemoCard{border-left-width:3px;margin:1px 2px;padding:3px 4px}.boardMemoCard strong{font-size:7px}.boardMemoCard span{font-size:8px}.boardMemoCard.overlapping{min-width:30px;padding-left:3px;padding-right:3px}.boardFooter{flex-direction:column;align-items:flex-start;gap:4px}.staffDrawer{padding:18px 14px}.scheduleEditRow,.scheduleEditRow.dateOverride.hasReset{grid-template-columns:52px minmax(0,1fr) 9px minmax(0,1fr)}.scheduleEditRow>button{grid-column:2/5}.scheduleEditRow.dateOverride.hasReset>button:not(.useDefaultButton){grid-column:2/4}.scheduleEditRow.dateOverride>.useDefaultButton{grid-column:4/5}}.appShell{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Apple SD Gothic Neo,Noto Sans KR,sans-serif}.appShell h1{line-height:1.25;font-size:24px!important}.appShell h2{line-height:1.3;font-size:20px!important}.appShell h3{line-height:1.4;font-size:16px!important}.appShell :is(p,li){line-height:1.5;font-size:13px!important}.appShell :is(label,legend){line-height:1.4;font-size:12px!important}.appShell :is(input,select,textarea){line-height:1.4;font-family:inherit!important;font-size:14px!important}.appShell button{line-height:1.35;font-family:inherit!important;font-size:13px!important}.appShell :is(small,time,dt){line-height:1.4;font-size:11px!important}.appShell dd{line-height:1.45;font-size:13px!important}.appShell :is(th,td){line-height:1.4;font-size:11px!important}.appShell :is([class*=Badge],[class*=badge],[class*=Status],[class*=status]){line-height:1.2;font-size:10px!important}.appShell :is([class*=Notice],[class*=notice],[class*=Guide],[class*=guide]){line-height:1.5;font-size:12px!important}.appShell :is([class*=Summary],[class*=summary]) :is(span,small),.appShell :is([class*=Meta],[class*=meta]){line-height:1.4;font-size:11px!important}.appShell .eyebrow{letter-spacing:.14em;font-size:10px!important}.appShell .mainNav :is(button,a,span){font-size:13px!important}.appShell :is(.dateNavigation>button,.membershipMonth a,.monthNavigation a,.handoverMonthNavigation a,.iconButton){font-size:20px!important}.appShell .calendarWeekdays span{font-size:10px}.appShell .calendarDays button{font-size:11px}.appShell .therapistHeader>small{font-size:9px!important}.appShell .therapistHeader .workStatus{font-size:10px!important}.appShell .reservationCard strong{font-size:12px}.appShell .reservationCard span{font-size:11px}.appShell .reservationCard .serviceName{font-size:13px}.appShell .reservationCard small{font-size:10px!important}.appShell .boardMemoCard strong{font-size:9px}.appShell .boardMemoCard span,.appShell .boardFooter{font-size:10px}@media (max-width:800px){.appShell h1{font-size:22px!important}.appShell h2{font-size:18px!important}.appShell h3{font-size:16px!important}.appShell .therapistHeader span{font-size:10px}.appShell .therapistHeader>small,.appShell .therapistHeader .workStatus{font-size:8px!important}.appShell .reservationCard strong{font-size:10px}.appShell .reservationCard span{font-size:9px}.appShell .reservationCard .serviceName{font-size:11px}.appShell .reservationCard small{font-size:8px!important}.appShell .boardMemoCard strong{font-size:7px}.appShell .boardMemoCard span{font-size:8px}}
