*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#1f7a63;--color-primary-light:#2fa78a;--color-primary-lighter:#e6f7f3;--color-primary-dark:#1b5e55;--color-sidebar:#1b5e55;--color-bg:#fff;--color-bg-subtle:#f8f9fa;--color-border:#1f7a631f;--color-border-gray:#e5e7eb;--color-text:#1a1a1a;--color-text-muted:#6b7280;--color-destructive:#ef4444;--color-warning:#f59e0b;--color-success:#10b981;--color-info:#3b82f6;--color-radius:12px;--font-family:"Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}html{font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);font-size:16px}body{background:var(--color-bg-subtle);min-height:100vh}.staging-banner{z-index:100;color:#fff7ed;background:#7c2d12;border-bottom:1px solid #ffffff2e;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;min-height:36px;padding:6px 16px;font-size:.8125rem;line-height:1.3;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #0f172a29}.staging-banner strong{font-weight:700}.staging-banner span{opacity:.92;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.app-shell{min-height:100vh;display:flex}.main-content{background:var(--color-bg-subtle);flex:1;min-width:0;margin-left:256px}.sidebar{background:var(--color-sidebar);z-index:50;width:256px;height:100vh;top:0;left:0;top:calc(var(--staging-banner-height,0px) + var(--global-banner-height,0px));height:calc(100vh - var(--staging-banner-height,0px) - var(--global-banner-height,0px));flex-direction:column;transition:transform .3s;display:flex;position:fixed;overflow:hidden}.sidebar__brand{border-bottom:1px solid #ffffff1a;padding:24px 20px}.sidebar__brand-logo{width:170px}.sidebar__brand-sub{color:#ffffffb3;margin-top:4px;font-size:.75rem}.sidebar__nav{flex:1;min-height:0;padding:12px 0;overflow-y:auto}.sidebar__nav a{color:#ffffffe6;align-items:center;gap:10px;padding:10px 20px;font-size:.875rem;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar__nav a:hover{color:#fff;background:#278a73}.sidebar__nav a.active,.sidebar__nav a.sidebar__link--active{color:#fff;background:#2fa78a;font-weight:600}.sidebar__footer{border-top:1px solid #ffffff1a;padding:16px 0}.sidebar__user{padding:0 20px 12px}.sidebar__user strong{color:#fff;font-size:.875rem;font-weight:600;display:block}.sidebar__user span{color:#ffffff80;margin-top:2px;font-size:.75rem;display:block}.sidebar__session-timer{align-items:center;gap:8px;padding:0 20px 12px;display:flex}.sidebar__session-timer__time{color:#fff9;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.sidebar__session-timer__extend{color:#fffc;cursor:pointer;background:#ffffff26;border:none;border-radius:4px;padding:2px 8px;font-family:inherit;font-size:.6875rem;transition:background .15s}.sidebar__session-timer__extend:hover{background:#ffffff40}.sidebar__session-timer__extend:disabled{opacity:.4;cursor:default}.sidebar__logout-btn{color:#ffffffe6;cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;align-items:center;gap:8px;width:calc(100% - 32px);margin:0 16px;padding:8px 12px;font-family:inherit;font-size:.875rem;transition:background .15s;display:flex}.sidebar__logout-btn:hover{background:#fff3}.app-version{color:#ffffff73;flex-direction:column;gap:2px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.6875rem;line-height:1.35;display:flex}.sidebar__footer .app-version{margin:12px 20px 0}.sidebar-mobile-toggle{z-index:60;background:var(--color-primary);color:#fff;cursor:pointer;top:12px;right:12px;top:calc(var(--staging-banner-height,0px) + var(--global-banner-height,0px) + 12px);border:none;border-radius:8px;padding:8px;display:none;position:fixed}.sidebar-mobile-toggle--open{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff29}.sidebar-overlay{z-index:45;background:#00000080;display:none;position:fixed;inset:0}@media (width<=768px){.staging-banner,.global-banner{flex-wrap:wrap;justify-content:flex-start;gap:4px 10px;min-height:44px;padding:6px 56px 6px 12px;font-size:.75rem}.staging-banner__message{display:none}.sidebar-mobile-toggle{justify-content:center;align-items:center;display:flex}.sidebar-overlay{display:block}.sidebar{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;width:100vw;height:100dvh;top:calc(var(--staging-banner-height,0px) + var(--global-banner-height,0px));height:calc(100dvh - var(--staging-banner-height,0px) - var(--global-banner-height,0px));grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar__brand{padding:24px 72px 16px 20px}.sidebar__brand-logo{max-width:min(170px,100vw - 120px)}.sidebar__nav{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;overflow-y:auto}.sidebar__footer{background:var(--color-sidebar);padding:12px 0 calc(12px + env(safe-area-inset-bottom));flex-shrink:0;position:sticky;bottom:0}.sidebar__user,.sidebar__session-timer{padding:0 16px 8px}.sidebar__logout-btn{margin:0 12px;padding:7px 10px;font-size:.8125rem}.sidebar__footer .app-version{display:none}.main-content{margin-left:0;padding-top:60px}}.screen-message{height:100vh;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.875rem;display:flex}.error-page{background:var(--color-bg-subtle);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.app-shell .error-page{min-height:100vh}.error-page__card{border:1px solid var(--color-border-gray);width:min(100%,420px);color:var(--color-text);text-align:center;background:#fff;border-radius:18px;flex-direction:column;align-items:center;gap:12px;padding:36px 28px;display:flex;box-shadow:0 12px 32px #0f172a14}.error-page__card svg{color:var(--color-warning)}.error-page__status{color:var(--color-primary);letter-spacing:.08em;font-size:.875rem}.error-page__card h1{font-size:1.375rem}.error-page__card p{color:var(--color-text-muted);font-size:.9375rem;line-height:1.5}.page{max-width:1400px;padding:24px 32px}.page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.page__title{color:var(--color-text);letter-spacing:-.02em;font-size:1.5rem;font-weight:600}.page__description{color:var(--color-text-muted);margin-top:4px;font-size:.875rem}.page__actions{align-items:center;gap:8px;display:flex}.global-banner{top:var(--staging-banner-height,0px);z-index:99;border-bottom:1px solid #ffffff38;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;min-height:36px;padding:6px 16px;font-size:.8125rem;line-height:1.3;display:flex;position:sticky;box-shadow:0 2px 10px #0f172a29}.global-banner--warning{color:#fffbeb;background:#b45309}.global-banner strong{font-weight:700}.global-banner span{opacity:.92;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.global-banner svg{flex-shrink:0}.page--full{max-width:none;padding:24px}.view-toggle{background:var(--color-bg-subtle);border:1px solid var(--color-border-gray);border-radius:8px;display:flex;overflow:hidden}.view-toggle__btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:6px 14px;font-family:inherit;font-size:.875rem;transition:background .15s,color .15s}.view-toggle__btn:hover{color:var(--color-text);background:#fff}.view-toggle__btn--active{background:var(--color-primary);color:#fff}.month-input{border:1px solid var(--color-border-gray);color:var(--color-text);background:#fff;border-radius:8px;padding:8px 14px;font-family:inherit;font-size:.875rem}.calendar-nav{align-items:center;gap:8px;margin-bottom:16px;display:flex}.calendar-nav__btn{border:1px solid var(--color-border-gray);width:32px;height:32px;color:var(--color-text);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.calendar-nav__btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.calendar-nav__today{border:1px solid var(--color-border-gray);color:var(--color-text);cursor:pointer;background:#fff;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:.875rem;transition:all .15s}.calendar-nav__today:hover{border-color:var(--color-primary);color:var(--color-primary)}.calendar-legend{color:var(--color-text-muted);align-items:center;gap:12px;margin-left:auto;font-size:.75rem;display:flex}.calendar-legend__item{align-items:center;gap:4px;display:flex}.calendar-legend__dot{border-radius:50%;width:8px;height:8px}.calendar-legend__dot--scheduled{background:#f59e0b}.calendar-legend__dot--progress{background:#3b82f6}.calendar-legend__dot--completed{background:#22c55e}.calendar-legend__dot--canceled{background:#ef4444}.calendar-legend__dot--settled{background:#6b7280}.calendar-grid{border:1px solid var(--color-border-gray);border-radius:var(--color-radius);background:#fff;overflow:hidden}.calendar-grid__header{background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border-gray);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-grid__day-header{text-align:center;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:10px;font-size:.75rem;font-weight:600}.calendar-grid__day-header--weekend{color:var(--color-destructive)}.calendar-grid__body{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-grid--month .calendar-cell{min-height:120px}.calendar-grid--week .calendar-cell{min-height:200px}.calendar-cell{border-right:1px solid var(--color-border-gray);border-bottom:1px solid var(--color-border-gray);min-height:80px;padding:8px}.calendar-cell:last-child{border-right:none}.calendar-cell--weekend{background:#fafafa}.calendar-cell--other-month{opacity:.7;background:#f9f9f9}.calendar-cell--today{background:var(--color-primary-lighter)}.calendar-cell__header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.calendar-cell__date{color:var(--color-text);font-size:.875rem;font-weight:500}.calendar-cell__date--today{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-weight:700;display:flex}.calendar-cell__add{width:20px;height:20px;color:var(--color-text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:opacity .15s;display:flex}.calendar-cell:hover .calendar-cell__add{opacity:1}.calendar-cell__add:hover{background:var(--color-primary-lighter);color:var(--color-primary)}.calendar-cell__lessons{flex-direction:column;gap:3px;display:flex}.lesson-item{cursor:pointer;border-left:3px solid;border:1px solid var(--color-border-gray);background:#fff;border-radius:4px;flex-direction:column;gap:1px;min-width:0;padding:3px 6px;font-size:.6875rem;transition:all .15s;display:flex;overflow:visible}.lesson-item:hover{background:var(--color-bg-subtle)}.lesson--scheduled{border-left-color:var(--color-warning);background:#fffbeb}.lesson--progress{border-left-color:var(--color-info);background:#eff6ff}.lesson--completed{border-left-color:var(--color-success);background:#f0fdf4}.lesson--canceled{border-left-color:var(--color-destructive);opacity:.6;background:#fef2f2}.lesson--settled{background:#f3f4f6;border-left-color:#6b7280}.lesson-item__row{white-space:nowrap;align-items:center;gap:4px;display:flex}.lesson-item__time{flex-shrink:0;font-weight:600}.lesson-item__customer,.lesson-item__instructor{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.lesson-item__instructor--unassigned{color:var(--color-destructive);font-style:italic}.lesson-item--draggable{cursor:grab}.lesson-item--draggable:active{cursor:grabbing}.lesson-item--dragging{opacity:.4}.lesson-item--readonly{cursor:pointer;opacity:.85}.lesson-context-menu{z-index:1000;border:1px solid var(--color-border-gray);background:#fff;border-radius:8px;min-width:120px;padding:4px 0;position:fixed;overflow:hidden;box-shadow:0 4px 16px #0000001f}.lesson-context-menu__item{width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-size:.8125rem;transition:background .1s;display:flex}.lesson-context-menu__item:hover{background:var(--color-bg-subtle)}.lesson-context-menu__item--danger{color:var(--color-destructive)}.calendar-cell--drop-over{box-shadow:inset 0 0 0 2px var(--color-primary);background:var(--color-primary-lighter)!important}.lesson-detail{flex-direction:column;gap:12px;display:flex}.lesson-detail__row{border-bottom:1px solid var(--color-border-gray);align-items:center;gap:16px;padding-bottom:12px;display:flex}.lesson-detail__row:last-of-type{border-bottom:none}.lesson-detail__label{color:var(--color-text-muted);flex-shrink:0;width:80px;font-size:.875rem}.lesson-detail__value{color:var(--color-text);overflow-wrap:anywhere;min-width:0;font-size:.875rem;font-weight:500}.lesson-detail__actions{border-top:1px solid var(--color-border-gray);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:8px;display:flex}.substitute-settlement-notice{color:#92400e;background:#fffbeb;border:1px solid #f59e0b;border-radius:8px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:.875rem;line-height:1.5;display:flex}.substitute-settlement-notice svg{flex-shrink:0;margin-top:1px}.card{border-radius:var(--color-radius);border:1px solid var(--color-border-gray);background:#fff;overflow:hidden;box-shadow:0 1px 3px #00000014}.card:hover{box-shadow:0 4px 12px #0000001a}.card__header{border-bottom:1px solid var(--color-border-gray);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card__title{color:var(--color-text);font-size:1rem;font-weight:600}.card__body{padding:16px 20px}.dashboard-section{margin-bottom:24px}.text-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.875rem;font-weight:500}.text-link:hover{color:var(--color-primary-dark)}.schedule-item{border:1px solid var(--color-border-gray);border-radius:10px;align-items:center;gap:16px;padding:12px 16px;transition:border-color .15s,background .15s;display:flex}.schedule-item:hover{border-color:var(--color-primary);background:var(--color-bg-subtle)}.schedule-item__time{color:var(--color-text);white-space:nowrap;font-size:.875rem;font-weight:600}.schedule-item__info{flex:1;gap:16px;display:flex}.schedule-item__row{color:var(--color-text-muted);align-items:center;gap:6px;font-size:.875rem;display:flex}.schedule-item__row svg{color:var(--color-text-muted);flex-shrink:0}.button-group{gap:6px;display:flex}.tab-btn{cursor:pointer;background:var(--color-bg-subtle);color:var(--color-text-muted);border:none;border-radius:8px;padding:6px 12px;font-family:inherit;font-size:.875rem;transition:background .15s,color .15s}.tab-btn:hover{background:var(--color-border-gray);color:var(--color-text)}.tab-btn--active{background:var(--color-primary);color:#fff}.table-container{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table thead tr{background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border-gray)}.data-table th{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:12px 16px;font-size:.75rem;font-weight:600}.data-table th.text-right,.data-table td.text-right{text-align:right}.data-table tbody tr{border-bottom:1px solid var(--color-border-gray)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:var(--color-bg-subtle)}.data-table td{color:var(--color-text);padding:14px 16px;font-size:.875rem}.rank-badge{border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.875rem;font-weight:700;display:inline-flex}.rank-badge--0{color:#92400e;background:#fef3c7}.rank-badge--1{color:#374151;background:#f3f4f6}.rank-badge--2{color:#9a3412;background:#ffedd5}.rank-badge--3,.rank-badge--4,.rank-badge--5{color:#6b7280;background:#f9fafb}.font-medium{font-weight:500}.text-primary{color:var(--color-primary)}.text-purple{color:#7c3aed}.text-muted{color:var(--color-text-muted)}.text-center{text-align:center}.stat-card{border-radius:var(--color-radius);border:1px solid var(--color-border-gray);background:#fff;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;box-shadow:0 1px 3px #00000014}.stat-card__info{flex-direction:column;gap:4px;display:flex}.stat-card__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}.stat-card__value{color:var(--color-text);letter-spacing:-.02em;font-size:1.75rem;font-weight:700;line-height:1}.stat-card__icon{background:var(--color-primary-lighter);width:48px;height:48px;color:var(--color-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.unpaid-summary-card{border:1px solid var(--color-border-gray);border-radius:var(--color-radius);background:#fff;grid-template-columns:180px 1fr;align-items:center;gap:16px;margin:-8px 0 24px;padding:14px 18px;display:grid;box-shadow:0 1px 3px #00000014}.unpaid-summary-card__header{color:#92400e;justify-content:space-between;align-items:center;gap:12px;display:flex}.unpaid-summary-card__label{color:var(--color-text-muted);margin:0 0 3px;font-size:.75rem;font-weight:600}.unpaid-chip-list{flex-wrap:wrap;align-items:center;gap:8px;max-height:74px;display:flex;overflow-y:auto}.unpaid-chip{color:#78350f;background:#fef3c7;border:1px solid #fde68a;border-radius:999px;align-items:center;gap:7px;padding:6px 10px;font-size:.8125rem;font-weight:700;line-height:1;display:inline-flex}.unpaid-chip small{color:#92400e;font-size:.75rem;font-weight:600}.unpaid-chip--grouped{border-radius:12px;align-items:baseline;line-height:1.3}.unpaid-chip__months{flex-wrap:wrap;gap:5px;display:inline-flex}.unpaid-chip__month{color:#92400e;font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:.75rem;font-weight:600;text-decoration:underline}.unpaid-chip__month:hover,.unpaid-chip__month:focus-visible{color:#78350f}.summary-query-state{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:12px;font-size:.8125rem;display:flex}.revenue-confirmation-badge{white-space:nowrap;border-radius:999px;align-items:center;padding:4px 9px;font-size:.75rem;font-weight:700;display:inline-flex}.revenue-confirmation-badge--confirmed{color:#065f46;background:#d1fae5}.revenue-confirmation-badge--unconfirmed{color:#92400e;background:#fef3c7}.gradient-cards{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px;display:grid}.gradient-card{border-radius:var(--color-radius);color:#fff;background:linear-gradient(135deg,#1f7a63 0%,#1b5e55 100%);align-items:center;gap:16px;padding:20px 24px;display:flex}.gradient-card__icon{background:#ffffff26;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.gradient-card__label{color:#ffffffb3;margin-bottom:2px;font-size:.75rem}.gradient-card__value{font-size:1.5rem;font-weight:700}.gradient-card__sub{color:#ffffffb3;margin-top:2px;font-size:.75rem}.gradient-card--light{background:linear-gradient(135deg,#2fa78a 0%,#1f7a63 100%)}.filter-bar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;display:flex}.search-box{border:1px solid var(--color-border-gray);background:#fff;border-radius:10px;flex:1;align-items:center;gap:8px;min-width:200px;max-width:320px;padding:8px 14px;display:flex}.filter-dropdowns{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-dropdown{border:1px solid var(--color-border-gray);min-width:150px;min-height:38px;color:var(--color-text);cursor:pointer;background-color:#fff;border-radius:10px;padding:8px 34px 8px 12px;font-family:inherit;font-size:.875rem;line-height:1.2}.filter-dropdown:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2fa78a24}.filter-bar .filter-tabs{margin-bottom:0}.entity-picker{flex-direction:column;gap:6px;display:flex}.entity-picker__label-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.entity-picker__clear{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.75rem}.entity-picker__trigger{border:1px solid var(--color-border-gray);min-height:42px;color:var(--color-text);cursor:pointer;text-align:left;background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-family:inherit;font-size:.875rem;display:flex}.entity-picker__trigger--empty{color:var(--color-text-muted)}.entity-search-modal{flex-direction:column;gap:14px;display:flex}.entity-search-modal__search{max-width:none;margin-bottom:0}.entity-search-list{flex-direction:column;gap:8px;max-height:420px;display:flex;overflow:auto}.entity-search-item{border:1px solid var(--color-border-gray);color:var(--color-text);cursor:pointer;text-align:left;background:#fff;border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;font-family:inherit;display:flex}.entity-search-item:hover{border-color:var(--color-primary);background:var(--color-bg-subtle)}.entity-search-item__main{font-weight:700}.entity-search-item__sub{color:var(--color-text-muted);font-size:.8125rem}.entity-search-contract,.entity-search-customer,.entity-search-instructor{flex-direction:column;gap:8px;width:100%;display:flex}.entity-search-model__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.entity-search-model__header>div{align-items:baseline;gap:8px;display:flex}.entity-search-model__header strong{font-size:.9375rem}.entity-search-model__header span,.entity-search-model__meta,.entity-search-model__sub{color:var(--color-text-muted);font-size:.8125rem}.entity-search-model__meta{flex-wrap:wrap;gap:6px 14px;display:flex}.entity-search-model__sub{border-top:1px solid var(--color-border-gray);padding-top:4px}.entity-search-contract__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.entity-search-contract__header>div{align-items:baseline;gap:8px;display:flex}.entity-search-contract__header strong{font-size:.9375rem}.entity-search-contract__header span,.entity-search-contract__meta,.entity-search-contract__grid,.entity-search-contract__schedule{color:var(--color-text-muted);font-size:.8125rem}.entity-search-contract__meta,.entity-search-contract__grid{flex-wrap:wrap;gap:6px 14px;display:flex}.entity-search-contract__schedule{border-top:1px solid var(--color-border-gray);white-space:pre-wrap;padding-top:4px}.entity-search-modal__footer{justify-content:center;align-items:center;gap:12px;display:flex}.search-box svg{color:var(--color-text-muted);flex-shrink:0}.search-box input{color:var(--color-text);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:.875rem}.search-controls{align-items:stretch;gap:10px;width:100%;display:flex}.search-controls__field{border:1px solid var(--color-border-gray);background:#fff;border-radius:14px;flex:1;align-items:center;gap:8px;min-width:240px;min-height:48px;padding:8px 12px;display:flex}.search-controls__field svg{color:var(--color-text-muted);flex-shrink:0}.search-controls__field input{min-width:160px;color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.875rem}.search-controls__chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.search-chip{white-space:nowrap;border-radius:999px;align-items:center;min-height:26px;padding:4px 9px;font-size:.75rem;font-weight:700;display:inline-flex}.search-chip--filter{background:var(--color-primary-lighter);color:var(--color-primary-dark)}.search-chip--sort{background:var(--color-bg-subtle);color:var(--color-text-muted)}.search-controls__button{white-space:nowrap;min-height:48px}.search-modal{flex-direction:column;gap:22px;display:flex}.search-modal__section{flex-direction:column;gap:12px;display:flex}.search-modal__title{color:var(--color-text);margin:0;font-size:.95rem;font-weight:700}.search-modal__empty{color:var(--color-text-muted);margin:0;font-size:.875rem}.search-modal__list{gap:10px;display:grid}.search-modal__item{border:1px solid var(--color-border-gray);background:#fff;border-radius:12px;gap:8px;padding:12px;display:grid}.search-modal__item-header{color:var(--color-text);justify-content:space-between;align-items:center;gap:12px;font-size:.875rem;font-weight:700;display:flex}.search-modal__control input,.search-modal__control select{border:1px solid var(--color-border-gray);width:100%;min-height:40px;color:var(--color-text);background:#fff;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:.875rem}.search-modal__control input:focus,.search-modal__control select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter);outline:none}.search-modal__actions{flex-wrap:wrap;gap:8px;display:flex}.search-sort-list{gap:8px;display:grid}.search-sort-option{border:1px solid var(--color-border-gray);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:11px 12px;display:flex}.search-sort-option:hover{background:var(--color-bg-subtle)}.search-sort-option input{accent-color:var(--color-primary)}.detail-info{flex-direction:column;gap:12px;display:flex}.detail-info__row{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding-bottom:12px;display:flex}.detail-info__row:last-child{border-bottom:none;padding-bottom:0}.detail-info__row--column{flex-direction:column;align-items:flex-start}.detail-info__label{min-width:100px;color:var(--color-text-muted);font-size:.875rem}.detail-link{color:var(--color-primary);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.detail-link:hover{text-decoration:underline}.training-history-editor{flex-direction:column;gap:10px;display:flex}.training-history-editor__controls{gap:8px;display:flex}.training-history-editor__controls select{flex:1}.training-history-editor__hint,.training-history-editor__empty{color:var(--color-text-muted);font-size:.813rem}.training-history-list,.training-history-detail-list{flex-direction:column;gap:8px;display:flex}.training-history-item,.training-history-detail-item{border:1px solid var(--color-border-gray);background:var(--color-bg-subtle);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.training-history-item__order{background:var(--color-primary-lighter);width:24px;height:24px;color:var(--color-primary-dark);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.training-history-item__name{flex:1;font-size:.875rem}.detail-info__section{border-top:1px solid var(--color-border);margin-top:4px;padding-top:12px}.detail-info__section-title{color:var(--color-text-muted);margin-bottom:8px;font-size:.875rem;font-weight:600}.detail-contact-item{margin-bottom:8px}.badge-primary{background:var(--color-primary);color:#fff;vertical-align:middle;border-radius:3px;margin-left:4px;padding:1px 4px;font-size:.625rem;display:inline-block}.filter-tabs{gap:6px;margin-bottom:20px;display:flex}.filter-tab{border:1px solid var(--color-border-gray);color:var(--color-text-muted);cursor:pointer;background:#fff;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:.875rem;transition:all .15s}.filter-tab--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.contract-filter-toolbar{align-items:center;gap:12px;margin-bottom:14px;display:flex}.contract-filter-toolbar .search-box{flex:1;margin-bottom:0}.contract-filter-sort{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:8px;font-size:.875rem;display:flex}.contract-filter-sort select{min-width:180px}.contract-filter-divider{background:var(--color-border-gray);align-self:stretch;width:1px;margin:0 4px}.contract-detail-filter-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.contract-detail-filters{border-top:1px solid var(--color-border-gray);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding-top:14px;display:grid}.lesson-filter-bar{justify-content:flex-end;margin-bottom:12px;display:flex}.instructor-status-cell{min-width:92px}.detailed-filter__remove{background:var(--color-bg-subtle);color:var(--color-text-muted);cursor:pointer;border:none;border-radius:7px;padding:5px 8px;font-family:inherit;font-size:.75rem}.detailed-filter__remove:hover{color:var(--color-destructive)}.custom-select{display:inline-block;position:relative}.custom-select__trigger{border:1px solid var(--color-border-gray);color:var(--color-text);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-width:130px;padding:6px 12px;font-family:inherit;font-size:.875rem;display:flex}.custom-select__trigger:hover{border-color:var(--color-primary)}.custom-select__value{align-items:center;gap:6px;display:flex}.custom-select__dropdown{border:1px solid var(--color-border-gray);z-index:100;background:#fff;border-radius:8px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 4px 12px #0000001a}.custom-select__option{width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:8px 12px;font-family:inherit;font-size:.875rem;display:flex}.custom-select__icon{flex-shrink:0;display:inline-flex}.custom-select__option:hover{background:#f3f4f6}.custom-select__option--selected{color:var(--color-primary);background:#eef2ff;font-weight:500}.client-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.client-card{border:1px solid var(--color-border-gray);border-radius:var(--color-radius);background:#fff;transition:box-shadow .15s,border-color .15s;overflow:hidden}.client-card:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #00000014}.client-card--highlighted{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-lighter), 0 4px 12px #00000014}.client-card__header{border-bottom:1px solid var(--color-border-gray);padding:16px 20px}.client-card__title-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.client-card__name{color:var(--color-text);font-size:1rem;font-weight:600}.icon-link{color:var(--color-text-muted);align-items:center;transition:color .15s;display:inline-flex}.icon-link:hover{color:var(--color-primary)}.title-link{font:inherit;color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;font-weight:600}.title-link:hover{color:var(--color-primary)}.client-card__type-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.client-card__meta-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.client-type-badge{border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.client-type-badge--facility{color:#1e40af;background:#dbeafe}.client-type-badge--personal{color:#5b21b6;background:#ede9fe}.client-type-badge--pending{color:#374151;background:#f3f4f6}.client-type-badge--active{color:#166534;background:#dcfce7}.client-type-badge--inactive{color:#991b1b;background:#fee2e2}.client-type-badge--car{color:#1e40af;background:#dbeafe}.client-type-sub{color:var(--color-text-muted);font-size:.75rem;line-height:1.4}.client-card__body{flex-direction:column;gap:6px;padding:12px 20px;display:flex}.client-info-row{color:var(--color-text-muted);align-items:flex-start;gap:8px;font-size:.875rem;display:flex}.client-info-row svg{flex-shrink:0;margin-top:1px}.client-info-row__text{word-break:break-word}.client-info-row__text--pre-line{white-space:pre-line}.client-card__memo{color:var(--color-text-muted);border-top:1px solid var(--color-border-gray);margin-top:4px;padding:12px 20px;font-size:.8125rem;line-height:1.5}.client-card__footer{border-top:1px solid var(--color-border-gray);justify-content:flex-end;padding:12px 20px;display:flex}.contracts-filter-card{background:#fff;border-radius:12px;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px 20px;display:flex;box-shadow:0 1px 3px #00000014}.contracts-grid{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px;display:grid}@media (width<=600px){.contracts-grid{grid-template-columns:1fr}}.contract-card{background:#fff;border-radius:12px;transition:box-shadow .15s;overflow:hidden;box-shadow:0 1px 3px #00000014}.contract-card:hover{box-shadow:0 4px 12px #0000001f}.contract-card__header{justify-content:space-between;align-items:flex-start;padding:16px 20px;display:flex}.contract-card__title-area{flex-direction:column;gap:8px;display:flex}.contract-card__badges{flex-wrap:wrap;gap:6px;display:flex}.contract-type-badge{border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.contract-type-badge--facility{color:#1e40af;background:#dbeafe}.contract-type-badge--personal{color:#5b21b6;background:#ede9fe}.contract-status-badge{border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.contract-status-badge--pending{color:#374151;background:#f3f4f6}.contract-status-badge--active{color:#166534;background:#dcfce7}.contract-status-badge--completed{color:#374151;background:#e5e7eb}.contract-card__actions{gap:4px;display:flex}.icon-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:inline-flex}.icon-btn:hover{color:var(--color-primary);background:#f3f4f6}.contract-card__body{flex-direction:column;gap:6px;padding:0 20px 16px;display:flex}.contract-info-row{color:var(--color-text-muted);align-items:flex-start;gap:8px;font-size:.8125rem;display:flex}.contract-info-row svg{flex-shrink:0;margin-top:2px}.contract-info-row__text{color:var(--color-text)}.contract-info-row__text--muted{color:var(--color-text-muted)}.contract-card__stats{border-top:1px solid var(--color-border-gray);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 20px;display:grid}.contract-card__stat{background:#f9fafb;border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.contract-card__stat-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.02em;font-size:.6875rem;font-weight:500}.contract-card__stat-value{color:var(--color-text);white-space:pre-line;font-size:.8125rem;font-weight:600}.contract-card__stat-value--muted{color:var(--color-text-muted);white-space:pre-line;font-weight:400}.contract-card__stat--instructor{background:#eef2ff;border:1px solid #c7d2fe}.contract-card__stat--span-two{grid-column:span 2}.contract-card__stat-value--strong{color:#3730a3;font-size:1rem;font-weight:800}.client-info-row--stack{flex-direction:column;align-items:flex-start;gap:6px}.inline-toggle{color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:.875rem;font-weight:600;display:inline-flex}.contract-card__stat-tags{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.contract-card__stat-tag{color:#1e40af;background:#dbeafe;border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-size:.6875rem;font-weight:500;display:inline-flex}.contract-card__footer{border-top:1px solid var(--color-border-gray);justify-content:flex-end;padding:12px 20px;display:flex}.modal-form{flex-direction:column;gap:20px;display:flex}.form-segmented{gap:8px;display:flex}.form-segmented__item{border:1px solid var(--color-border-gray);background:var(--color-bg-subtle);color:var(--color-text-muted);cursor:pointer;border-radius:8px;flex:1;padding:8px 12px;font-size:.875rem}.form-segmented__item--active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.form-hint{color:var(--color-text-muted);margin:0;font-size:.8125rem}.info-panel{border:1px solid var(--color-border-gray);background:var(--color-bg-subtle);color:var(--color-text);border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.info-panel span{color:var(--color-text-muted);font-size:.875rem}.modal-form__actions{border-top:1px solid var(--color-border-gray);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:8px;display:flex}.settlement-review{flex-direction:column;gap:16px;display:flex}.settlement-review__section{flex-direction:column;gap:6px;display:flex}.settlement-review__label{color:var(--color-text-muted);margin:0;font-size:.8125rem;font-weight:600}.settlement-review__item{border:1px solid var(--color-border-gray);background:#fff;border-radius:8px;grid-template-columns:minmax(70px,.7fr) minmax(70px,.6fr) minmax(60px,.55fr) minmax(120px,1.4fr) minmax(120px,1fr);align-items:center;gap:8px;padding:8px 10px;font-size:.875rem;display:grid}.settlement-review__badge{color:#fff;border-radius:999px;flex:none;padding:2px 8px;font-size:.75rem;font-weight:600}.settlement-review__badge--settle{background:var(--color-success,#16a34a)}.settlement-review__badge--unsettle{background:var(--color-warning,#d97706)}.settlement-review__item span:last-child{font-weight:600}.statement-builder{flex-direction:column;gap:18px;display:flex}.statement-builder__heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.statement-builder__heading p{color:var(--color-text-muted);margin:4px 0 0;font-size:.8125rem}.statement-builder__select-all,.statement-builder__lesson{cursor:pointer}.statement-builder__select-all{white-space:nowrap;align-items:center;gap:7px;font-size:.875rem;font-weight:600;display:inline-flex}.statement-builder__lessons{flex-direction:column;gap:8px;max-height:340px;display:flex;overflow-y:auto}.statement-builder__lesson{border:1px solid var(--color-border-gray);background:#fff;border-radius:10px;grid-template-columns:auto 64px 105px minmax(120px,1fr) auto 90px;align-items:center;gap:10px;padding:11px 12px;font-size:.8125rem;display:grid}.statement-builder__lesson:has(input:checked){background:#eef2ff;border-color:#c7d2fe}.statement-builder__select-all input,.statement-builder__lesson input{accent-color:#4f46e5}.statement-builder__lesson-price{text-align:right;font-weight:700}.statement-builder__preview{border:1px solid var(--color-border-gray);border-radius:12px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.statement-builder__preview>div{background:var(--color-bg-subtle);flex-direction:column;gap:5px;padding:14px 16px;display:flex}.statement-builder__preview>div+div{border-left:1px solid var(--color-border-gray)}.statement-builder__preview span{color:var(--color-text-muted);font-size:.75rem}.statement-builder__preview strong{font-size:1rem}.statement-builder__preview .statement-builder__net{color:#047857;background:#ecfdf5}.statement-builder__empty{color:#b45309;margin:-8px 0 0;font-size:.8125rem;font-weight:600}@media (width<=768px){.statement-builder__heading{flex-direction:column;gap:10px}.statement-builder__lesson{grid-template-columns:auto minmax(0,1fr)}.statement-builder__lesson>input{grid-row:1/6;align-self:start;margin-top:2px}.statement-builder__lesson>span,.statement-builder__lesson>strong{grid-column:2}.statement-builder__lesson-price{text-align:left}.statement-builder__preview{grid-template-columns:1fr}.statement-builder__preview>div+div{border-left:0;border-top:1px solid var(--color-border-gray)}}.customer-type-selector{grid-template-columns:1fr 1fr;gap:8px;display:grid}.type-btn{border:2px solid var(--color-border-gray);cursor:pointer;color:var(--color-text-muted);background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:12px;font-family:inherit;font-size:.875rem;transition:all .15s;display:flex}.type-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.type-btn--active{border-color:var(--color-primary);background:var(--color-primary-lighter);color:var(--color-primary);font-weight:600}.type-btn--purple.type-btn--active{color:#5b21b6;background:#ede9fe;border-color:#7c3aed}.type-btn:disabled{cursor:not-allowed;opacity:.6}.checkbox-field{cursor:pointer;align-items:center;gap:8px;display:flex}.checkbox-field input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary)}.contact-selector{border:1px solid var(--color-border-gray);border-radius:var(--color-radius);overflow:hidden}.contact-picker,.contact-draft-list{padding:16px 20px}.contact-picker__list,.contact-draft-list{flex-direction:column;gap:10px;display:flex}.contact-option{border:1px solid var(--color-border-gray);cursor:pointer;background:#fff;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.contact-option--selected{border-color:var(--color-primary);background:var(--color-primary-lighter)}.contact-draft-card{border:1px solid var(--color-border-gray);border-radius:12px;overflow:hidden}.instructor-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.instructor-card{border:1px solid var(--color-border-gray);border-radius:var(--color-radius);background:#fff;transition:box-shadow .15s,border-color .15s;overflow:hidden}.instructor-card:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #00000014}.instructor-card__header{border-bottom:1px solid var(--color-border-gray);align-items:center;gap:12px;padding:16px 20px;display:flex}.instructor-card__avatar{background:var(--color-primary-lighter);width:44px;height:44px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;font-weight:700;display:flex}.instructor-card__info{flex:1;min-width:0}.instructor-card__name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:600;overflow:hidden}.instructor-card__login{color:var(--color-text-muted);margin-top:2px;font-size:.75rem}.instructor-card__badges{flex-shrink:0;gap:4px;display:flex}.instructor-card__body{flex-direction:column;gap:6px;padding:12px 20px;display:flex}.instructor-card__footer{border-top:1px solid var(--color-border-gray);justify-content:flex-end;padding:12px 20px;display:flex}.badge{border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.badge--green{color:#065f46;background:#d1fae5}.badge--blue{color:#1e40af;background:#dbeafe}.badge--purple{color:#5b21b6;background:#ede9fe}.badge--yellow{color:#92400e;background:#fef3c7}.badge--gray{color:#374151;background:#f3f4f6}.badge--red{color:#991b1b;background:#fee2e2}.badge--orange{color:#9a3412;background:#ffedd5}.badge--teal{background:var(--color-primary-lighter);color:var(--color-primary)}.settlement-status{white-space:nowrap;align-items:center;gap:2px;display:inline-flex;position:relative}.settlement-status__badge,.settlement-status__caret{cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.settlement-status__badge{border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:500;line-height:1.5}.settlement-status__caret{color:#9ca3af;background:0 0;border-radius:4px;width:20px;height:20px}.settlement-status__caret:hover{color:#374151;background:#f3f4f6}.settlement-status__badge:disabled,.settlement-status__caret:disabled{cursor:not-allowed;opacity:.5}.settlement-status--waiting .settlement-status__badge{color:#6b7280;background:#f3f4f6}.settlement-status--unpaid .settlement-status__badge{color:#92400e;background:#fef3c7}.settlement-status--paid .settlement-status__badge{color:#065f46;background:#d1fae5}.settlement-status__menu{z-index:1000;background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;min-width:96px;padding:4px;display:flex;position:fixed;box-shadow:0 4px 12px #0000001a}.settlement-status__option{cursor:pointer;text-align:left;color:#374151;background:0 0;border:none;border-radius:6px;padding:6px 10px;font-size:.8125rem}.settlement-status__option:hover{background:#f3f4f6}.settlement-status--batch .button{align-items:center;gap:4px;display:inline-flex}.settlement-status--open .settlement-status__caret svg,.settlement-status--open .button svg{transform:rotate(180deg)}.button{cursor:pointer;white-space:nowrap;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:.875rem;font-weight:500;line-height:1;text-decoration:none;transition:all .15s;display:inline-flex}.button:disabled{opacity:.6;cursor:not-allowed}.button--primary{background:var(--color-primary);color:#fff}.button--primary:hover:not(:disabled){background:var(--color-primary-light)}.button--full{width:100%}.button--secondary{color:var(--color-text);border:1px solid var(--color-border-gray);background:#fff}.button--secondary:hover:not(:disabled){background:var(--color-bg-subtle)}.button--danger{background:var(--color-destructive);color:#fff}.button--danger:hover:not(:disabled){background:#dc2626}.button--ghost{color:var(--color-text);background:0 0}.button--ghost:hover:not(:disabled){background:var(--color-bg-subtle)}.button--small{border-radius:6px;padding:4px 10px;font-size:.75rem}.button--icon{border-radius:8px;padding:8px}.button--icon.button--small{padding:6px}.button__group{align-items:center;gap:8px;display:flex}.page__header .button__group{margin-top:12px}.filter-btn{cursor:pointer;background:var(--color-bg-subtle);color:var(--color-text-muted);border:1px solid #0000;border-radius:999px;padding:6px 14px;font-size:.8125rem;font-weight:500;transition:all .15s}.filter-btn:hover{background:#e5e7eb}.filter-btn.active{background:var(--color-primary);color:#fff}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.toolbar__field{flex-direction:column;gap:4px;display:flex}.toolbar__field>span{color:var(--color-text-muted);font-size:.75rem;font-weight:500}.toolbar__field input,.toolbar__field select{border:1px solid var(--color-border-gray);height:38px;color:var(--color-text);background:#fff;border-radius:8px;min-width:140px;padding:0 12px;font-size:.875rem}.toolbar__field input:focus,.toolbar__field select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-lighter);outline:none}.toolbar__field input[type=month]{width:160px}.toolbar__field--grow{flex:1;min-width:200px}.entity-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;display:grid}.entity-card{border-radius:var(--color-radius);border:1px solid var(--color-border-gray);background:#fff;padding:20px;transition:box-shadow .15s;box-shadow:0 1px 3px #0000000f}.entity-card:hover{box-shadow:0 4px 12px #00000014}.entity-card__header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.entity-card__title{color:var(--color-text);font-size:1rem;font-weight:600}.entity-card__badges{flex-shrink:0;gap:6px;display:flex}.entity-card__meta{color:var(--color-text-muted);flex-direction:column;gap:6px;margin-bottom:16px;font-size:.8125rem;display:flex}.entity-card__meta-row{align-items:center;gap:6px;display:flex}.entity-card__stats{background:var(--color-bg-subtle);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;padding:12px;display:grid}.entity-card__stat{text-align:center}.entity-card__stat-value{color:var(--color-text);font-size:1rem;font-weight:700}.entity-card__stat-label{color:var(--color-text-muted);margin-top:2px;font-size:.6875rem}.entity-card__footer{justify-content:flex-end;gap:8px;display:flex}.entity-form{border-radius:var(--color-radius);border:1px solid var(--color-border-gray);background:#fff;margin-bottom:24px;padding:24px;box-shadow:0 1px 3px #0000000f}.form-grid{gap:16px;display:grid}.form-grid--two{grid-template-columns:repeat(2,1fr)}.form-grid--three{grid-template-columns:repeat(3,1fr)}.form-grid--four{grid-template-columns:repeat(4,1fr)}.field{flex-direction:column;gap:4px;display:flex}.field>span{color:var(--color-text-muted);font-size:.75rem;font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--color-border-gray);color:var(--color-text);background:#fff;border-radius:8px;width:100%;padding:8px 12px;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-lighter);outline:none}.field input::placeholder,.field textarea::placeholder{color:#9ca3af}.field input:disabled,.field select:disabled,.field textarea:disabled{background:var(--color-bg-subtle);cursor:not-allowed}.field input[readonly]{background:var(--color-bg-subtle);color:var(--color-text-muted)}.field-link{background:var(--color-bg-subtle);color:var(--color-primary);border-radius:8px;padding:8px 12px;font-size:.875rem;text-decoration:none;transition:background .15s;display:block}.field-link:hover{background:var(--color-primary-lighter)}.field textarea{resize:vertical;min-height:80px}.checkbox{cursor:pointer;align-items:center;gap:8px;padding:8px 0;font-size:.875rem;display:flex}.checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.form-error{color:var(--color-destructive);background:#fee2e2;border-radius:6px;padding:8px 12px;font-size:.8125rem}.form-error-box{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;padding:12px 14px;font-size:.875rem;display:flex}.form-success-box{color:var(--color-success);background:#10b9811f;border-radius:10px;align-items:center;gap:8px;padding:12px 14px;font-size:.875rem;display:flex}.form-success-box svg{flex-shrink:0}.notification-stack{z-index:3000;flex-direction:column;gap:10px;width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:24px;right:24px}.notification{border:1px solid var(--color-border-gray);color:var(--color-text-primary);background:#fff;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:13px 14px;font-size:.875rem;line-height:1.4;display:grid;box-shadow:0 18px 48px #0f172a2e}.notification__content{flex-direction:column;gap:7px;min-width:0;display:flex}.notification__message{white-space:pre-line}.notification--error .notification__message{font-weight:700}.notification__request-id{color:currentColor;opacity:.82;align-items:center;gap:6px;min-width:0;font-size:.75rem;font-weight:400;display:flex}.notification__request-id span{overflow-wrap:anywhere;min-width:0}.notification__copy{color:currentColor;cursor:pointer;background:#0f172a14;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.notification__copy:hover{background:#0f172a24}.notification__copy-text{flex:none;font-size:.6875rem}.notification--success{color:#065f46;background:#ecfdf5;border-color:#10b98159}.notification--error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.notification--info{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.notification__close{color:currentColor;cursor:pointer;opacity:.7;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.notification__close:hover{opacity:1;background:#0f172a14}.notification-test-layout{gap:20px;display:grid}.notification-test-card{border:1px solid var(--color-border-gray);background:#fff;border-radius:16px;flex-direction:column;gap:16px;padding:20px;display:flex}.notification-test-card__header{justify-content:space-between;align-items:center;gap:16px;display:flex}.notification-test-card__title{font-size:1rem;font-weight:700}.notification-test-tip{color:var(--color-info);background:#3b82f614;border-radius:12px;align-items:flex-start;gap:8px;padding:12px 14px;font-size:.875rem;display:flex}.notification-test-tip svg{flex-shrink:0;margin-top:2px}.notification-test-actions{justify-content:flex-end;display:flex}.notification-user-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.notification-user-card{border:1px solid var(--color-border-gray);text-align:left;cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;gap:12px;padding:14px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.notification-user-card:hover{border-color:var(--color-primary-light);box-shadow:0 6px 18px #1f7a6314}.notification-user-card--selected{border-color:var(--color-primary);background:var(--color-primary-lighter)}.notification-user-card__top,.notification-user-card__bottom{justify-content:space-between;align-items:center;gap:12px;display:flex}.notification-user-card__bottom{color:var(--color-text-muted);font-size:.8125rem}.notification-role-badge{border-radius:999px;justify-content:center;align-items:center;min-width:82px;padding:4px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.notification-role-badge--admin{color:var(--color-info);background:#3b82f61f}.notification-role-badge--instructor{color:var(--color-primary-dark);background:#1f7a631f}.form-error-box svg{flex-shrink:0}.form-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;display:flex}.table-wrap{border-radius:var(--color-radius);border:1px solid var(--color-border-gray);background:#fff;overflow:hidden;box-shadow:0 1px 3px #0000000f}.table-wrap--scroll{overflow-x:auto}.table--settlements{min-width:960px}.table{border-collapse:collapse;width:100%}.table thead{background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border-gray)}.table th{text-align:left;height:48px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:10px 16px;font-size:.75rem;font-weight:600}.table td{color:var(--color-text);vertical-align:top;border-bottom:1px solid #f3f4f6;padding:12px 16px;font-size:.875rem}.table__primary{color:var(--color-text);font-weight:600}.table__secondary{color:var(--color-text-muted);white-space:pre-line;margin-top:4px;font-size:.8125rem;line-height:1.45}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:#fafafa}.revenue-customer-toggle{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}.revenue-details-row td{background:#fcfdfd}.revenue-details{flex-direction:column;gap:10px;display:flex}.revenue-details__header{color:var(--color-text-muted);font-size:.75rem;font-weight:600}.revenue-details__list{flex-direction:column;gap:8px;display:flex}.revenue-details__item{border:1px solid var(--color-border-gray);background:#fff;border-radius:10px;grid-template-columns:minmax(0,.55fr) minmax(0,.5fr) minmax(0,1.5fr) minmax(0,1fr) minmax(0,.8fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.revenue-details__item--scheduled{background:#fffbeb;border-color:#fde68a}.revenue-details__item--prepared{background:#eff6ff;border-color:#bfdbfe}.revenue-details__item--completed{background:#ecfdf5;border-color:#a7f3d0}.revenue-details__item--canceled{background:#fef2f2;border-color:#fecaca}.revenue-details__status-text{font-size:.8125rem;font-weight:700}.revenue-details__empty{color:var(--color-text-muted);font-size:.875rem}@media (width<=768px){.unpaid-summary-card{grid-template-columns:1fr}.unpaid-summary-card__header{justify-content:flex-start}.unpaid-chip-list{max-height:none}.revenue-details__item{grid-template-columns:1fr;gap:4px}}.table tfoot{background:var(--color-bg-subtle);border-top:2px solid var(--color-border-gray)}.table tfoot td{color:var(--color-text);font-weight:600}.table-actions{align-items:center;gap:6px;display:flex}.row-actions{align-items:center;gap:8px;display:flex}.empty-state{color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;font-size:.875rem;display:flex}.empty-state__icon{color:#d1d5db;width:48px;height:48px}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{border-radius:var(--color-radius);background:#fff;flex-direction:column;width:100%;max-height:calc(100vh - 48px);animation:.15s scaleIn;display:flex;box-shadow:0 20px 60px #0003}.modal--sm{max-width:480px}.modal--md{max-width:640px}.modal--lg{max-width:800px}.modal--xl{max-width:1024px}.modal__header{border-bottom:1px solid var(--color-border-gray);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal__title{color:var(--color-text);font-size:1.125rem;font-weight:600}.modal__close{width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;transition:background .15s;display:flex}.modal__close:hover{background:var(--color-bg-subtle)}.modal__body{flex:1;padding:24px;overflow-y:auto}.modal__footer{border-top:1px solid var(--color-border-gray);flex-shrink:0;justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.strongturtle-logo{align-items:center;gap:10px;line-height:0;display:inline-flex}.strongturtle-logo__icon{flex:none;width:38px;height:auto}.strongturtle-logo__wordmark{flex:none;width:133px;height:auto}.login-page{background:linear-gradient(135deg,#1f7a63 0%,#1b5e55 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-page .login-card{background:#fff;border-radius:20px;width:min(420px,100%);padding:40px 32px;box-shadow:0 25px 50px #00000040}.login-card__header{text-align:center;margin-bottom:32px}.login-card__brand{justify-content:center;margin:0 auto 16px}.login-card__subtitle{color:var(--color-text-muted);font-size:.875rem}.login-card__form{flex-direction:column;gap:16px;display:flex}.login-card__error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;padding:12px;font-size:.875rem;display:flex}.login-card__footer{text-align:center;border-top:1px solid var(--color-border-gray);margin-top:24px;padding-top:24px}.login-card__footer p{color:var(--color-text-muted);font-size:.75rem}.login-card__footer .app-version{color:var(--color-text-muted);align-items:center;margin-top:8px}.login-shell{background:linear-gradient(135deg,#1b5e55 0%,#1f7a63 50%,#2fa78a 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:40px;box-shadow:0 20px 60px #0003}.login-card h1{color:var(--color-text);letter-spacing:-.02em;margin-bottom:8px;font-size:1.5rem;font-weight:700}.login-card>p{color:var(--color-text-muted);margin-bottom:32px;font-size:.875rem}.login-card .form-field{margin-bottom:16px}.login-card .form-field label{color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:500;display:block}.login-card .form-field input{border:1px solid var(--color-border-gray);width:100%;color:var(--color-text);border-radius:8px;padding:10px 14px;font-size:.875rem;transition:border-color .15s}.login-card .form-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-lighter);outline:none}.login-card .button{width:100%;margin-top:24px;padding:12px;font-size:.9375rem}.login-card .form-error{color:#991b1b;background:#fee2e2;border-radius:8px;margin-top:12px;padding:10px 14px;font-size:.8125rem}.calendar{border-radius:var(--color-radius);border:1px solid var(--color-border-gray);background:#fff;overflow:hidden;box-shadow:0 1px 3px #0000000f}.calendar__header{border-bottom:1px solid var(--color-border-gray);background:var(--color-bg-subtle);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.calendar__title{color:var(--color-text);font-size:1rem;font-weight:600}.calendar__nav{align-items:center;gap:8px;display:flex}.calendar__nav-btn{border:1px solid var(--color-border-gray);cursor:pointer;background:#fff;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.calendar__nav-btn:hover{background:var(--color-bg-subtle)}.calendar__grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar__day-header{text-align:center;color:var(--color-text-muted);text-transform:uppercase;border-bottom:1px solid var(--color-border-gray);background:var(--color-bg-subtle);padding:10px 4px;font-size:.75rem;font-weight:600}.calendar__cell{vertical-align:top;border-bottom:1px solid #f3f4f6;border-right:1px solid #f3f4f6;min-height:100px;padding:8px}.calendar__cell:nth-child(7n){border-right:none}.calendar__cell--today{background:var(--color-primary-lighter)}.calendar__cell--other-month{opacity:.6;background:#fafafa}.calendar__date{color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:600}.calendar__cell--today .calendar__date{color:var(--color-primary)}.calendar__events{flex-direction:column;gap:3px;display:flex}.calendar__event{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-left:3px solid #0000;border-radius:4px;padding:3px 6px;font-size:.6875rem;font-weight:500;overflow:hidden}.calendar__event--scheduled{color:#374151;background:#f3f4f6;border-left-color:#9ca3af}.calendar__event--in_progress{color:#1e40af;background:#dbeafe;border-left-color:#3b82f6}.calendar__event--completed{color:#065f46;background:#d1fae5;border-left-color:#10b981}.calendar__event--canceled{color:#991b1b;background:#fee2e2;border-left-color:#ef4444;text-decoration:line-through}.calendar__empty-cell{color:#d1d5db;cursor:pointer;justify-content:center;align-items:center;height:32px;font-size:.75rem;display:flex}.schedule-list{flex-direction:column;gap:10px;display:flex}.schedule-item{border:1px solid var(--color-border-gray);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:16px;padding:14px 16px;transition:all .15s;display:flex}.schedule-item:hover{background:#f8fbff;border-color:#93c5fd;box-shadow:0 2px 8px #0000000f}.schedule-item__time{color:var(--color-text);min-width:80px;font-size:.8125rem;font-weight:600}.schedule-item__client{flex:1;min-width:0}.schedule-item__client-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:600;overflow:hidden}.schedule-item__client-meta{color:var(--color-text-muted);margin-top:2px;font-size:.75rem}.schedule-item__instructor{color:var(--color-text-muted);text-align:right;min-width:80px;font-size:.8125rem}.pagination{justify-content:center;align-items:center;gap:4px;margin-top:20px;display:flex}.pagination__btn{border:1px solid var(--color-border-gray);cursor:pointer;width:36px;height:36px;color:var(--color-text);background:#fff;border-radius:8px;justify-content:center;align-items:center;font-size:.875rem;transition:all .15s;display:flex}.pagination__btn:hover:not(:disabled){background:var(--color-bg-subtle)}.pagination__btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pagination__btn:disabled{opacity:.4;cursor:not-allowed}.text-link{color:var(--color-primary);font-size:.875rem;font-weight:500;text-decoration:none}.text-link:hover{text-decoration:underline}.button-link{color:var(--color-primary);cursor:pointer;background:0 0;border:0;padding:0;font-size:.8125rem;text-decoration:underline}.button-link--danger{color:var(--color-destructive)}.button-link:disabled{opacity:.5;cursor:not-allowed}.edit-banner{color:#854d0e;background:#fef9c3;border:1px solid #fde047;border-radius:8px;margin-bottom:12px;padding:8px 12px;font-size:.8125rem}.panel{background:0 0}.divider{background:var(--color-border-gray);height:1px;margin:24px 0}.section{margin-bottom:32px}.section__title{color:var(--color-text);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:1rem;font-weight:600;display:flex}.paid-label{color:#065f46;background:#d1fae5;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:500;display:inline-flex}@media (width<=1024px){.main-content{margin-left:0}.form-grid--three{grid-template-columns:repeat(2,1fr)}.entity-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (width<=768px){.page{padding:16px}.page__header{padding-right:56px}.notification-user-grid{grid-template-columns:1fr}.notification-test-actions{justify-content:stretch}.notification-test-actions .button{width:100%}.form-grid--two,.form-grid--three,.form-grid--four{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.calendar__cell{min-height:80px}.toolbar{flex-direction:column;align-items:stretch}.toolbar__field{width:100%}}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:24px;display:flex}.pagination__pages{align-items:center;gap:4px;display:flex}.pagination__page-wrap{align-items:center;gap:4px;display:inline-flex}.pagination__button{border:1px solid var(--color-border-gray);color:var(--color-text-primary);cursor:pointer;background:#fff;border-radius:8px;min-width:38px;padding:8px 12px;font-size:14px}.pagination__button:disabled{color:var(--color-text-muted);cursor:not-allowed;opacity:.55}.pagination__button--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination__gap,.pagination__summary{color:var(--color-text-muted);font-size:14px}.audit-page{max-width:1540px}.audit-page__header{align-items:flex-end}.audit-page__eyebrow{color:var(--color-primary);letter-spacing:.16em;margin-bottom:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.6875rem;font-weight:800}.audit-page__count{border:1px solid var(--color-border);color:var(--color-text-muted);background:#fff;border-radius:12px;align-items:baseline;gap:5px;padding:12px 16px;display:flex;box-shadow:0 8px 24px #18493d0f}.audit-page__count span,.audit-page__count small{font-size:.75rem}.audit-page__count strong{color:var(--color-primary-dark);font-variant-numeric:tabular-nums;font-size:1.375rem}.audit-filter{border:1px solid var(--color-border-gray);background:#fff;border-radius:14px;grid-template-columns:minmax(200px,1.4fr) minmax(190px,1fr) 150px 150px auto;align-items:end;gap:12px;margin-bottom:18px;padding:16px;display:grid}.audit-filter label{flex-direction:column;gap:6px;min-width:0;display:flex}.audit-filter label>span{color:var(--color-text-muted);font-size:.75rem;font-weight:600}.audit-filter .filter-dropdown{width:100%}.audit-filter__input-wrap{border:1px solid var(--color-border-gray);height:38px;color:var(--color-text-muted);border-radius:10px;align-items:center;gap:8px;padding:0 12px;display:flex}.audit-filter__input-wrap:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #2fa78a1f}.audit-filter__input-wrap input{width:100%;color:var(--color-text);font:inherit;background:0 0;border:0;outline:0;font-size:.875rem}.audit-filter__date{border:1px solid var(--color-border-gray);width:100%;min-height:38px;color:var(--color-text);font:inherit;background:#fff;border-radius:10px;padding:7px 10px;font-size:.8125rem}.audit-filter__clear{background:var(--color-bg-subtle);min-height:38px;color:var(--color-text-muted);cursor:pointer;font:inherit;border:0;border-radius:10px;padding:0 14px;font-size:.8125rem;font-weight:600}.audit-filter__clear:hover{background:var(--color-primary-lighter);color:var(--color-primary-dark)}.audit-table-wrap{border:1px solid var(--color-border-gray);background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px #18493d0d}.audit-table{border-collapse:collapse;width:100%;font-size:.8125rem}.audit-table th{border-bottom:1px solid var(--color-border-gray);color:var(--color-text-muted);letter-spacing:.04em;text-align:left;text-transform:uppercase;background:#f4f8f7;padding:11px 16px;font-size:.6875rem;font-weight:700}.audit-table td{vertical-align:middle;border-bottom:1px solid #eef1f0;padding:14px 16px}.audit-table tbody tr:last-child td{border-bottom:0}.audit-table tbody tr:hover{background:#fafcfb}.audit-table time{color:#374151;font-variant-numeric:tabular-nums;white-space:nowrap}.audit-action{align-items:center;gap:10px;display:flex}.audit-action__mark{background:var(--color-primary-lighter);width:32px;height:32px;color:var(--color-primary-dark);border-radius:9px;flex:none;justify-content:center;align-items:center;display:inline-flex}.audit-action strong,.audit-action small{display:block}.audit-action strong{font-size:.8125rem}.audit-action small{color:#9ca3af;margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.625rem}.audit-actor{align-items:center;gap:6px;font-weight:600;display:inline-flex}.audit-target{color:#4b5563;background:#f3f4f6;border-radius:999px;padding:4px 8px;font-size:.6875rem;font-weight:700}.audit-correlation{color:#667085;white-space:nowrap;font-size:.6875rem}.audit-detail-button{color:var(--color-primary);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;align-items:center;gap:2px;padding:6px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.audit-card-list{display:none}.audit-state,.audit-modal-loading{min-height:260px;color:var(--color-text-muted);text-align:center;background:#fff;border:1px dashed #cbd5d1;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.audit-state strong{color:var(--color-text)}.audit-state--error svg{color:var(--color-destructive)}.audit-skeleton{border:1px solid var(--color-border-gray);background:#fff;border-radius:14px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.audit-skeleton span{background:linear-gradient(90deg,#f6f8f7 25%,#edf2f0 50%,#f6f8f7 75%) 0 0/200% 100%;height:65px;animation:1.3s infinite audit-shimmer}@keyframes audit-shimmer{to{background-position:-200% 0}}.audit-detail{flex-direction:column;gap:20px;display:flex}.audit-detail__hero{border-bottom:1px solid var(--color-border-gray);align-items:center;gap:14px;padding-bottom:18px;display:flex}.audit-detail__icon{background:var(--color-primary-dark);color:#fff;border-radius:14px;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.audit-detail__hero span{color:var(--color-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.625rem;font-weight:700}.audit-detail__hero h3{margin:2px 0 3px;font-size:1.125rem}.audit-detail__summary{color:var(--color-text-muted);flex-wrap:wrap;gap:6px 12px;font-size:.75rem;display:flex}.audit-detail__summary strong{color:var(--color-text)}.audit-context-grid{border:1px solid var(--color-border-gray);background:var(--color-border-gray);border-radius:12px;grid-template-columns:.8fr .8fr 1.8fr .8fr;gap:1px;display:grid;overflow:hidden}.audit-context-grid>div{background:#fff;min-width:0;padding:12px 14px}.audit-context-grid__wide{grid-column:1/-1}.audit-context-grid dt{color:var(--color-text-muted);margin-bottom:4px;font-size:.6875rem}.audit-context-grid dd{overflow-wrap:anywhere;font-size:.8125rem;font-weight:600}.audit-context-grid code{color:var(--color-primary-dark);font-size:.75rem}.audit-changes__heading{justify-content:space-between;align-items:flex-end;margin-bottom:10px;display:flex}.audit-changes__heading span{color:var(--color-primary);letter-spacing:.12em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.625rem;font-weight:800}.audit-changes__heading h4{margin-top:2px;font-size:.9375rem}.audit-changes__heading>strong{color:var(--color-primary-dark);font-size:1.125rem}.audit-change-list{flex-direction:column;gap:8px;max-height:410px;display:flex;overflow-y:auto}.audit-change{border:1px solid var(--color-border-gray);background:#fcfdfd;border-radius:12px;grid-template-columns:minmax(220px,1.4fr) auto minmax(230px,1fr);align-items:center;gap:16px;padding:14px;display:grid}.audit-change__identity>*{display:block}.audit-change__lesson-id{color:var(--color-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.625rem;font-weight:800}.audit-change__identity strong{margin:3px 0;font-size:.875rem}.audit-change__identity>span:last-child,.audit-change__facts{color:var(--color-text-muted);font-size:.6875rem}.audit-change__status{color:#9ca3af;align-items:center;gap:5px;display:flex}.audit-status{white-space:nowrap;border-radius:7px;padding:5px 8px;font-size:.6875rem;font-weight:700}.audit-status--waiting{color:#4b5563;background:#f3f4f6}.audit-status--unpaid{color:#92400e;background:#fef3c7}.audit-status--paid{color:#065f46;background:#d1fae5}.audit-change__facts{flex-wrap:wrap;justify-content:flex-end;gap:5px 12px;display:flex}.audit-change__facts strong{color:#374151}.audit-raw-detail{color:#d1fae5;background:#111827;border-radius:10px;padding:16px;font-size:.75rem;overflow:auto}.audit-detail-fields{gap:10px;display:grid}.audit-detail-field{border:1px solid var(--color-border-gray);background:#fcfdfd;border-radius:12px;grid-template-columns:minmax(120px,.22fr) minmax(0,1fr);gap:10px;padding:12px 14px;display:grid}.audit-detail-field dt{color:var(--color-text-muted);font-size:.75rem;font-weight:700}.audit-detail-field dd{min-width:0;color:var(--color-text);overflow-wrap:anywhere;font-size:.8125rem;font-weight:600}.audit-detail-field dd>.audit-detail-fields{gap:6px}.audit-detail-field dd>.audit-detail-fields .audit-detail-field{background:#fff;border-radius:8px;grid-template-columns:minmax(72px,.16fr) minmax(0,1fr);gap:8px;padding:7px 9px}.audit-detail-field dd>.audit-detail-fields .audit-detail-field dt{font-size:.6875rem}.audit-detail-value{white-space:pre-wrap}.audit-detail-array{gap:8px;display:grid}.audit-detail-array__item{border:1px dashed var(--color-border-gray);background:#fff;border-radius:10px;padding:6px}.audit-advanced{border-top:1px solid var(--color-border-gray);padding-top:14px}.audit-advanced summary{color:var(--color-primary-dark);cursor:pointer;font-size:.8125rem;font-weight:800}.audit-advanced .audit-context-grid{margin:14px 0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1180px){.audit-filter{grid-template-columns:minmax(200px,1fr) minmax(190px,1fr) 150px 150px}.audit-filter__clear{grid-column:4}.audit-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-change{grid-template-columns:1fr auto}.audit-change__facts{grid-column:1/-1;justify-content:flex-start}}@media (width<=768px){.audit-page__header{align-items:flex-start}.audit-page__count{justify-content:center;width:100%}.audit-filter{grid-template-columns:1fr 1fr;padding:14px}.audit-filter__actor,.audit-filter label:nth-child(2),.audit-filter__clear{grid-column:1/-1}.audit-table-wrap{display:none}.audit-card-list{flex-direction:column;gap:10px;display:flex}.audit-card{border:1px solid var(--color-border-gray);border-left:4px solid var(--color-primary-light);width:100%;color:var(--color-text);cursor:pointer;font:inherit;text-align:left;background:#fff;border-radius:12px;flex-direction:column;gap:7px;padding:15px;display:flex}.audit-card__time{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.6875rem}.audit-card__meta{color:var(--color-text-muted);align-items:center;gap:12px;font-size:.75rem;display:flex}.audit-card__meta span{align-items:center;gap:4px;display:inline-flex}.audit-card code{color:var(--color-primary-dark);text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.audit-context-grid{grid-template-columns:1fr}.audit-context-grid__wide{grid-column:auto}.audit-change{grid-template-columns:1fr}.audit-change__status{justify-content:flex-start}.audit-change__facts{grid-column:auto}}
