*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}#root{height:100%}body{background:var(--color-bg-page);color:var(--color-text)}.app-shell{height:100vh;height:100dvh}:root{--color-topbar: #1A0230;--color-heading: #3B0764;--color-nav: #2A0548;--color-nav-active: #43106E;--color-highlight: #BE185D;--color-primary: #6D28D9;--color-primary-hover: #5B21B6;--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #475569;--color-border: #cbd5e1;--color-border-subtle: #f1f5f9;--color-surface: #ffffff;--color-bg-subtle: #f1f5f9;--color-danger: #c00;--color-danger-border: #fca5a5;--color-danger-bg: #fee2e2;--color-success: #16a34a;--color-success-bg: #dcfce7;--color-amber: #f59e0b;--color-bg-page: #F1EDF8;--color-black: #000;--color-border-light: #e2e8f0;--color-border-neutral: #ccc;--color-brown-text: #713f12;--color-danger-bg-soft: #fef2f2;--color-danger-bg-strong: #fecaca;--color-danger-solid: #dc2626;--color-danger-strong: #ef4444;--color-danger-text: #991b1b;--color-indigo-bg: #e0e7ff;--color-indigo-text: #3730a3;--color-info-bg: #eff6ff;--color-info-border: #dbeafe;--color-info-border-strong: #bfdbfe;--color-info-light: #93c5fd;--color-info-strong: #1e40af;--color-info-text: #1e3a8a;--color-lime-bg: #d9f99d;--color-neutral-bg: #f5f5f5;--color-orange-bg: #fed7aa;--color-sky-bg: #e0f2fe;--color-sky-text: #075985;--color-success-bg-soft: #f0fdf4;--color-success-border: #bbf7d0;--color-success-dark: #15803d;--color-success-strong: #22c55e;--color-success-text: #166534;--color-teal-bg: #ccfbf1;--color-text-faint: #94a3b8;--color-text-heading: #0f172a;--color-text-strong: #334155;--color-violet-bg: #ede9fe;--color-violet-text: #5b21b6;--color-warning: #b45309;--color-warning-bg: #fffbeb;--color-warning-bg-strong: #fef3c7;--color-warning-border: #fde68a;--color-warning-border-strong: #fcd34d;--color-warning-text: #92400e;--color-white: #fff;--color-yellow-bg: #fef9c3;--color-yellow-bg-soft: #fefce8;--color-overlay: rgba(0,0,0,.4);--color-shadow: rgba(0,0,0,.08);--color-shadow-strong: rgba(0,0,0,.2);--color-shadow-medium: rgba(0,0,0,.15);--color-shadow-soft: rgba(0,0,0,.1);--color-shadow-slate: rgba(15, 23, 42, .12);--radius-sm: 4px;--radius-md: 8px;--radius-pill: 12px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .08)}h1,h2{color:var(--color-heading)}.h2{margin-top:0;margin-bottom:24px;font-size:1.4em;color:var(--color-heading)}.h3{margin-top:0;margin-bottom:12px;font-size:16px}.input{padding:6px 10px;font-size:14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit}.btn{padding:8px 16px;font-size:14px;background:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-pill);cursor:pointer}.btn:hover{background:var(--color-primary-hover)}.btn:disabled{opacity:.6;cursor:default}.btn-secondary{padding:8px 16px;font-size:14px;background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer}.btn-secondary:hover{background:var(--color-bg-subtle)}.btn-danger{color:var(--color-danger);border-color:var(--color-danger-border)}.badge{padding:2px 8px;border-radius:var(--radius-pill);font-size:12px;display:inline-block}.card-table{width:100%;border-collapse:collapse;background:var(--color-surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.card-table th{padding:10px 16px;text-align:left;font-size:13px;font-weight:600;color:var(--color-text-muted);background:var(--color-bg-subtle)}.card-table td{padding:12px 16px;border-top:1px solid var(--color-border-subtle);font-size:14px}.err-text{color:var(--color-danger);font-size:13px}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.record-page{display:flex;flex-direction:column;gap:20px}.record-columns{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}.record-side,.record-main{display:flex;flex-direction:column;gap:20px;min-width:0}.record-side.is-pinned{position:sticky;top:0}@media (max-width: 1100px){.record-columns{grid-template-columns:minmax(0,1fr)}.record-side.is-pinned{position:static}}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:16px 20px}.card>h3:first-child{margin-top:0}.card .card-table{box-shadow:none;border-radius:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.filter-select{position:relative;display:inline-block}.filter-select-box{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:140px;max-width:260px;padding:8px 12px;font-size:13px;font-family:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;text-align:left}.filter-select-box:hover{border-color:var(--color-text-faint)}.filter-select-box.is-open,.filter-select-box:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb26}.filter-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-select-value.is-placeholder{color:var(--color-text-secondary)}.filter-select-chevron{flex:none;color:var(--color-text-secondary);transition:transform .15s}.filter-select-box.is-open .filter-select-chevron{transform:rotate(180deg)}.filter-select-menu{position:absolute;z-index:50;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:320px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-pill);box-shadow:0 8px 24px var(--color-shadow-slate);overflow:hidden}.filter-select-menu.align-right{left:auto;right:0}.filter-select-menu.open-up{top:auto;bottom:calc(100% + 6px)}.filter-select-search{display:block;width:calc(100% - 16px);margin:8px;padding:7px 10px;font-size:13px;font-family:inherit;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md)}.filter-select-search:focus{border-color:var(--color-primary);outline:none}.filter-select-list{list-style:none;margin:0;padding:6px;max-height:300px;overflow-y:auto;outline:none}.filter-select-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;font-size:13px;color:var(--color-text);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap}.filter-select-option.is-active{background:var(--color-bg-subtle)}.filter-select-option.is-selected{background:var(--color-info-bg);color:var(--color-info-text);font-weight:500}.filter-select-option.is-selected svg{color:var(--color-primary);flex:none}.filter-select-list:focus-visible .filter-select-option.is-active{box-shadow:inset 0 0 0 2px #2563eb59}.filter-select-empty{margin:0;padding:4px 16px 12px;font-size:13px;color:var(--color-text-secondary)}.filter-select-option>span{overflow:hidden;text-overflow:ellipsis}.manage-menu-box{min-width:0}.filter-select-menu.manage-menu-float{z-index:1100;min-width:160px}.subjects-table-wrap{max-width:100%;overflow-x:auto}.filter-select-option.is-danger{color:var(--color-danger)}.filter-select-option.is-danger:before{content:"";position:absolute;left:6px;right:6px;top:-4px;border-top:1px solid var(--color-border-subtle)}.filter-select-option.is-danger{position:relative;margin-top:8px}.manage-menu-note{margin:0;padding:8px 14px 10px;max-width:280px;font-size:12px;line-height:1.45;color:var(--color-text-secondary);white-space:normal}.fees-rows{width:100%;border-collapse:collapse}.fees-rows th{width:140px;padding:10px 12px 10px 0;text-align:left;font-size:14px;font-weight:600;vertical-align:top}.fees-rows td{padding:8px 0;font-size:14px;vertical-align:top}.fees-rows tr+tr th,.fees-rows tr+tr td{border-top:1px solid var(--color-border-subtle)}.fees-rows .fees-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:4px}.fees-rows .fees-hint{margin-top:4px;font-size:12px;color:var(--color-text-secondary)}.fees-rows .fees-action{width:1%;text-align:right;white-space:nowrap}.filter-select-box.is-multi{cursor:pointer;width:300px;max-width:300px;padding:5px 8px 5px 6px;min-height:34px;gap:6px;justify-content:flex-start}.filter-select-box.is-multi:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.filter-select-toggle{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 4px 3px 6px;font:inherit;font-size:13px;color:var(--color-text);background:none;border:none;cursor:pointer;text-align:left;white-space:nowrap;outline:none}.filter-select-more{color:var(--color-text-secondary);font-size:12px}.filter-chip{display:inline-flex;align-items:center;gap:4px;flex:none;max-width:92px;padding:2px 4px 2px 8px;font-size:12px;font-weight:500;color:var(--color-primary-hover);background:var(--color-info-bg);border-radius:var(--radius-md);white-space:nowrap;overflow:hidden}.filter-chip button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:16px;height:16px;padding:0;color:inherit;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.filter-chip button:hover,.filter-chip button:focus-visible{background:var(--color-info-border);outline:none}.filter-select-option.is-multi{justify-content:flex-start;gap:10px}.filter-check{display:inline-flex;align-items:center;justify-content:center;flex:none;width:16px;height:16px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.filter-check.is-checked{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.filter-select-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;font-size:12px;color:var(--color-text-secondary);background:var(--color-bg-page);border-top:1px solid var(--color-border-light)}.filter-select-clear{padding:0;font:inherit;font-size:13px;font-weight:600;color:var(--color-primary);background:none;border:none;cursor:pointer}.filter-select-clear:hover{text-decoration:underline}.filter-select-clear:disabled{color:var(--color-text-secondary);cursor:default;text-decoration:none}.filter-chip-label{overflow:hidden;text-overflow:ellipsis}.filter-select.is-form{display:block}.filter-select.is-form .filter-select-box{width:100%;min-width:160px;max-width:none;padding:8px 10px;font-size:14px}.filter-select.is-form .filter-select-option{font-size:14px}.filter-select-box:disabled{background:var(--color-bg-subtle);color:var(--color-text-secondary);cursor:not-allowed}.filter-select-box:disabled:hover{border-color:var(--color-border)}.filter-select-box.is-invalid{border-color:var(--color-danger)}.filter-select-box.is-invalid:focus-visible,.filter-select-box.is-invalid.is-open{border-color:var(--color-danger);box-shadow:0 0 0 3px #cc000026}.field-error{margin:4px 0 0;font-size:12px;color:var(--color-danger)}.filter-select.is-form .filter-select-box.is-multi{padding:5px 8px 5px 6px;min-height:37px}.filter-select.is-form .filter-select-toggle{font-size:14px}.filter-select-box.is-multi.is-invalid:focus-within{border-color:var(--color-danger);box-shadow:0 0 0 3px #cc000026}.record-columns.side-right{grid-template-columns:minmax(0,1fr) 380px}@media (max-width: 1100px){.record-columns.side-right{grid-template-columns:minmax(0,1fr)}}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}@media (max-width: 640px){.form-grid{grid-template-columns:minmax(0,1fr)}}.form-field{display:flex;flex-direction:column;gap:4px;min-width:0}.form-field.is-wide{grid-column:1 / -1}.form-label{font-size:12px;color:var(--color-text-secondary)}.form-required{color:var(--color-danger)}.form-hint{font-size:12px;color:var(--color-text-secondary)}.form-field .input{width:100%;padding:8px 10px;border-radius:var(--radius-pill)}.form-field .input[aria-invalid=true]{border-color:var(--color-danger)}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.saved-notice-region{position:fixed;right:24px;bottom:24px;z-index:1000;max-width:min(440px,calc(100vw - 32px))}.saved-notice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;border-radius:var(--radius-md);border:1px solid var(--color-success-border);color:var(--color-success-text);background:var(--color-success-bg);box-shadow:0 4px 12px var(--color-shadow)}.saved-notice-close{margin-left:auto;padding:0 4px;border:none;background:none;color:inherit;cursor:pointer;font-size:14px}.lead-created{margin:0;padding:10px 14px;font-size:13px;border-radius:var(--radius-md);color:var(--color-success-text);background:var(--color-success-bg)}.option-buttons{display:flex;flex-wrap:wrap;gap:8px}.option-button{padding:7px 14px;font:inherit;font-size:13px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer}.option-button:hover{border-color:var(--color-text-faint)}.option-button.is-chosen{color:var(--color-info-text);background:var(--color-info-bg);border-color:var(--color-primary);font-weight:500}.option-button:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb40}.preview-list{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0;font-size:13px}.preview-list dt{color:var(--color-text-secondary)}.preview-list dd{margin:0;overflow-wrap:anywhere}.preview-subjects{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.preview-subjects li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:13px;background:var(--color-bg-subtle);border-radius:var(--radius-md)}.preview-status{font-size:11px;color:var(--color-text-secondary);white-space:nowrap}.duplicate-card{background:var(--color-yellow-bg-soft);border:1px solid var(--color-warning-border)}.duplicate-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.duplicate-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:13px;background:var(--color-surface);border-radius:var(--radius-md)}.duplicate-list .btn{flex:none;text-decoration:none;font-size:13px;padding:6px 12px;white-space:nowrap}.duplicate-name{min-width:0;overflow-wrap:anywhere}.duplicate-kind{margin-left:6px;padding:1px 8px;font-size:11px;color:var(--color-text-muted);background:var(--color-bg-subtle);border-radius:var(--radius-pill)}.only-narrow{display:none}@media (max-width: 1100px){.only-narrow{display:block}.only-wide{display:none}}.side-note{margin:0;font-size:13px;color:var(--color-text-secondary)}.side-note.is-clear{color:var(--color-success-text)}.link-button{padding:0;font:inherit;color:var(--color-primary);background:none;border:none;cursor:pointer;text-decoration:underline}.phone-field{display:flex;flex-direction:column;gap:4px;min-width:0}.phone-field-row{display:flex;gap:8px;align-items:flex-start}.phone-field-country{flex:none;width:170px}.phone-field-country .filter-select-box{min-width:0}.phone-field-row .input{flex:1;min-width:0}.phone-field.is-stacked .phone-field-row{flex-direction:column;align-items:stretch}.phone-field.is-stacked .phone-field-country{width:100%}.phone-field-row .input{padding:8px 10px;border-radius:var(--radius-pill)}.phone-field-row .input[aria-invalid=true]{border-color:var(--color-danger)}.students-table-wrap{max-width:100%;overflow-x:auto;overflow-y:hidden;border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.students-table-wrap:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb40}.students-table{min-width:1500px;box-shadow:none}.students-table th{white-space:nowrap}.students-table td.student-cell{vertical-align:top}.students-table td.subject-cell-more{border-top:1px dashed var(--color-border-subtle)}.students-table tr.is-inactive td.subject-cell{color:var(--color-text-muted)}.students-table tr.is-highlighted td{background:var(--color-info-border)}.activity-table-wrap{max-width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md)}.activity-table-wrap:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb40}.activity-table{table-layout:fixed;width:100%;min-width:1060px}.activity-table th{white-space:nowrap}.activity-table td{vertical-align:top;overflow-wrap:break-word;word-break:normal;line-height:1.45}.activity-table .activity-when{white-space:nowrap;color:var(--color-text-muted)}.activity-table .activity-kind{white-space:nowrap;display:inline-block}.activity-kind{justify-self:start;padding:2px 8px;font-size:11px;font-weight:600;border-radius:var(--radius-pill);background:var(--color-bg-subtle);color:var(--color-text-muted)}.activity-kind.is-call{background:var(--color-sky-bg);color:var(--color-sky-text)}.activity-kind.is-status{background:var(--color-violet-bg);color:var(--color-violet-text)}.activity-kind.is-payment{background:var(--color-success-bg);color:var(--color-success-text)}.activity-kind.is-discount{background:var(--color-warning-bg-strong);color:var(--color-warning-text)}.desk-subjects{display:flex;flex-direction:column;gap:6px}.desk-subject{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:34px}.desk-preview{margin-bottom:4px}.flash-in{animation:flash-in .4s ease-out}@keyframes flash-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.flash-in{animation:none}}
