@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;450;500;550;600;650;700;750;800&display=swap");:root{--bg:#f4f7fc;--surface:#fff;--ink:#18365e;--text:#263c59;--muted:#52657d;--primary:#1d4ed8;--primary-deep:#173da6;--line:#d4dfed;--soft:#edf3ff;--radius:15px;--red:#a33b43;font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;color-scheme:light;--font-caption:12px;--font-small:13px;--font-label:14px;--font-body:15px;--font-control:16px}*{box-sizing:border-box}body{margin:0;font-size:var(--font-body);letter-spacing:-.025em;font-weight:450;line-height:1.6}button,input,select,textarea{font:inherit;letter-spacing:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none;color:inherit}button:disabled{cursor:default;opacity:.72}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid #6388c8;outline-offset:4px}input,select,textarea{outline:none;border:1px solid #c9d6ee;border-radius:9px;background:#fff;color:var(--text);padding:12px 13px;width:100%;min-width:0;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:#3d74d2;box-shadow:0 0 0 3px #3d74d215}input::placeholder{color:#64748b}input:disabled,select:disabled{background:#edf1f9;color:#4f607d}select{cursor:pointer}svg{flex-shrink:0}small{font-size:var(--font-small)}strong{font-weight:600}.muted{color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.danger-button,.primary-button,.secondary-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;padding:11px 19px;font-size:var(--font-body);font-weight:600;transition:background .15s;white-space:nowrap}.primary-button{background:var(--primary);color:#fff}.primary-button:hover:not(:disabled){background:var(--primary-deep)}.secondary-button{border:1px solid var(--line);background:#fff}.secondary-button:hover:not(:disabled){background:#eff3fa}.danger-button{background:#ae5e50;color:#fff}.small{min-height:39px;padding:9px 14px;font-size:var(--font-label)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:8px}.icon-button:hover:not(:disabled){background:#e4ebf6}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:var(--font-label);color:#4f607d;padding:6px 8px;border-radius:6px;white-space:nowrap}.text-button:hover{color:var(--primary);background:#e4ebf7}.danger-text{color:var(--red)}.live-dot{display:inline-block;background:#5b82c6;width:6px;height:6px;border-radius:50%;flex-shrink:0}.brand{gap:11px;color:#20314f}.brand,.brand-icon{display:flex;align-items:center}.brand-icon{width:42px;height:45px;border-radius:11px;justify-content:center;background:#1d4ed8;color:#dee9fb}.brand strong{display:block;font-size:17px;font-weight:750;line-height:1.4;letter-spacing:-.065em}.brand span{display:block;font-size:var(--font-body);letter-spacing:.13em;font-weight:500;margin-top:1px}.eyebrow{font-size:var(--font-caption);font-weight:650;letter-spacing:.19em;color:#4f607d;margin-bottom:11px}.demo-banner{position:relative;z-index:40;justify-content:space-between;gap:10px;background:#d8e2f3;color:#2b436c;padding:9px 28px;font-size:var(--font-small);min-height:40px;border-bottom:1px solid #c2d1ec}.demo-banner,.demo-banner>span{display:flex;align-items:center}.demo-banner>span{gap:8px}.demo-banner strong{font-size:var(--font-small)}.demo-controls{display:flex;align-items:center;gap:16px}.demo-controls select{background:transparent;border:1px solid #adc0e2;padding:4px 8px;font-size:var(--font-caption);width:auto;border-radius:5px}.demo-controls>a{display:flex;align-items:center;gap:7px;white-space:nowrap}.app-shell{display:flex;min-height:100dvh}.sidebar{width:230px;flex-shrink:0;border-right:1px solid var(--line);background:#fff;padding:31px 23px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;z-index:25}.sidebar .brand{padding:1px 5px}.workspace-label{padding:17px 6px 34px;letter-spacing:.01em}.sidebar-section-label,.workspace-label{font-size:var(--font-caption);color:#4f607d}.sidebar-section-label{font-weight:500;padding:0 14px;margin-bottom:11px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav>button{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;text-align:left;font-size:var(--font-label);color:#4f607d;font-weight:500;border-radius:9px;min-height:46px}.sidebar nav>button>svg:last-child:not(:first-child){margin-left:auto}.sidebar nav>button.active{background:#e3eaf6;color:var(--primary);font-weight:650}.sidebar nav>button:hover{background:#edf1f9}.admin-nav-label{margin-top:30px;margin-bottom:6px}.sidebar-bottom{margin-top:auto;display:flex;align-items:center;gap:7px;justify-content:center;font-size:var(--font-caption);color:#4f607d;padding-top:14px;border-top:1px solid #c9d6ee}.main-shell{flex:1 1;min-width:0}.topbar{height:81px;padding:0 42px;background:#fffffffa;justify-content:space-between;border-bottom:1px solid var(--line)}.topbar,.topbar-left{display:flex;align-items:center}.topbar-left{gap:12px}.breadcrumb{display:flex;align-items:center;gap:14px;font-size:var(--font-caption);color:#4f607d}.breadcrumb>strong{color:#345183;font-weight:500}.profile-button{display:flex;align-items:center;gap:10px;padding:7px 0 7px 10px}.profile-avatar{height:32px;width:32px;background:#d9e3f3;border:1px solid #c8d5ed;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:var(--font-caption);color:#345183;font-weight:600}.profile-button>span{text-align:left;display:flex;flex-direction:column;gap:3px}.profile-button strong{font-size:var(--font-small)}.profile-button small{font-size:var(--font-caption);color:#4f607d}.profile-button>svg{margin-left:8px;color:#4f607d}.main-content{max-width:1480px;margin:0 auto;padding:35px 42px 0}.page-heading{justify-content:space-between;margin-bottom:28px;gap:16px}.page-heading,.page-heading h1{display:flex;align-items:center}.page-heading h1{font-size:27px;line-height:1.4;color:#19273f;font-weight:700;letter-spacing:-.065em;gap:8px}.heading-dot{width:5px;height:5px;display:inline-block;border-radius:50%;background:#7394ce;align-self:flex-end;margin-bottom:11px}.page-heading p{color:#4f607d;font-size:var(--font-small);margin-top:9px;line-height:1.7}.today-label{display:flex;align-items:center;gap:8px;font-size:var(--font-caption);color:#4f607d;padding:10px 13px;border:1px solid #c9d6ee;border-radius:7px;background:#f4f7fc}.overview{border:1px solid #c9d6ee;border-radius:var(--radius);background:#fff;margin-bottom:25px;min-height:132px}.overview,.overview-intro{display:flex;overflow:hidden}.overview-intro{position:relative;align-items:center;gap:16px;width:36%;padding:23px 25px;background:#e3eaf6}.mini-mark{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#d0dcf0;color:#345183;flex-shrink:0}.overview-intro strong{font-size:var(--font-body);line-height:1.8;color:#2e4773;font-weight:600;position:relative;z-index:1}.overview-intro>div>span{display:block;font-size:var(--font-caption);color:#4f607d;margin-top:8px;position:relative;z-index:1}.overview-leaf{position:absolute;width:145px;height:145px;color:#4f607d;right:-27px;bottom:-33px;opacity:.32;transform:rotate(10deg)}.overview-stat{flex:1 1;display:flex;justify-content:center;align-items:flex-start;flex-direction:column;margin:24px 0;padding:0 27px;border-right:1px solid #c9d6ee;min-width:0}.overview-stat:last-child{border:0}.overview-stat>span:first-child{font-size:var(--font-caption);color:#4f607d;white-space:nowrap}.overview-stat>strong{display:flex;align-items:baseline;gap:7px;color:#2b436c;font-size:29px;font-family:Arial,sans-serif;font-weight:500;letter-spacing:-.05em;margin-top:8px;line-height:1.1}.overview-stat>strong>small{font-family:Noto Sans KR,sans-serif;font-size:var(--font-small);font-weight:400;color:#4f607d;letter-spacing:-.02em}.stat-note{display:flex;align-items:center;gap:5px;font-size:var(--font-caption);color:#4f607d;margin-top:11px;white-space:nowrap}.stat-note .live-dot{width:4px;height:4px}.calendar-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 23px 18px}.week-toolbar{justify-content:space-between;margin-bottom:19px}.week-heading,.week-toolbar{display:flex;align-items:center}.week-heading{gap:13px}.week-heading h2{font-size:15px;color:#233657;font-weight:650}.week-heading>span{font-size:var(--font-caption);color:#4f607d;letter-spacing:0}.week-actions{display:flex;align-items:center;gap:4px}.today-button{padding:5px 10px;border:1px solid var(--line);margin-right:8px;color:#4f607d}.week-actions .icon-button{width:27px;height:27px;color:#4f607d}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.day-cell{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;border-radius:10px;min-height:106px;transition:background .15s;border:1px solid transparent}.day-cell:hover{background:#f0f4fa}.day-name{font-size:var(--font-caption);color:#4f607d;margin-bottom:9px}.day-cell>strong{font-size:24px;font-weight:500;letter-spacing:-.04em;color:#345081}.day-cell>strong,.day-count{font-family:Arial,sans-serif}.day-count{display:flex;align-items:center;gap:4px;color:#4f607d;font-size:var(--font-caption);margin-top:9px;min-height:20px}.day-count>i{width:3px;height:3px;background:#86a3d5;display:inline-block;border-radius:50%}.day-count>em{font-style:normal;font-family:Noto Sans KR,sans-serif}.day-count>em,.day-empty{font-size:var(--font-caption)}.day-empty{color:#4f607d}.day-cell.selected{background:#1d4ed8;color:#fff;box-shadow:0 4px 8px #1a3a7110}.day-cell.selected .day-name{color:#d1e0fa}.day-cell.selected>strong{color:#fff}.day-cell.selected .day-count{color:#d1e0fa}.day-cell.selected .day-count>i{background:#abbfe1}.day-cell.sunday:not(.selected) .day-name,.day-cell.sunday:not(.selected)>strong{color:#8a5242}.day-cell.saturday:not(.selected) .day-name,.day-cell.saturday:not(.selected)>strong{color:#4f607d}.today-indicator{width:3px;height:3px;border-radius:50%;background:#7294ce;position:absolute;top:8px;right:9px}.selected .today-indicator{background:#a2b8de}.area-switcher{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:24px 0 22px;scrollbar-width:none}.area-switcher::-webkit-scrollbar{display:none}.area-tab{display:flex;align-items:center;gap:8px;flex-shrink:0;border:1px solid #c9d6ee;padding:9px 16px 9px 10px;border-radius:8px;background:#fff;color:#4f607d;font-size:var(--font-small);font-weight:500;min-height:40px}.area-tab.active{background:#e5ecf7;border-color:#7394ce;color:#2c456f}.area-tab-number{width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;font-family:Arial,sans-serif;letter-spacing:0}.sage{background:#e7efff;color:#315c9c}.blue{background:#e4f3ff;color:#276081}.sand{background:#edf1f8;color:#4e6080}.rose{background:#edf0ff;color:#565b9e}.violet{background:#f0edff;color:#665797}.area-tab.active .area-tab-number{background:#ccd9ef;color:#345183}.my-dot{width:4px;height:4px;background:#2b5eb6;display:inline-block;border-radius:50%;margin-left:2px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:1px 0 17px;gap:12px}.section-heading>div{display:flex;align-items:center;gap:10px}.location-icon{width:39px;height:39px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:10px}.section-heading h2{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:650;color:#213454;line-height:1.4}.selected-date-label{font-weight:400;color:#4f607d;padding-left:11px;border-left:1px solid #c9d6ee;white-space:nowrap}.section-heading p{margin-top:5px;line-height:1.5}.reload-button,.section-heading p{font-size:var(--font-caption);color:#4f607d}.schedule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.slot-card{background:#fff;border:1px solid #c9d6ee;border-radius:12px;padding:21px 19px 17px;min-width:0;box-shadow:0 3px 8px #11254802}.slot-card.joined{border-color:#5b82c5;box-shadow:0 0 0 1px #5b82c515}.slot-topline{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:14px}.status-badge{font-size:var(--font-caption);border-radius:4px;padding:4px 6px;display:inline-flex;align-items:center;gap:3px;white-space:nowrap;font-weight:500}.status-badge.open{background:#e3eaf6;color:#4f607d}.status-badge.open>i{width:3px;height:3px;display:inline-block;background:#3e74d2;border-radius:50%}.status-badge.full{background:#f4eee9;color:#8a5f42}.status-badge.closed{background:#e8eef8;color:#4f607d}.status-badge.joined{background:#dbe4f3;color:#345183}.slot-time{font-size:25px;letter-spacing:-.04em;color:#223556;font-family:Arial,sans-serif;font-weight:500;display:flex;align-items:center;gap:8px;margin:0;line-height:1.2;white-space:nowrap}.slot-time>span{font-size:17px;color:#4f607d;font-weight:300}.capacity-row{display:flex;align-items:center;justify-content:space-between}.capacity-row>span{font-size:var(--font-small);color:#4f607d;display:flex;align-items:center;gap:5px}.capacity-row>strong{font-family:Arial,sans-serif;font-size:var(--font-body);font-weight:600;color:#345183}.capacity-row>strong.at-capacity{color:#8a6e42}.capacity-row>strong>span{font-size:var(--font-caption);color:#4f607d;font-weight:400}.capacity-track{height:3px;background:#e5ecf7;border-radius:4px;overflow:hidden;margin-top:10px;margin-bottom:14px}.capacity-track>div{height:100%;background:#7394ce;border-radius:4px}.participant-list{min-height:252px}.participant{width:100%;display:flex;align-items:center;gap:9px;padding:9px 0;min-height:45px;text-align:left;border-radius:5px;transition:background .15s}.participant:not(.vacant):hover{background:#eef2fa}.avatar{width:29px;height:29px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-caption);font-weight:500;flex-shrink:0}.avatar-0{background:#e7efff;color:#315c9c}.avatar-1{background:#e4f3ff;color:#276081}.avatar-2{background:#edf1f8;color:#4e6080}.avatar-3{background:#edf0ff;color:#565b9e}.participant-info{flex:1 1;min-width:0}.participant-info>div{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.participant-info strong{font-size:var(--font-caption);color:#345183;font-weight:500}.participant-info>span{display:block;margin-top:4px}.participant-info>span,.role-label{font-size:var(--font-caption);color:#4f607d}.role-label{background:#f4f2e8;padding:2px 4px;border-radius:3px;white-space:nowrap;display:inline-flex;line-height:1.5}.role-label.leader{color:#4f607d;background:#e3eaf6}.me-label{font-size:var(--font-caption);color:#4f607d}.participant.is-me .avatar{box-shadow:0 0 0 1px #5b82c5}.participant-chevron{color:#4f607d;margin-right:3px}.participant.vacant{gap:9px;color:#4f607d}.vacant-avatar{width:29px;height:29px;border:1px dashed #c6d4ed;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#4f607d;flex-shrink:0}.vacant>span{font-weight:400}.extra-places,.vacant>span{font-size:var(--font-caption)}.extra-places{color:#4f607d;display:block;padding:10px 0}.slot-footer{display:flex;gap:6px;margin-top:16px}.book-button{background:var(--primary);border:1px solid #c9d6ee;color:#fff;border-radius:7px;width:100%;padding:11px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--font-caption);font-weight:600;min-height:39px;border-color:var(--primary)}.book-button>svg:last-child:not(:first-child){margin-left:auto}.book-button>svg:first-child:not(:last-child){margin-right:auto}.book-button:hover:not(:disabled){background:var(--primary-deep);color:#fff}.book-button.disabled{background:#eaf0f7;border-color:#d1ddec;color:#52657d}.book-button.cancel{background:#fff3ed;border-color:#ebc9b9;color:#914528}.manage-slot-button{width:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:7px;color:#4f607d}.manage-slot-button:hover{background:#e4ebf7}.slot-date{display:block;margin:-6px 0 14px;font-size:var(--font-small);color:#4f607d}.schedule-note{display:flex;align-items:flex-start;gap:7px;margin:20px 0 0;color:#4f607d;font-size:var(--font-caption)}.schedule-note svg{margin-top:1px}.schedule-note p{line-height:1.9}.mobile-br{display:none}.app-footer{display:flex;justify-content:space-between;border-top:1px solid #c9d6ee;margin-top:33px;padding:20px 0 23px;font-size:var(--font-caption);color:#4f607d}.app-footer>span:first-child{font-weight:500}.empty-state{border:1px dashed #c8d6ee;border-radius:12px;background:#f6f8fc;min-height:240px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#4f607d;gap:12px;text-align:center;padding:25px}.empty-state h3{font-size:var(--font-body);font-weight:500;color:#4f607d}.empty-state p{font-size:var(--font-small);color:#4f607d}.empty-state small{font-size:var(--font-caption);color:#4f607d}.loading-panel{justify-content:center;padding:100px 10px;color:#4f607d;font-size:var(--font-label)}.error-banner,.loading-panel{display:flex;align-items:center;gap:12px}.error-banner{background:#faf1ec;border:1px solid #ecd8cb;padding:18px;border-radius:10px;color:#8a5b42;margin-bottom:24px}.error-banner strong{font-size:var(--font-label)}.error-banner p{font-size:var(--font-small);line-height:1.7;margin-top:6px}.error-banner .secondary-button{margin-left:auto}.boot-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;color:#4f607d}.boot-screen>span{font-size:var(--font-small)}.mobile-bottom-nav,.mobile-brand,.mobile-menu,.sidebar-shade{display:none}.admin-badge{color:#4f607d;background:#e3eaf6;padding:8px 12px;border-radius:7px;font-size:var(--font-caption);display:flex;align-items:center;gap:6px}.admin-tabs{display:flex;gap:5px;border-bottom:1px solid #c9d6ee;margin-bottom:25px;overflow-x:auto}.admin-tabs>button{padding:13px 19px 16px;display:flex;align-items:center;gap:8px;border-bottom:2px solid transparent;color:#4f607d;white-space:nowrap}.admin-tabs>button.active{color:#2c456f;border-bottom-color:#2f67c9;font-weight:600}.admin-panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:25px}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px}.admin-toolbar h2{font-size:17px;color:#2c456f;font-weight:600}.admin-toolbar h2>span{font-family:Arial,sans-serif;font-size:var(--font-body);background:#e4ebf7;color:#4f607d;padding:3px 6px;border-radius:5px;margin-left:5px}.admin-toolbar p{font-size:var(--font-small);color:#4f607d;margin-top:8px;line-height:1.7}.search-field{display:flex;align-items:center;gap:9px;border:1px solid #c9d6ee;border-radius:8px;background:#f7f9fd;padding:0 12px;max-width:360px;color:#4f607d;margin-bottom:20px}.search-field input{border:0;background:transparent;box-shadow:none;padding:12px 0;font-size:var(--font-small)}.table-heading,.table-row{display:grid;grid-template-columns:minmax(160px,1.3fr) minmax(100px,1fr) minmax(90px,.7fr) 36px;gap:12px;align-items:center}.table-heading{padding:10px 6px;font-size:var(--font-caption);color:#4f607d;background:#f3f6fb;border-radius:6px}.table-row{padding:15px 6px;border-bottom:1px solid #c9d6ee}.table-row:last-child{border:0}.table-person{display:flex;align-items:center;gap:10px;min-width:0}.table-person strong{font-size:var(--font-label);color:#345183;display:flex;flex-wrap:wrap;align-items:center;gap:7px}.table-person strong small{font-size:var(--font-caption);font-weight:400;color:#4f607d}.table-person>div:last-child>span{font-size:var(--font-caption);color:#4f607d;display:block;margin-top:5px}.table-phone{font-size:var(--font-small);color:#4f607d;letter-spacing:0}.table-status{display:flex;gap:6px;flex-wrap:wrap}.inactive{opacity:.6}.inactive-label{background:#e5ecf7;color:#4f607d}.area-admin-row{display:flex;gap:15px;align-items:center;padding:22px 0;border-bottom:1px solid #c9d6ee}.area-admin-row:first-child{padding-top:0}.area-admin-row:last-child{border:0;padding-bottom:0}.area-admin-row h3{font-size:var(--font-body);color:#335081}.area-admin-row p{font-size:var(--font-small);color:#4f607d;margin-top:6px}.area-admin-row small{font-size:var(--font-caption);color:#4f607d;display:block;margin-top:8px}.row-actions{gap:4px;margin-left:auto}.admin-filter,.row-actions{display:flex;align-items:center}.admin-filter{gap:10px;margin-bottom:20px}.admin-filter>label{font-size:var(--font-small);color:#4f607d}.admin-filter>select{width:auto;min-width:150px;font-size:var(--font-small);padding:9px 12px}.admin-filter>span{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:var(--font-caption);color:#4f607d}.template-row{display:flex;align-items:center;gap:15px;border-bottom:1px solid #c9d6ee;padding:18px 0}.template-row:last-child{border:0}.template-day{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;height:49px;min-width:43px;background:#e6ecf7;color:#4f607d;border-radius:9px;font-size:15px}.template-day>small{font-size:var(--font-caption);color:#4f607d}.template-info{min-width:0}.template-info>h3{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:var(--font-label);color:#345183}.template-info>h3>span{font-size:var(--font-small);color:#4f607d;letter-spacing:0;font-family:Arial,sans-serif;font-weight:400}.assignment-summary{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}.assignment-summary>span{display:flex;align-items:center;gap:4px;font-size:var(--font-caption);color:#4f607d}.assignment-summary i{height:3px;width:3px;background:#a5bbe0;border-radius:50%;display:inline-block}.assignment-summary i.leader-dot{background:#3b72d1}.assignment-summary small{font-size:var(--font-caption);color:#4f607d}.inline-empty{text-align:center;padding:45px 15px;color:#4f607d;font-size:var(--font-label)}.settings-panel{max-width:720px}.settings-panel>form{max-width:570px}.number-input{display:flex;align-items:center;gap:12px}.number-input input{max-width:130px}.number-input>span{font-size:var(--font-label);color:#4f607d}.settings-rules{margin:25px 0;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.settings-rules>div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;font-size:var(--font-small);color:#4f607d}.settings-rules strong{color:#4f607d;font-weight:500;text-align:right}.modal-backdrop{position:fixed;inset:0;background:#0b193169;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:80;display:flex;align-items:center;justify-content:center;padding:25px;animation:fade .15s ease-out}.modal{background:#fff;border-radius:17px;padding:29px;width:100%;max-width:460px;max-height:calc(100dvh - 50px);overflow-y:auto;box-shadow:0 25px 70px #0a162b30}.modal.wide{max-width:620px}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:26px}.modal-heading h2{font-size:19px;letter-spacing:-.05em;color:#263b5f;font-weight:650}.modal-heading p{font-size:var(--font-small);color:#4f607d;line-height:1.9;margin-top:10px}.modal-heading .icon-button{margin:-5px -7px 0 0;color:#4f607d}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:25px}.form-stack{display:flex;flex-direction:column;gap:19px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 15px}.field{display:flex;flex-direction:column;gap:9px;font-size:var(--font-label)}.field>span{font-size:var(--font-small);font-weight:500;color:#4f607d}.field small{font-size:var(--font-caption);color:#4f607d;line-height:1.8}.field input,.field select{font-size:var(--font-label)}.checkbox-field{display:flex;gap:9px;align-items:center;font-size:var(--font-small);color:#4f607d}.checkbox-field input{width:16px;height:16px;margin:0;accent-color:#2f67c7}.form-hint{font-size:var(--font-small);color:var(--muted);line-height:1.9}.color-options{display:flex;gap:10px}.color-option{width:33px;height:33px;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #e2e9f6}.color-option.selected{box-shadow:0 0 0 2px #3c73d1}.assignment-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:4px}.assignment-heading>strong{font-size:var(--font-label);color:#4f607d}.assignment-heading>span{font-size:var(--font-caption);color:#4f607d}.assignment-edit-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #c9d6ee}.assignment-edit-row>div{flex:1 1;min-width:0}.assignment-edit-row strong{display:block;font-size:var(--font-label);color:#4f607d}.assignment-edit-row>div>span{display:block;font-size:var(--font-caption);color:#4f607d;margin-top:5px}.assignment-edit-row>select{width:115px;font-size:var(--font-caption);padding:9px 8px}.assignment-add{display:flex;align-items:center;gap:9px}.assignment-add>select{font-size:var(--font-small)}.assignment-add .secondary-button{font-size:var(--font-small);flex-shrink:0;padding:10px 13px}.person-detail{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:27px}.person-detail-avatar{width:70px;height:70px;border-radius:50%;background:#e2e9f6;color:#4f607d;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:14px}.person-detail h3{font-size:19px;color:#314c7a;margin-bottom:8px}.person-detail>.role-label{font-size:var(--font-caption);padding:4px 8px}.detail-fields{border-top:1px solid #c9d6ee;margin-bottom:23px}.detail-fields>div{padding:17px 0;border-bottom:1px solid #c9d6ee;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--font-label)}.detail-fields>div>span{display:flex;align-items:center;gap:9px;color:#4f607d;font-size:var(--font-small)}.detail-fields strong{font-weight:500;color:#4f607d}.detail-fields a{display:flex;align-items:center;gap:8px;color:#4f607d;font-family:Arial,sans-serif;letter-spacing:.01em}.modal>.primary-button{width:100%}.private-note{font-size:var(--font-caption);color:#4f607d;gap:7px;margin-top:20px}.private-note,.profile-summary{display:flex;align-items:center}.profile-summary{gap:14px;margin-bottom:24px}.profile-summary h3{font-size:18px;color:#324e7d}.profile-summary>div>span{display:block;font-size:var(--font-small);color:#4f607d;margin-top:6px}.profile-avatar.large{height:52px;width:52px;font-size:15px}.user-avatar{flex-shrink:0;overflow:hidden}.user-avatar>img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.profile-photo-input{display:none}.profile-photo-editor{margin-bottom:20px}.profile-photo-editor .profile-summary{margin-bottom:14px}.profile-photo-editor .profile-summary>div:last-child{min-width:0;overflow-wrap:anywhere}.profile-photo-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.profile-photo-editor>.form-hint{margin:10px 0 0}.profile-photo-editor>.field-error{margin-top:8px}.password-section{margin:17px 0}.password-section>.text-button{padding:7px 0;color:#4f607d}.password-section>.form-stack{margin-top:17px}.logout-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:43px;width:100%;border:1px solid #c9d6ee;border-radius:8px;font-size:var(--font-small);color:#4f607d;margin-top:18px}.confirm-copy{font-size:var(--font-label);color:#4f607d;line-height:1.9}.notice{display:flex;align-items:flex-start;gap:8px;padding:12px;background:#eef2f9;border-radius:7px;font-size:var(--font-caption);color:#4f607d;line-height:1.8;margin-bottom:15px}.notice>svg{margin-top:1px}.roster-edit-list{margin-bottom:24px}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:100;display:flex;align-items:center;gap:12px;padding:16px 19px;background:#1d4ed8;color:#dee9fb;border-radius:11px;box-shadow:0 8px 30px #10244620;max-width:min(560px,calc(100vw - 32px));width:max-content;font-size:var(--font-label);line-height:1.7;animation:fade .2s ease-out}.toast.error{background:#a16855;color:#eef3fd}.toast>button{display:flex;color:inherit;opacity:.7;margin-left:5px;flex-shrink:0}.toast>span{overflow-wrap:anywhere}@keyframes fade{0%{opacity:0}to{opacity:1}}.login-page{display:grid;place-items:center;min-height:100dvh;padding:48px 24px;background:#f1f5fc}.login-panel{width:100%;max-width:440px;padding:40px;background:#fff;border:1px solid #d5e0f1;border-radius:20px;box-shadow:0 12px 40px #244b8510}.login-brand{display:flex;justify-content:center;margin-bottom:28px}.login-form{width:100%}.login-welcome{display:block;font-size:var(--font-small);color:#4f607d;margin-bottom:13px}.login-form h2{font-size:27px;letter-spacing:-.06em;color:#273c61;font-weight:650}.login-form>p{line-height:1.8;margin:0 0 28px;text-align:center}.login-form .field>span,.login-form>p{font-size:var(--font-small);color:#4f607d}.login-form input{background:#f6f8fc;border-color:#c9d6ee;padding:14px;font-size:var(--font-label)}.login-submit{margin-top:6px;min-height:49px;justify-content:space-between;padding:13px 17px}.login-help{border-top:1px solid #c9d6ee;margin-top:27px;padding-top:22px;display:flex;gap:8px;color:#4f607d;align-items:flex-start}.login-help svg{margin-top:3px}.login-help p{font-size:var(--font-caption);line-height:1.9}.login-error{font-size:var(--font-small);color:#8a5942;display:flex;align-items:flex-start;gap:8px;line-height:1.8}.login-error svg{margin-top:2px}.demo-link{display:flex;align-items:center;justify-content:center;gap:10px;color:#4f607d;font-size:var(--font-caption);margin-top:26px}.demo-link:hover{color:#345183}.login-bottom{display:block;margin-top:28px;text-align:center;line-height:1.7;font-size:var(--font-caption);color:#4f607d}@media (min-width:1600px){.main-content{padding-top:42px}.slot-card{padding:25px}.overview{min-height:145px}.calendar-panel{padding:23px 27px}.day-cell{min-height:112px}.slot-time{font-size:30px}.participant{min-height:48px}.participant-info strong{font-size:var(--font-label)}.participant-info>span{font-size:var(--font-caption)}.participant-list{min-height:290px}.book-button{font-size:var(--font-small)}.slot-card .avatar{width:33px;height:33px;font-size:var(--font-caption)}}@media (max-width:1250px){.sidebar{width:205px;padding:28px 17px 20px}.topbar{padding:0 29px}.main-content{padding:30px 29px 0}.overview-intro{padding:20px 17px;gap:11px;width:35%}.mini-mark{display:none}.overview-stat{padding:0 19px}.slot-card{padding:18px 14px 15px}.slot-time{font-size:23px;gap:9px}.area-tab{padding-right:13px}.calendar-panel{padding:18px}.schedule-grid{gap:12px}}@media (max-width:1050px){.sidebar{width:190px;padding:26px 12px 20px}.sidebar .brand{gap:8px}.brand strong{font-size:15px}.brand span{font-size:var(--font-small)}.brand-icon{width:35px;height:39px}.topbar{height:72px;padding:0 24px}.main-content{padding:28px 24px 0}.page-heading h1{font-size:25px}.today-label{display:none}.overview-intro{width:34%}.overview-stat{padding:0 14px}.overview-intro strong{font-size:var(--font-small)}.overview-intro>div>span,.overview-stat>span:first-child{font-size:var(--font-caption)}.overview-stat>strong{font-size:26px}.area-tab,.stat-note{font-size:var(--font-caption)}.area-tab{padding:8px 10px 8px 8px;gap:6px}.schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.slot-card{padding:23px 20px 18px}.slot-time{font-size:24px;gap:8px}.participant-info strong{font-size:var(--font-small)}.participant-info>span{font-size:var(--font-caption)}.participant{min-height:46px}.participant-list{min-height:276px}.admin-panel{padding:22px}.admin-tabs>button{font-size:var(--font-small);padding:13px}.admin-filter>span{display:none}.table-heading,.table-row{grid-template-columns:minmax(140px,1.3fr) minmax(85px,1fr) minmax(60px,.7fr) 30px;gap:7px}.table-phone{font-size:var(--font-caption)}}@media (max-width:800px){.sidebar{display:none}.topbar{height:69px;padding:0 25px}.main-content{padding:27px 25px 0;max-width:760px}.breadcrumb{font-size:var(--font-caption)}.mobile-menu{display:inline-flex;margin-left:-8px}.sidebar.mobile-open{display:flex;position:fixed;left:0;top:0;bottom:0;z-index:70;width:245px;height:100dvh;padding:31px 23px}.sidebar-shade{display:block;position:fixed;inset:0;background:#0c1b3460;z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar.mobile-open .brand strong{font-size:18px}.sidebar.mobile-open .brand-icon{width:41px;height:45px}.sidebar.mobile-open nav button{font-size:var(--font-body)}.overview-intro{width:36%;padding:22px}.overview-stat{padding:0 19px}.overview-intro strong{font-size:var(--font-label)}.overview-stat>span:first-child,.stat-note{font-size:var(--font-caption)}.schedule-grid{gap:18px}.slot-card{padding:23px 22px 18px}.login-form h2{font-size:24px}.demo-banner{padding:8px 20px}.demo-explainer{font-size:var(--font-caption)}}@media (max-width:600px){body{font-size:var(--font-body)}.demo-banner{padding:8px 16px;gap:5px;min-height:39px;font-size:var(--font-caption);align-items:center}.demo-banner>span{gap:5px}.demo-banner strong{font-size:var(--font-caption)}.demo-explainer{display:none}.demo-controls{gap:10px}.demo-controls select{font-size:var(--font-caption);padding:4px 6px}.demo-controls a{font-size:var(--font-caption);gap:4px}.topbar{height:67px;padding:0 19px;background:#fff}.breadcrumb{display:none}.mobile-brand{display:block;font-size:var(--font-label);font-weight:600;color:#345081;letter-spacing:-.055em}.profile-button,.topbar-left{gap:6px}.profile-button>span,.profile-button>svg{display:none}.profile-avatar{width:31px;height:31px;font-size:var(--font-caption)}.mobile-menu{width:31px;margin-left:-4px}.main-content{padding:26px 18px 85px}.page-heading{margin-bottom:23px;gap:10px}.page-heading .eyebrow{font-size:var(--font-caption);letter-spacing:.15em;margin-bottom:8px}.page-heading h1{font-size:26px;line-height:1.35}.heading-dot{height:4px;width:4px;margin-bottom:9px}.page-heading p{font-size:var(--font-caption);margin-top:9px;color:#4f607d}.overview{min-height:108px;margin-bottom:20px;border-radius:11px}.overview-intro{display:none}.overview-stat{margin:19px 0;padding:0 16px;align-items:flex-start}.overview-stat>span:first-child{font-size:var(--font-caption)}.overview-stat>strong{font-size:27px;margin-top:9px;gap:5px}.overview-stat>strong>small,.stat-note{font-size:var(--font-caption)}.stat-note{margin-top:10px}.calendar-panel{padding:17px 12px 13px;border-radius:12px}.week-toolbar{margin-bottom:14px;padding:0 3px}.week-heading{gap:7px}.week-heading h2{font-size:var(--font-body)}.week-heading>span{font-size:var(--font-caption)}.week-actions{gap:0}.today-button{font-size:var(--font-caption);padding:4px 7px;margin-right:4px}.week-actions>.icon-button{width:25px}.week-actions>.icon-button>svg{width:16px}.week-grid{gap:3px}.day-cell{min-height:88px;border-radius:8px}.day-name{font-size:var(--font-caption);margin-bottom:8px}.day-cell>strong{font-size:21px}.day-count{margin-top:8px;gap:3px}.day-count,.day-count>em{font-size:var(--font-caption)}.today-indicator{top:5px;right:6px}.area-switcher{gap:7px;margin:0 -18px;padding:19px 18px 21px}.area-tab{border-radius:7px;min-height:37px;padding:8px 12px 8px 8px;gap:7px}.area-tab,.area-tab-number{font-size:var(--font-caption)}.area-tab-number{width:19px;height:19px}.section-heading{margin-bottom:16px}.section-heading>div{gap:9px}.location-icon{width:35px;height:35px;border-radius:9px}.location-icon svg{width:18px}.section-heading h2{font-size:16px;gap:9px}.selected-date-label{font-size:var(--font-caption);padding-left:9px}.section-heading p{font-size:var(--font-caption);max-width:245px;line-height:1.6}.reload-button{padding:5px}.reload-button>span{display:none}.schedule-grid{grid-template-columns:minmax(0,1fr);gap:16px}.slot-card{padding:21px 21px 18px;border-radius:12px}.slot-topline{margin-bottom:12px}.status-badge{font-size:var(--font-caption);padding:5px 7px}.slot-time{font-size:24px;margin:0;gap:8px}.capacity-row>span{font-size:var(--font-small);gap:6px}.capacity-row>strong{font-size:var(--font-body)}.capacity-row>strong>span{font-size:var(--font-caption)}.capacity-track{margin-top:11px;margin-bottom:13px}.participant{min-height:49px;padding:8px 0;gap:11px}.participant-list{min-height:294px}.avatar{width:33px;height:33px;font-size:var(--font-caption)}.participant-info strong{font-size:var(--font-label)}.participant-info>span{font-size:var(--font-caption);margin-top:4px}.role-label{font-size:var(--font-caption);padding:2px 5px}.participant-info>div{gap:6px}.me-label{font-size:var(--font-caption)}.participant-chevron{width:16px}.vacant-avatar{height:33px;width:33px}.vacant>span{font-size:var(--font-caption)}.slot-footer{margin-top:14px;gap:7px}.book-button{min-height:44px;font-size:var(--font-label);border-radius:8px}.manage-slot-button{width:42px;border-radius:8px}.schedule-note{font-size:var(--font-caption);gap:6px;margin-top:21px;line-height:1.9}.schedule-note svg{width:14px}.mobile-br{display:block}.app-footer{font-size:var(--font-caption);margin-top:25px;padding:18px 0}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#ffffffed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;justify-content:space-around;z-index:30;padding:9px 12px calc(9px + env(safe-area-inset-bottom));border-top:1px solid #c9d6ee;box-shadow:0 -3px 10px #142d5703}.mobile-bottom-nav>button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;font-size:var(--font-caption);color:#4f607d;min-width:57px;min-height:42px}.mobile-bottom-nav>button.active{color:#324e7e}.mobile-bottom-nav>button svg{width:19px;height:19px;stroke-width:1.6}.toast{bottom:83px;font-size:var(--font-small);padding:14px 16px;gap:8px}.toast svg{width:17px}.admin-badge{font-size:var(--font-caption);padding:7px 9px}.admin-tabs{margin:0 -18px 20px;padding:0 18px;gap:0;scrollbar-width:none}.admin-tabs>button{font-size:var(--font-small);padding:11px 13px 14px;gap:7px}.admin-tabs svg{width:15px}.admin-panel{padding:18px 15px;border-radius:12px}.admin-toolbar{align-items:flex-start;margin-bottom:21px;gap:10px}.admin-toolbar h2{font-size:15px}.admin-toolbar p{font-size:var(--font-caption);max-width:215px}.admin-toolbar .primary-button{font-size:var(--font-caption);padding:9px 11px;min-height:34px;gap:4px}.admin-toolbar .primary-button svg{width:13px}.admin-toolbar h2>span{font-size:var(--font-small)}.search-field{max-width:100%;margin-bottom:15px}.search-field input{font-size:var(--font-caption)}.table-heading,.table-row{grid-template-columns:minmax(130px,1fr) 65px 29px;gap:6px}.table-heading>span:nth-child(2),.table-phone{display:none}.table-heading{font-size:var(--font-caption);padding:9px 4px}.table-row{padding:14px 2px}.table-person{gap:8px}.table-person .avatar{width:29px;height:29px;font-size:var(--font-caption)}.table-person strong{font-size:var(--font-small);gap:4px}.table-person strong small,.table-person>div:last-child>span{font-size:var(--font-caption)}.table-row>.icon-button{width:29px}.table-status{gap:4px}.table-status .role-label{font-size:var(--font-caption)}.area-admin-row{gap:10px;padding:18px 0}.area-admin-row h3{font-size:var(--font-body)}.area-admin-row p,.area-admin-row small{font-size:var(--font-caption)}.row-actions{gap:0}.row-actions>.icon-button{width:30px}.area-admin-row>.location-icon{width:32px;height:32px}.admin-filter select{font-size:var(--font-caption);min-width:135px;padding:9px}.template-row{gap:10px;padding:17px 0}.template-day{height:44px;min-width:34px;font-size:var(--font-body)}.template-day small{font-size:var(--font-caption)}.template-info>h3{font-size:var(--font-small);gap:6px}.template-info>h3>span{font-size:var(--font-caption)}.assignment-summary{gap:7px;margin-top:7px}.assignment-summary>span{gap:3px}.assignment-summary small,.assignment-summary>span{font-size:var(--font-caption)}.template-row .row-actions{flex-direction:column;gap:2px}.template-row .row-actions button{height:27px}.settings-rules>div{font-size:var(--font-caption);padding:11px 0}.settings-rules strong{max-width:180px;font-size:var(--font-caption)}.settings-panel .primary-button{width:100%;font-size:var(--font-small)}.modal-backdrop{padding:16px;align-items:center}.modal{padding:23px 20px;max-height:calc(100dvh - 32px);border-radius:14px}.modal-heading{margin-bottom:24px}.modal-heading h2{font-size:18px}.modal-heading p{font-size:var(--font-caption)}.form-grid{gap:17px 12px}.field{gap:8px}.field>span{font-size:var(--font-small)}.field input,.field select{font-size:var(--font-label);padding:11px 10px;min-height:43px}.form-stack{gap:18px}.form-hint{font-size:var(--font-caption)}.assignment-heading{flex-wrap:wrap;gap:7px}.assignment-heading>strong{font-size:var(--font-small)}.assignment-heading>span{font-size:var(--font-caption)}.assignment-edit-row{gap:7px}.assignment-edit-row>select{width:98px;font-size:var(--font-caption)}.assignment-edit-row strong{font-size:var(--font-small)}.assignment-edit-row>div>span{font-size:var(--font-caption)}.assignment-edit-row>.icon-button{width:29px}.assignment-add{gap:7px}.assignment-add>select{padding:12px 8px}.assignment-add>select,.notice,.private-note{font-size:var(--font-caption)}.modal-actions button{flex:1 1}.confirm-copy,.modal-actions button{font-size:var(--font-small)}.error-banner{padding:14px;align-items:flex-start;flex-wrap:wrap;gap:10px}.error-banner>div{flex:1 1}.error-banner strong{font-size:var(--font-small)}.error-banner button,.error-banner p{font-size:var(--font-caption)}.error-banner button{margin-left:auto}.login-page{padding:28px 16px}.login-panel{padding:32px 24px;border-radius:16px}.login-brand{margin-bottom:24px}.login-brand .brand-icon{width:39px;height:43px}.login-brand .brand strong{font-size:17px}.login-brand .brand span{font-size:var(--font-label)}.login-form h2{font-size:27px}.login-form>p{margin-bottom:30px}.login-form .field>span,.login-form>p{font-size:var(--font-small)}.login-form input{font-size:var(--font-body);padding:14px;min-height:49px}.login-help p{font-size:var(--font-caption)}.login-submit{font-size:var(--font-body);min-height:50px}.login-welcome{font-size:var(--font-small)}.login-bottom{font-size:var(--font-caption)}.demo-link{font-size:var(--font-small);margin-top:26px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.account-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.admin-toolbar:has(.account-toolbar-actions){align-items:flex-start;flex-wrap:wrap}.account-toolbar-actions .small{font-size:var(--font-caption);padding:9px 11px;min-height:37px}.user-import{display:flex;flex-direction:column;gap:18px}.import-instructions{display:flex;align-items:center;justify-content:space-between;gap:15px}.import-instructions strong{font-size:var(--font-label);color:#345082}.import-instructions p{font-size:var(--font-caption);color:#4f607d;line-height:1.8;margin-top:7px}.import-instructions>a{flex-shrink:0;font-size:var(--font-caption)}.import-upload{border:1px dashed #98b1db;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;padding:24px 18px;background:#f3f6fb;color:#4f607d;gap:10px;cursor:pointer;text-align:center}.import-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.import-upload:focus-within{outline:3px solid #6388c8;outline-offset:3px}.import-upload.loading{opacity:.65;cursor:default}.import-upload strong{font-size:var(--font-label);color:#345183;max-width:100%;overflow-wrap:anywhere}.import-upload>span:not(.secondary-button){font-size:var(--font-caption);color:#4f607d}.import-upload .secondary-button{font-size:var(--font-caption);pointer-events:none;margin-top:3px}.import-error,.import-progress{display:flex;align-items:flex-start;gap:8px;font-size:var(--font-small);line-height:1.8;color:#4f607d}.import-error{background:#faf0eb;color:#8b5641;border:1px solid #ecd8cb;padding:12px;border-radius:8px}.import-error>svg{margin-top:2px}.import-summary{display:flex;align-items:center;gap:13px;flex-wrap:wrap;font-size:var(--font-caption);color:#4f607d}.import-summary strong{font-size:var(--font-label);color:#345183;margin-right:auto}.import-preview-wrap{max-height:310px;overflow:auto;border:1px solid #c9d6ee;border-radius:8px;overscroll-behavior:contain}.import-preview{border-collapse:collapse;width:100%;min-width:500px;text-align:left;font-size:var(--font-caption)}.import-preview th{position:sticky;top:0;z-index:1;background:#e9eef8;color:#4f607d;font-size:var(--font-caption);font-weight:500;padding:11px 10px;white-space:nowrap}.import-preview td{padding:11px 10px;border-bottom:1px solid #c9d6ee;vertical-align:top;color:#4f607d;overflow-wrap:anywhere}.import-preview td:first-child{width:35px;font-family:Arial,sans-serif;color:#4f607d}.import-preview td:nth-child(2){max-width:90px}.import-preview td:nth-child(3){min-width:140px;max-width:225px}.import-preview td:nth-child(4){white-space:nowrap}.import-preview tr:last-child td{border:0}.import-preview strong{display:block;font-size:var(--font-small);color:#4f607d}.import-preview small{display:block;font-size:var(--font-caption);margin-top:4px;color:#4f607d}.import-preview .has-error{background:#fffaf6}.import-row-error{font-size:var(--font-caption);color:#8b5941;line-height:1.8;margin-top:5px}.import-status{display:inline-flex;align-items:center;gap:3px;color:#4f607d;white-space:nowrap}.import-status.error{color:#8b5841}.import-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.import-complete{text-align:center;padding:18px;background:#e7edf8;border-radius:10px;color:#4f607d;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px}.import-complete strong{font-size:var(--font-body);color:#334e7f}.import-complete p{font-size:var(--font-small);color:#4f607d}@media (max-width:600px){.account-toolbar-actions{justify-content:flex-start;width:100%;gap:6px}.account-toolbar-actions .small{padding:9px 10px;font-size:var(--font-caption)}.account-toolbar-actions svg{width:13px}.import-instructions{align-items:flex-start;flex-wrap:wrap;gap:10px}.import-instructions p{font-size:var(--font-caption)}.import-instructions strong{font-size:var(--font-small)}.import-instructions>a,.import-summary{font-size:var(--font-caption)}.import-summary{gap:9px}.import-actions button,.import-summary strong{font-size:var(--font-small)}.import-actions button{flex:1 1;padding:11px 12px}.import-preview-wrap{max-height:280px}}.temporary-password-card{margin-top:24px;padding:20px;border:1px solid var(--line,#c9d6ee);border-radius:16px;background:#f4f6fb;display:grid;gap:14px}.temporary-password-heading{display:flex;align-items:center;gap:8px;color:var(--primary,#283e64)}.temporary-password-heading h3{font-size:15px;margin:0}.temporary-password-card .form-hint{margin:0}.temporary-password-result{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;padding:15px;border-radius:10px}.temporary-password-result>span{font-size:var(--font-label);color:var(--muted,#345183);flex-basis:100%}.temporary-password-result>strong{font:700 26px ui-monospace,SFMono-Regular,monospace;letter-spacing:2px;flex:1 1;-webkit-user-select:all;user-select:all;color:#223556}.temporary-recipient{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--font-body)}.temporary-recipient>span{color:var(--muted,#345183)}.temporary-recipient>strong{flex:1 1}.temporary-password-card textarea{font-size:var(--font-body);line-height:1.7;resize:vertical;background:#fff;min-height:230px}.temporary-password-actions{display:flex;gap:10px}.temporary-password-actions>*{flex:1 1;justify-content:center}.temporary-password-confirm{display:grid;gap:14px;padding:14px;background:#e4ebf6;border-radius:10px}.temporary-password-confirm>p{font-size:var(--font-body);line-height:1.8;margin:0;color:#2c456f}.temporary-copy-status{display:flex;align-items:center;gap:6px;font-size:var(--font-label);color:#294067;margin:0}.required-password-screen{min-height:100dvh;background:#eaeff8;display:grid;place-items:center;padding:28px 16px}.required-password-panel{width:min(100%,440px);background:white;padding:32px;border:1px solid #c9d6ee;border-radius:22px;box-shadow:0 12px 50px #16305d10}.required-password-panel h1{font-size:21px;letter-spacing:-.7px;margin:16px 0 12px;color:#1f314f}.required-password-panel>p{font-size:var(--font-body);line-height:1.9;color:#345183;margin-bottom:24px}.required-password-icon{display:grid;place-items:center;width:56px;height:56px;background:#e3eaf6;border-radius:18px;color:#2e4773;margin-top:28px}@media (max-width:600px){.temporary-password-card{padding:15px;gap:12px}.temporary-password-actions{gap:8px}.temporary-password-actions>*{font-size:var(--font-label);padding:12px 8px}.required-password-panel{padding:24px}.temporary-password-result>strong{font-size:25px}}.temporary-password-card textarea{width:100%;border:1px solid #c9d6ee;border-radius:10px;padding:13px;font-family:inherit;color:#2a416a}.field-error{color:#8a3c2e;font-size:var(--font-label);line-height:1.8;margin:0}.roster-summary{display:block;width:100%;min-height:46px;padding:12px;border:1px solid #c9d6ee;border-radius:8px;background:#f1f5fb;color:#294068;text-align:left;white-space:normal;font:inherit}.roster-summary:hover{background:#e6ecf7;border-color:#b5c7e5}.roster-summary:focus-visible{outline:2px solid #2f68ca;outline-offset:3px}.roster-summary-content{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;min-width:0}.roster-name-group{display:inline-flex;align-items:center;flex:0 0 auto;max-width:100%}.roster-name{line-height:1.6;font-weight:400;overflow-wrap:anywhere}strong.roster-name{font-weight:750;color:#1f314f}.roster-empty{font-weight:400}.roster-dialog-count,.roster-empty{font-size:var(--font-label);color:#4f607d}.roster-dialog-count{display:flex;align-items:center;justify-content:space-between;padding:0 0 14px;border-bottom:1px solid #c9d6ee}.roster-dialog-count>strong{font-size:16px;color:#2f4976}.roster-dialog-count>strong>span{font-size:var(--font-label);font-weight:400;color:#4f607d}.roster-detail-list{list-style:none;padding:0;margin:0}.roster-detail-person{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid #c9d6ee}.roster-detail-person.selectable{grid-template-columns:24px minmax(0,1fr) auto;column-gap:8px}.roster-select-person{display:flex;align-items:center;justify-content:center;min-height:40px;cursor:pointer}.roster-select-person input{width:18px;height:18px;margin:0;accent-color:#2857a9;cursor:pointer}.roster-select-person input:disabled{cursor:default}.roster-detail-person:last-child{border-bottom:0;padding-bottom:3px}.roster-detail-info{min-width:0;display:grid;gap:4px}.roster-detail-name{display:flex;align-items:center;gap:8px;font-size:var(--font-body);color:#2a4169;overflow-wrap:anywhere}.roster-detail-name>span:not(.role-label){font-weight:400}.roster-detail-name>strong{font-weight:750;color:#203250}.roster-detail-name .role-label{flex-shrink:0}.roster-congregation{font-size:var(--font-label);color:#4f607d;line-height:1.5;overflow-wrap:anywhere}.roster-detail-phone{display:inline-flex;gap:6px;align-items:center;justify-content:flex-end;font-size:var(--font-label);color:#314c7c;line-height:1.6;max-width:165px;white-space:nowrap}.roster-detail-phone svg{flex-shrink:0}.roster-phone-unregistered{font-size:var(--font-small);color:#4f607d}@media (max-width:600px){.roster-summary{padding:13px 12px}.roster-detail-person{gap:10px;padding:12px 0}.roster-detail-phone{font-size:var(--font-label);max-width:145px}.roster-detail-name{font-size:var(--font-body)}}.roster-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.roster-cancel-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:7px 8px;border:1px solid #ecd5cb;border-radius:7px;background:#fcf3ef;color:#824636;font:inherit;font-size:var(--font-small);white-space:nowrap}.roster-cancel-button:hover:not(:disabled){background:#f9e8e0;border-color:#dfbcad}.roster-cancel-button:disabled{opacity:.65;cursor:default}.roster-cancel-confirm{grid-column:1/-1;display:grid;gap:9px;padding:14px;border:1px solid #ebd7cc;border-radius:10px;background:#fff8f3}.roster-cancel-confirm>p:first-child{font-size:var(--font-body);line-height:1.7;color:#704d36;margin:0}.roster-cancel-confirm .form-hint{margin:0;color:#8a6042}.roster-cancel-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:3px}@media (max-width:600px){.roster-cancel-button{min-height:40px}.roster-cancel-confirm-actions>*{flex:1 1;justify-content:center;min-height:40px}}.roster-message-footer{margin-top:16px;padding-top:14px;border-top:1px solid #c9d6ee}.roster-message-controls{display:flex;align-items:center;gap:10px}.roster-selected-count{margin-right:auto;font-size:var(--font-label);color:#345183;white-space:nowrap}.roster-copy-numbers{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:8px 0;min-height:40px;border:0;background:transparent;font:inherit;font-size:var(--font-small);color:#345183;white-space:nowrap}.roster-message-send{min-height:40px;padding:10px 12px;font-size:var(--font-label);white-space:nowrap}.roster-message-footer>.form-hint{margin:10px 0 0}.roster-message-status{margin:8px 0 0;font-size:var(--font-small);line-height:1.7;color:#345183}.roster-selected-numbers{width:100%;margin-top:8px;padding:10px;border:1px solid #c9d6ee;border-radius:7px;font:inherit;font-size:var(--font-label);color:#2a4169}@media (max-width:600px){.roster-detail-person.selectable{gap:8px}.roster-detail-name{flex-wrap:wrap;gap:4px}.roster-detail-actions{gap:6px}.roster-detail-phone{font-size:var(--font-small)}.roster-detail-phone svg{display:none}}@media (max-width:380px){.roster-detail-person.selectable{grid-template-columns:20px minmax(0,1fr) auto;column-gap:6px}.roster-detail-name{font-size:var(--font-body)}.roster-detail-name .role-label{font-size:var(--font-caption);padding:2px 4px}.roster-detail-actions{gap:4px}.roster-cancel-button{padding:7px 6px}.roster-message-controls{gap:8px}.roster-message-send{padding:10px}}.book-button.cancel:hover:not(:disabled){background:#ffe9df;color:#803b20}.admin-filter>select,.assignment-add>select,.assignment-edit-row>select,.field input,.field select,.field textarea,.login-form input,.roster-selected-numbers,.search-field input{font-size:var(--font-control)}.account-toolbar-actions .small,.admin-toolbar .primary-button,.book-button,.checkbox-field,.field>span,.import-actions button,.login-submit,.modal-actions button,.primary-button,.secondary-button{font-size:var(--font-label)}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{min-height:44px}.roster-name{font-size:var(--font-body)}.roster-detail-name{font-size:16px}.roster-congregation,.roster-detail-phone{font-size:var(--font-small)}.roster-cancel-button,.roster-detail-name .role-label{font-size:var(--font-caption)}.roster-detail-actions{flex-shrink:0}.profile-button strong,.sidebar nav>button,.table-person strong{font-size:var(--font-body)}.avatar,.profile-avatar,.table-person .avatar{font-size:var(--font-small)}.week-toolbar{gap:12px;flex-wrap:wrap}.week-heading{min-width:0}.week-actions{flex-shrink:0}.today-button{min-height:36px;font-size:var(--font-caption)}.week-actions .icon-button{width:36px;height:36px}.area-tab{min-height:44px;font-size:var(--font-label)}.area-tab-number{font-size:var(--font-caption);width:24px;height:24px}.section-heading h2{flex-wrap:wrap;gap:5px 10px}.selected-date-label{font-size:var(--font-caption)}.book-button{min-height:44px}.mobile-bottom-nav>button{font-size:var(--font-caption)}.admin-tabs>button{font-size:var(--font-label)}.admin-toolbar,.assignment-add,.detail-fields>div{flex-wrap:wrap}.area-admin-row>div,.table-person>div:last-child,.template-info{overflow-wrap:anywhere}.role-label,.status-badge{line-height:1.5}@media (max-width:600px){.mobile-brand{font-size:var(--font-body)}.main-content{padding-bottom:100px}.week-heading{flex-direction:column;align-items:flex-start;gap:2px}.week-heading h2{font-size:16px}.week-heading>span{font-size:var(--font-caption)}.calendar-panel{padding:16px 10px 12px}.week-toolbar{padding:0 3px;gap:8px}.today-button{padding:5px 8px;margin-right:0}.week-grid{gap:2px}.day-cell{min-height:104px}.day-count,.day-count>em,.day-name{font-size:var(--font-caption)}.day-count{gap:2px}.day-count>i{display:none}.day-cell>strong{font-size:24px}.section-heading p{max-width:100%;font-size:var(--font-caption)}.slot-card{padding:20px 18px 18px}.slot-time{font-size:24px}.status-badge{flex-shrink:0;font-size:var(--font-caption);padding:4px 7px}.roster-summary{padding:12px}.roster-summary-content{gap:5px 13px}.mobile-bottom-nav{padding-top:10px}.mobile-bottom-nav>button{min-height:48px}.table-heading,.table-row{grid-template-columns:minmax(0,1fr) 70px 32px}.table-person .avatar{width:32px;height:32px}.roster-detail-person.selectable{grid-template-columns:22px minmax(0,1fr) auto;column-gap:7px}.roster-detail-name{font-size:var(--font-body)}.roster-detail-phone{font-size:var(--font-small)}.demo-banner,.modal-actions,.roster-message-controls{flex-wrap:wrap}.demo-controls select{font-size:16px;min-height:36px;max-width:160px}}@media (max-width:380px){.area-switcher,.main-content{padding-left:14px;padding-right:14px}.area-switcher{margin-left:-14px;margin-right:-14px}.slot-card{padding:18px 14px 16px}.slot-time{gap:5px;font-size:22px}.status-badge{padding:4px 5px}.modal-backdrop{padding:10px}.modal{padding:22px 14px;max-height:calc(100dvh - 20px)}.form-grid{grid-template-columns:minmax(0,1fr)}.roster-detail-person.selectable{grid-template-columns:20px minmax(0,1fr) auto;column-gap:5px}.roster-detail-actions{gap:4px}}.app-footer{flex-direction:column;align-items:center;gap:18px}.push-setup-hint{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:6px 10px;width:100%;padding:10px 14px;border:1px solid #c8d8f3;border-radius:12px;background:#edf4ff;color:#294e85;font-size:14px;line-height:1.6}.push-setup-hint .text-button{min-height:44px;white-space:nowrap}.push-settings{margin:24px 0;padding:18px;border:1px solid #c8d8f3;border-radius:14px;background:#f7faff}.push-setting-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.push-setting-heading h3{font-size:17px;margin:0}.push-setting-heading h3,.push-toggle{display:flex;align-items:center;gap:8px}.push-toggle{min-height:44px;cursor:pointer;font-size:15px;font-weight:600;white-space:nowrap}.push-toggle input{width:24px;height:24px;accent-color:var(--primary)}.push-settings .form-hint{font-size:14px;line-height:1.7;margin:10px 0}.push-device-status{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:14px}.push-device-status p,.push-message{font-size:14px;line-height:1.7;margin:0;overflow-wrap:anywhere}.push-device-status button{min-height:44px}.push-connected{color:#1c528d;font-weight:600}.push-message{margin-top:12px;color:#294e85}.push-login-prompt{display:flex;flex-direction:column;align-items:center;gap:16px;padding:12px 0 6px;text-align:center}.push-login-prompt p{margin:0;font-size:16px;line-height:1.75;overflow-wrap:anywhere}.push-login-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#e8f0ff;color:#1d4ed8}.slot-cancel-action{display:block;min-height:44px;margin:5px 0 0 auto;padding:8px 4px;border:0;background:transparent;color:#a43b44;font-size:14px;font-weight:600;cursor:pointer}.slot-card.slot-cancelled{border-color:#d9b9bf;background:#fffafb}.status-badge.cancelled{background:#fbe8eb;color:#983440}.slot-cancellation-reason{display:flex;flex-direction:column;gap:5px;padding:10px 12px;margin:12px 0;border-radius:9px;background:#fbeef0;color:#823440;font-size:14px;line-height:1.7;overflow-wrap:anywhere}.slot-cancellation-reason small{font-size:13px}.slot-cancel-form{display:flex;flex-direction:column;gap:16px}.slot-cancel-form label{display:flex;flex-direction:column;gap:8px;font-size:15px;font-weight:600}.slot-cancel-form select,.slot-cancel-form textarea{width:100%;min-height:46px;border:1px solid #b9c9df;border-radius:8px;padding:10px 12px;font:inherit;font-size:16px;background:#fff;color:#243954}.slot-cancel-summary{font-size:16px;line-height:1.8;margin:0}.confirm-copy{white-space:pre-line}.install-app-button{min-height:48px;width:min(100%,320px);padding:12px 20px;border-color:#a5bce6;background:#edf3ff;color:var(--primary);font-size:15px}.login-install{margin-top:24px;text-align:center}.install-app-preview{display:flex;align-items:center;gap:14px;padding-bottom:22px;border-bottom:1px solid var(--line)}.install-app-preview img{border-radius:15px}.install-app-preview strong{font-size:17px;color:var(--ink)}.install-app-preview p{margin-top:4px;font-size:13px;color:var(--muted)}.install-steps{margin:22px 0;padding-left:24px;font-size:15px;line-height:1.8;color:var(--text)}.install-steps li{padding-left:4px;margin-bottom:14px}.install-steps li::marker{font-weight:700;color:var(--primary)}.install-steps svg{vertical-align:text-bottom;margin-right:8px;color:var(--primary)}.week-actions{gap:8px}.today-button,.week-actions .icon-button{min-height:48px;min-width:48px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.today-button{font-size:14px;padding:10px 16px;margin-right:0}.week-actions .icon-button{width:48px;height:48px}.week-actions .icon-button>svg{width:23px;height:23px}@media (max-width:380px){.week-toolbar{align-items:flex-start}.week-actions{width:100%;justify-content:flex-end}}.user-table .table-heading,.user-table .table-row{grid-template-columns:minmax(140px,1.3fr) minmax(110px,1fr) minmax(70px,.7fr) 44px}.delete-account-target{display:grid;gap:5px;padding:16px;border:1px solid var(--line);background:var(--bg);border-radius:10px;overflow-wrap:anywhere}.delete-account-target strong{font-size:17px;color:var(--ink)}.delete-account-target span{font-size:14px;color:var(--muted)}@media (max-width:600px){.user-table .table-heading,.user-table .table-row{grid-template-columns:minmax(0,1fr) 58px 44px}}.recurring-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:20px}.recurring-weekdays>button{min-height:48px;min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:15px;font-weight:600}.recurring-weekdays>button:hover:not(:disabled){background:var(--soft);border-color:#a5bce6}.recurring-weekdays>button[aria-pressed=true],.recurring-weekdays>button[aria-pressed=true]:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}@media (max-width:380px){.recurring-weekdays{gap:4px}}.user-table .table-row{padding-top:10px;padding-bottom:10px}.user-table .table-row>.icon-button{min-width:44px;min-height:44px;width:44px}.user-table .table-person>div:last-child>span{margin-top:3px;line-height:1.5}.account-delete-section{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.account-delete-trigger{min-height:44px;font-size:14px;padding:10px 0}.account-delete-confirm{display:grid;gap:14px;background:#fff8f3;border:1px solid #ecd5cb;border-radius:12px;padding:16px}.account-delete-confirm h3{font-size:17px;color:var(--ink)}.account-delete-confirm>p{font-size:14px;line-height:1.8;color:#704d36}.account-delete-confirm .modal-actions{margin-top:0}.day-cell.date-only{min-height:80px;padding:10px 4px}@media (max-width:600px){.day-cell.date-only{min-height:76px;padding:9px 1px}}.day-cell.is-today:not(.selected){background:#e7efff;border-color:#b4c9ed}.day-cell.is-today:not(.selected):hover{background:#dce8ff}.announcement-strip{background:#edf3ff;border-bottom:1px solid #d3dff4;padding:0 42px}.announcement-strip>button{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:10px 0;color:var(--primary);text-align:left}.announcement-strip svg{flex-shrink:0}.announcement-label{font-size:12px;font-weight:700;flex-shrink:0}.announcement-strip strong{flex:1 1;min-width:0;font-size:14px;font-weight:550;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.announcement-list{border:1px solid var(--line);border-radius:15px;background:#fff;padding:0 20px}.announcement-list>button{display:flex;align-items:center;gap:15px;width:100%;border-bottom:1px solid var(--line);padding:20px 0;text-align:left}.announcement-list>button:last-child{border-bottom:0}.announcement-list>button>div{flex:1 1;min-width:0}.announcement-list strong{display:block;font-size:16px;color:var(--ink);overflow-wrap:anywhere}.announcement-list>button span{display:flex;align-items:center;gap:4px;margin-top:8px;font-size:12px;color:var(--muted)}.announcement-date{font-size:13px;color:var(--muted);margin:-8px 0 24px}.announcement-content{font-size:16px;line-height:1.8;color:var(--text);overflow-wrap:anywhere}.announcement-content p{margin:0 0 12px}.announcement-content h2{font-size:24px;margin:18px 0 12px}.announcement-content h3{font-size:20px;margin:16px 0 10px}.announcement-content ol,.announcement-content ul{padding-left:24px;margin:10px 0 14px}.announcement-content blockquote{border-left:3px solid #abc1e9;padding-left:16px;margin:14px 0;color:var(--muted)}.announcement-content a{color:var(--primary);text-decoration:underline}.announcement-content hr{border:0;border-top:1px solid var(--line);margin:20px 0}.announcement-file-editor,.announcement-files{list-style:none;padding:0;margin:0}.announcement-files{border-top:1px solid var(--line);padding-top:15px;margin-top:25px}.announcement-files a{display:flex;align-items:center;gap:10px;padding:12px;color:var(--primary);background:var(--soft);border-radius:9px;margin-bottom:8px}.announcement-files a>span{min-width:0;overflow-wrap:anywhere;font-size:14px}.announcement-files a>svg{flex-shrink:0}.announcement-files small{display:block;margin-top:3px;font-size:12px;color:var(--muted)}.announcement-manage{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.announcement-manage>p{flex-basis:100%;font-size:15px}.announcement-manage .modal-actions{margin-top:0}.rich-editor{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.rich-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:8px;border-bottom:1px solid var(--line);background:var(--bg)}.rich-toolbar select{font-size:14px;padding:8px;width:auto;min-height:40px;max-width:128px}.rich-toolbar button{width:40px;height:40px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}.rich-toolbar button[aria-pressed=true]{background:var(--primary);color:#fff}.rich-toolbar button:hover:not(:disabled){box-shadow:inset 0 0 0 1px #8eaddf}.editor-color{display:inline-flex;align-items:center;gap:5px;padding:0 5px;font-size:12px}.editor-color input{width:35px;height:36px;min-height:36px!important;padding:3px;cursor:pointer}.rich-editor .tiptap{min-height:220px;max-height:440px;padding:15px;overflow-y:auto;outline:none}.rich-editor:focus-within{border-color:#7f9fd4;box-shadow:0 0 0 3px #e8f0ff}.rich-editor-loading{min-height:220px;padding:20px;font-size:14px;color:var(--muted)}.announcement-file-editor li{display:flex;align-items:center;gap:10px;font-size:13px;padding:8px 0}.announcement-file-editor li>span{flex:1 1;min-width:0;overflow-wrap:anywhere}.announcement-file-editor button{flex-shrink:0;min-height:40px;color:var(--red);padding:6px}.announcement-file-editor .removed{text-decoration:line-through;opacity:.65}.profile-phone-form{margin:0 0 25px}.profile-phone-input{display:flex;gap:8px}.profile-phone-input input{min-width:0;font-size:16px;flex:1 1}.profile-phone-input button{flex-shrink:0;padding:10px 15px}.profile-phone-form .field-error{margin-top:10px}.modal-heading h2{overflow-wrap:anywhere}@media (max-width:600px){.announcement-strip{padding:0 18px}.announcement-list{padding:0 15px}.mobile-bottom-nav>button{min-width:0;flex:1 1}.rich-toolbar select{font-size:16px;max-width:125px}}.profile-cluster{display:flex;align-items:center;gap:10px}.avatar-photo-button{padding:0;cursor:pointer}.photo-preview{margin:0}.photo-preview img{display:block;width:100%;max-width:512px;max-height:70dvh;object-fit:contain;border-radius:12px;margin:0 auto}@media (max-width:600px){.profile-cluster{gap:0}.profile-cluster .profile-button{display:none}}.slot-card .capacity-track{margin-top:0}.report-form{display:grid;gap:18px}.report-filters label,.report-form label{display:grid;gap:8px;font-weight:600;color:var(--ink);min-width:0}.report-form textarea{width:100%;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:16px;line-height:1.6}.report-card-heading,.report-meta,.report-toolbar,.report-week{display:flex;align-items:center;gap:12px}.report-toolbar{justify-content:space-between;margin-bottom:18px}.report-list{display:grid;gap:14px}.report-card{border:1px solid var(--line);border-radius:12px;padding:18px;background:#fff;min-width:0}.report-body{display:grid;gap:14px;margin:0}.report-body dt{color:#56708f;font-size:13px;font-weight:600;margin-bottom:5px}.report-body dd{margin:0;font-size:15px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.report-meta{justify-content:space-between;flex-wrap:wrap;margin-top:16px;padding-top:10px;border-top:1px solid var(--line)}.report-meta time{font-size:12px;color:#65768d}.report-meta>div{display:flex;gap:14px}.report-meta button{min-height:40px}.report-delete{color:var(--red)}.report-empty{padding:28px 8px;text-align:center;color:#65768d}.report-filters{display:grid;grid-template-columns:1fr 1fr;gap:14px}.report-filters input,.report-filters select{width:100%;min-width:0;min-height:46px;border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff;font:inherit;font-size:16px}.report-week{justify-content:space-between;padding:18px 0}.report-week strong{text-align:center;font-size:15px}.report-week button{min-width:44px;min-height:44px}.report-count{font-weight:600;margin:0 0 16px}.report-card-heading{align-items:flex-start;color:#335782;padding-bottom:16px}.report-card-heading svg{margin-top:3px;flex-shrink:0}.report-card-heading>div{display:grid;gap:5px}.report-card-heading strong{font-size:15px}.report-card-heading span{font-size:14px}@media (max-width:600px){.report-card{padding:14px}.report-panel .report-filters{gap:10px}}@media (max-width:375px){.admin-tabs{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}}.password-request-login{width:100%;margin-top:16px;min-height:46px}.password-request-success{display:grid;justify-items:center;gap:22px;text-align:center;padding:8px 0}.password-request-success>svg{color:#2563eb}.password-request-success p{margin:0;font-size:16px;line-height:1.8;word-break:keep-all}.password-request-success button{min-width:120px}.request-status-filter{display:flex;align-items:center;gap:12px;font-size:14px;margin-bottom:20px}.request-status-filter select{font:inherit;font-size:16px;border:1px solid var(--line);border-radius:9px;padding:10px 12px;min-height:44px;background:#fff}.password-request-list{display:grid}.password-request-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 0;border-bottom:1px solid var(--line)}.password-request-row:last-child{border-bottom:0}.password-request-person{display:grid;gap:6px;min-width:0;overflow-wrap:anywhere}.password-request-person>div{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.password-request-person strong{font-size:16px}.password-request-person>span{font-size:14px;color:#4f607d}.password-request-person time{font-size:12px;line-height:1.6;color:#64748b}.request-status{font-size:12px;font-weight:600;background:#edf3ff;color:#2852a0;padding:3px 8px;border-radius:5px;white-space:nowrap}.request-status.issued{color:#3b6b52;background:#eef6ef}.password-request-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.password-request-actions>button{min-height:44px}.request-delete{color:var(--red);min-width:44px}.request-empty{margin:0;padding:30px 4px;text-align:center;line-height:1.8;color:#64748b}.request-pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:20px;font-size:14px}.request-pagination button{min-height:44px;min-width:44px}.password-candidate-list{display:grid;gap:10px;margin:16px 0}.password-candidate{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);padding:14px;border-radius:10px;cursor:pointer}.password-candidate.selected{background:#f0f5ff;border-color:#8baee9}.password-candidate input{width:20px;height:20px;min-width:20px;accent-color:#1d4ed8;margin-top:2px}.password-candidate>span{display:grid;gap:7px;min-width:0;overflow-wrap:anywhere}.password-candidate strong{font-size:16px}.password-candidate span>span{font-size:14px;color:#4f607d}.password-candidate em{display:inline-block;font-style:normal;font-size:12px;color:#2852a0;margin-left:8px}.password-candidate small{font-size:13px;line-height:1.6;color:#4f607d}.request-issued-note{display:flex;align-items:flex-start;gap:8px;padding:12px;border-radius:8px;background:#edf3ff;color:#2852a0;font-size:14px;line-height:1.7}.request-issued-note svg{flex-shrink:0;margin-top:3px}.demo-controls>button{display:inline-flex;gap:7px;align-items:center;color:inherit;font:inherit;font-size:12px}.demo-login-hint{font-size:12px;white-space:nowrap}.my-time-tabs{display:flex;gap:6px;padding:5px;margin:0 0 24px;border:1px solid #d5e1f3;border-radius:12px;background:#eaf1fc;width:fit-content;max-width:100%}.my-time-tabs>button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 17px;border-radius:8px;font-size:15px;color:#435c7c;font-weight:600}.my-time-tabs>button.active{background:#fff;color:#2457b9;box-shadow:0 1px 4px #1b3b6a12}.fixed-my-panel{margin-bottom:22px}.fixed-time-select{margin-top:18px}.fixed-selected-roster{display:grid;gap:10px;margin-top:18px;border:1px solid var(--line);border-radius:10px;padding:14px;background:#f7faff}.fixed-single-action{display:flex;justify-content:flex-end;margin-top:18px}.fixed-single-action>button{min-height:46px;min-width:145px}.fixed-my-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.fixed-cancel-button{min-height:44px;padding:8px;font-size:14px;color:var(--red)}.fixed-limit-note{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;margin-bottom:22px;border:1px solid #d5e1f3;border-radius:10px;background:#edf3ff;color:#315b96}.fixed-limit-note>svg{flex-shrink:0;margin-top:3px}.fixed-limit-note p{font-size:15px;line-height:1.7;margin:0;word-break:keep-all}.fixed-limit-note span{display:block;margin-top:3px;font-size:13px}.overview-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.overview-toolbar h2{font-size:19px}.overview-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.overview-card{display:flex;flex-direction:column;min-width:0;padding:22px;border:1px solid var(--line);border-radius:14px;background:#fff}.overview-card header{display:flex;align-items:flex-start;gap:11px;margin-bottom:16px}.overview-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:11px;background:#edf3ff;color:#285ac3}.overview-card h3{font-size:16px;line-height:1.6;word-break:keep-all;margin:0 0 5px}.overview-card header p{margin:0;color:#526986;font-size:14px}.overview-card header p strong{font-size:23px;color:#2455b4;padding:0 3px}.overview-preview{display:grid}.overview-preview>button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;min-height:48px;padding:12px 0;text-align:left;border-top:1px solid var(--line)}.overview-preview>button>span{display:grid;gap:5px;min-width:0;overflow-wrap:anywhere}.overview-preview strong{font-size:15px;line-height:1.6;font-weight:600}.overview-preview small{font-size:13px;font-weight:400;color:#526986;line-height:1.6}.overview-preview strong>small{margin-left:8px}.overview-preview svg{color:#567cad;flex-shrink:0}.overview-empty{margin:0 0 22px;font-size:14px;color:#64748b;line-height:1.8}.overview-period{font-size:13px;color:#64748b;margin:-3px 0 8px}.overview-card>button{display:flex;justify-content:space-between;min-height:46px;width:100%;margin-top:auto;gap:10px}.overview-preview:not(:empty){margin-bottom:18px}@media (max-width:1100px){.overview-cards{grid-template-columns:1fr;gap:14px}.overview-card{padding:20px}}.fixed-time-list{display:grid;gap:12px}.fixed-apply-panel h2,.fixed-my-panel h2{margin:0 0 18px;font-size:20px;line-height:1.4}.fixed-my-panel h2>span{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;font-size:13px;min-width:22px;min-height:22px;margin-left:7px;padding:2px 5px;border-radius:5px;background:#edf3ff;color:#2852a0}.fixed-my-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.fixed-my-row:last-child{border-bottom:0}.fixed-time-description{display:grid;gap:7px;min-width:0;overflow-wrap:anywhere}.fixed-time-description strong{font-size:16px;color:var(--ink)}.fixed-time-description span{font-size:14px;line-height:1.6;color:#4c6281}.fixed-status{display:inline-flex;align-items:center;gap:5px;width:fit-content;flex-shrink:0;font-size:13px;font-weight:600;padding:6px 9px;border-radius:7px;background:#edf3ff;color:#2852a0;white-space:nowrap}.fixed-status.approved{color:#24624b;background:#eaf5f0}.fixed-help{color:#4c6281;font-size:14px;line-height:1.7;margin:0 0 20px}.fixed-area-label{display:flex;align-items:center;gap:14px;font-weight:600;font-size:15px}.fixed-area-label select{flex:1 1;min-width:0;max-width:360px;min-height:46px;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font:inherit;font-size:16px;background:#fff}.fixed-weekdays{margin:20px 0}.fixed-time-card{display:grid;grid-template-columns:1fr auto;gap:15px 12px;border:1px solid var(--line);border-radius:12px;padding:17px;background:#fff}.fixed-time-top{display:flex;align-items:center;flex-wrap:wrap;gap:7px 15px;grid-column:1/-1}.fixed-time-top strong{font-size:18px;color:#243f67}.fixed-request-capacity,.fixed-time-top>span{font-size:13px;color:#576c89}.fixed-time-names{display:flex;align-items:center;flex-wrap:wrap;gap:8px 13px;font-size:15px;line-height:1.8}.fixed-time-names strong{font-weight:750}.fixed-apply-button{min-height:44px;min-width:70px;align-self:center}.fixed-notice{font-size:16px;line-height:1.8;white-space:pre-wrap}.fixed-request-row{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:19px 0;border-bottom:1px solid var(--line)}.fixed-request-row:last-child{border-bottom:0}.fixed-request-details{min-width:0;display:grid;gap:12px}.fixed-request-person{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.fixed-request-person>strong{font-size:16px}.fixed-request-person>span:not(.fixed-status){font-size:14px;color:#576c89}.fixed-request-row>button{flex-shrink:0;min-height:44px}@media (max-width:600px){.my-time-tabs{width:100%}.my-time-tabs>button{flex:1 1;padding:9px 7px;font-size:14px;word-break:keep-all}.fixed-time-card{padding:14px}.fixed-apply-panel,.fixed-my-panel{padding:20px 16px}.fixed-my-row{gap:8px}.fixed-my-actions{gap:2px}.fixed-my-actions .fixed-status{padding:5px 7px}.fixed-time-description span{font-size:14px}.request-type-tabs>button{font-size:13px}.password-request-row{gap:7px}.password-request-actions{gap:3px}.password-request-actions .secondary-button{padding:9px 11px}.password-candidate{padding:12px}}