@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--primary: #16a05a;--primary-soft: #e8f6ee;--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f8fafc;--border: #eef0f5;--text: #0f172a;--text-2: #64748b;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .05);--sider: #1e232b;color-scheme:light}:root[data-theme=dark]{--primary-soft: rgba(22, 160, 90, .16);--bg: #1a1e25;--surface: #222731;--surface-2: #1e232b;--border: #30363f;--text: #e5e7eb;--text-2: #94a3b8;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter Variable,Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app-layout{min-height:100vh}.app-sider{position:sticky!important;top:0;height:100vh;box-shadow:1px 0 #ffffff0a;z-index:20}.app-sider .ant-layout-sider-children{display:flex;flex-direction:column}.sider-scroll{flex:1;overflow-y:auto;padding-bottom:16px;scrollbar-width:thin;scrollbar-color:#334155 transparent}.side-menu.ant-menu{border-inline-end:none!important;background:transparent}.side-menu .ant-menu-item-selected{box-shadow:0 6px 16px #16a05a59}.brand{height:68px;display:flex;align-items:center;gap:12px;padding:0 22px;color:#fff;flex-shrink:0}.brand-collapsed{justify-content:center;padding:0}.brand-logo{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700;font-size:22px;color:#fff;background:radial-gradient(circle at 30% 30%,#1fb86a,#16a05a 60%,#0f7a43);box-shadow:0 6px 18px #16a05a66;flex-shrink:0}.brand-text{display:flex;flex-direction:column;line-height:1.2}.brand-text b{font-size:17px}.brand-text small{color:#94a3b8;font-size:13px}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px)}.header-left,.header-right{display:flex;align-items:center;gap:6px;min-width:0}.header-breadcrumb{margin-left:6px;white-space:nowrap;overflow:hidden}.header-icon-btn.ant-btn{width:40px;height:40px;font-size:17px;color:var(--text-2)}.user-chip{display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:3px 14px 3px 3px;cursor:pointer;color:var(--text);font:inherit;margin-left:6px}.user-chip:hover{border-color:var(--primary)}.user-avatar.ant-avatar{background:linear-gradient(135deg,#1fb86a,#0f7a43);font-weight:600}.user-chip-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;text-align:left}.user-chip-text b{font-size:14px;font-weight:600}.user-chip-text small{font-size:12px;color:var(--text-2)}.menu-user{display:flex;flex-direction:column;color:var(--text)}.menu-user span{font-size:13px;color:var(--text-2)}.app-content{padding:24px;min-width:0}.page-header{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-bottom:20px}.page-header-title{display:flex;align-items:center;gap:14px;min-width:0}.page-title.ant-typography{margin:0!important;font-weight:700;letter-spacing:-.2px}.page-subtitle{color:var(--text-2);font-size:14px;margin-top:2px}.icon-badge{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;color:var(--badge);background:color-mix(in srgb,var(--badge) 13%,transparent);flex-shrink:0}.surface{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}.ant-card{box-shadow:var(--shadow);border-color:var(--border)!important}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.toolbar-filters,.toolbar-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.table-card .ant-table-wrapper .ant-table{background:transparent}.table-card .ant-table-pagination{padding:0 20px}.table-card .ant-table-thead>tr>th{font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.table-card .ant-table-wrapper .ant-table .ant-table-thead>tr>th:first-child,.table-card .ant-table-wrapper .ant-table .ant-table-tbody>tr:not(.ant-table-placeholder)>td:first-child{padding-left:20px}.table-card .ant-table-wrapper .ant-table .ant-table-thead>tr>th:last-child,.table-card .ant-table-wrapper .ant-table .ant-table-tbody>tr:not(.ant-table-placeholder)>td:last-child{padding-right:20px}.equal-row>.ant-col{display:flex}.equal-row>.ant-col>.ant-card,.equal-row>.ant-col>div{width:100%}.equal-row>.ant-col>.ant-card{display:flex;flex-direction:column}.equal-row>.ant-col>.ant-card>.ant-card-body{flex:1}.compact-list .toolbar{padding:0 0 12px;border-bottom:none}.clickable{cursor:pointer}.muted{color:var(--text-2);opacity:.6}.thumb{max-height:64px;border-radius:8px}.file-input{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cell-title{display:flex;align-items:center;gap:10px;font-weight:500}.money-cell{font-variant-numeric:tabular-nums;font-weight:500}.money-negative{color:#ef4444}.money-positive-debt{color:#ef4444;font-weight:600}.record-form .ant-form-item{margin-bottom:14px}.record-form .ant-form-item-label>label{font-weight:500;color:var(--text-2)}.detail-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:20px}.ant-tag{font-size:14px;line-height:24px}.summary-tile{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.summary-tile span{display:block;font-size:13px;color:var(--text-2);margin-bottom:4px}.summary-tile b{font-size:18px;font-variant-numeric:tabular-nums}.summary-tile b span{display:inline;margin:0;font-size:inherit}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 24px}.detail-item{padding:10px 0;border-bottom:1px dashed var(--border);min-width:0}.detail-item>span{display:block;font-size:13px;color:var(--text-2);margin-bottom:3px}.detail-item>div{word-break:break-word}.detail-tabs{margin-top:24px}.hero{position:relative;overflow:hidden;border-radius:20px;padding:28px;color:#fff;background:radial-gradient(circle at 85% 20%,rgba(110,231,160,.35),transparent 45%),linear-gradient(135deg,#16a05a,#0f7a43);box-shadow:0 18px 40px #16a05a4d;margin-bottom:24px}.hero h2{margin:0 0 6px;font-size:24px;font-weight:700}.hero p{margin:0 0 18px;opacity:.85}.hero-actions{display:flex;flex-wrap:wrap;gap:10px}.hero-actions .ant-btn{background:#ffffff29;border:1px solid rgba(255,255,255,.28);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-actions .ant-btn:hover{background:#ffffff47!important;color:#fff!important;border-color:#ffffff80!important}.hero-filter{position:absolute;top:24px;right:24px}.kpi{display:flex;gap:14px;align-items:flex-start;padding:18px;height:100%}.kpi>.icon-badge{flex:none}.kpi>div:last-child{flex:1;min-width:0;container-type:inline-size}.kpi-label{color:var(--text-2);font-size:14px}.kpi-value{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;font-size:24px;font-weight:700;letter-spacing:-.3px;font-variant-numeric:tabular-nums;line-height:1.3;white-space:nowrap}.kpi-value.is-money{font-size:clamp(18px,16cqi,24px)}.kpi-value small{font-size:14px;font-weight:500;color:var(--text-2)}.bar-list{display:flex;flex-direction:column;gap:12px}.bar-row{display:grid;grid-template-columns:minmax(90px,40%) 1fr auto;gap:12px;align-items:center;font-size:14px}.bar-row-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-2)}.bar-track{height:8px;border-radius:99px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden}.bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#1fb86a,#0f7a43)}.bar-row-value{font-weight:600;font-variant-numeric:tabular-nums}.att-stats{display:flex;flex-wrap:wrap;gap:8px}.att-status .ant-radio-button-wrapper{font-weight:500}.att-status .ant-radio-button-wrapper-checked.att-1{--att: #16a34a}.att-status .ant-radio-button-wrapper-checked.att-0{--att: #f59e0b}.att-status .ant-radio-button-wrapper-checked.att-X{--att: #ef4444}.att-status .ant-radio-button-wrapper-checked.att-skip{--att: #64748b}.att-status .ant-radio-button-wrapper-checked,.att-status .ant-radio-button-wrapper-checked:hover{background:var(--att)!important;border-color:var(--att)!important;color:#fff!important}.att-status .ant-radio-button-wrapper-checked:before{background-color:var(--att)!important}.att-row-done td{background:color-mix(in srgb,#16a34a 4%,transparent)}.att-group-opt{display:flex;align-items:center;gap:8px}.att-group-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.att-group-time{color:var(--text-2);font-size:13px;font-variant-numeric:tabular-nums}.att-group-opt .ant-tag{margin-inline-end:0}.k2,.k2-drawer{--k-over: #dc2626;--k-under: #b45309;--k-full: #15803d;--k-violet: #7c3aed}:root[data-theme=dark] .k2,:root[data-theme=dark] .k2-drawer{--k-over: #f87171;--k-under: #fbbf24;--k-full: #4ade80;--k-violet: #a78bfa}.k2-panel{padding:32px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.k2-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.k2-stat{display:flex;align-items:center;gap:12px;min-width:0;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.k2-stat>div{display:flex;flex-direction:column;min-width:0}.k2-stat small{color:var(--text-2);font-size:13px}.k2-stat b{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.k2-stat.is-alert b{color:var(--k-over)}.k2-stat-icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-size:18px;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent)}.k2-stat-icon.i-violet{--c: var(--k-violet)}.k2-stat-icon.i-green{--c: #16a34a}.k2-stat-icon.i-blue{--c: #0ea5e9}.k2-stat-icon.i-red{--c: var(--k-over)}.k2-months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;padding:10px;margin-bottom:14px;background:var(--surface);border:1px solid var(--border);border-radius:14px}.k2-month{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px 2px 4px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);font:inherit;cursor:pointer;transition:background .15s,border-color .15s}.k2-month:hover:not(:disabled){background:var(--surface-2)}.k2-month:disabled{cursor:default;opacity:.4}.k2-month.on{border-color:var(--k-violet);background:color-mix(in srgb,var(--k-violet) 9%,transparent)}.k2-month-col{display:flex;align-items:flex-end;width:20px;height:34px;margin-bottom:3px;border-radius:6px;background:var(--surface-2);overflow:hidden}.k2-month-col i{width:100%;border-radius:6px;background:color-mix(in srgb,var(--k-violet) 45%,transparent)}.k2-month.on .k2-month-col i{background:var(--k-violet)}.k2-month.has-over b:after{content:"";display:inline-block;width:6px;height:6px;margin-left:4px;border-radius:50%;background:var(--k-over);vertical-align:middle}.k2-month b{font-size:13px;font-weight:600}.k2-month small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);font-size:12px;font-variant-numeric:tabular-nums}.k2-staff{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.k2-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 6px 4px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;cursor:pointer}.k2-chip:hover{border-color:var(--k-violet)}.k2-chip.on{border-color:var(--k-violet);background:color-mix(in srgb,var(--k-violet) 10%,var(--surface));font-weight:600}.k2-chip.on span{background:var(--k-violet);color:#fff}.k2-chip span{padding:1px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-2);font-variant-numeric:tabular-nums}.k2-section-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:4px 0 10px;font-size:16px;font-weight:650}.k2-section-title span{color:var(--text-2);font-size:13px;font-weight:400}.k2-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.k2-group{display:flex;flex-direction:column;gap:3px;min-width:0;padding:11px 13px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.k2-group:hover{border-color:var(--k-violet);box-shadow:var(--shadow);transform:translateY(-1px)}.k2-group.is-over{border-color:color-mix(in srgb,var(--k-over) 45%,var(--border))}.k2-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.k2-group-head b{min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:650}.k2-group>small,.k2-group-exp{color:var(--text-2);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.k2-group-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:2px 0 4px}.k2-group-row>small{flex:none;color:var(--text-2);font-size:13px}.k2-group-sum{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.k2-group-sum small{color:var(--text-2);font-size:13px;font-weight:500}.k2-badge{flex:none;display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--k-over);color:#fff;font-size:12px;font-weight:600}.k2-bar{display:block;height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden}.k2-bar i{display:block;height:100%;border-radius:6px;background:var(--k-violet)}.k2-bar.is-over i{background:var(--k-over)}.k2-drawer-title{display:flex;align-items:center;gap:8px}.k2-drawer-title>div{display:flex;flex-direction:column;min-width:0}.k2-drawer-title small{color:var(--text-2);font-size:13px;font-weight:400}.k2-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}.k2-figures>span{display:flex;flex-direction:column;min-width:0;padding:8px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);font-weight:700;font-variant-numeric:tabular-nums}.k2-figures small{color:var(--text-2);font-size:12px;font-weight:500}.k2-figures .is-over{color:var(--k-over)}.k2-figures .is-under{color:var(--k-under)}.k2-figures .is-full{color:var(--k-full)}.k2-students{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px}.k2-student{display:flex;align-items:center;gap:10px;min-width:0;padding:7px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.k2-student:hover{border-color:var(--k-violet)}.k2-student.is-over{border-left:3px solid var(--k-over)}.k2-avatar{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,var(--k-violet) 13%,transparent);color:var(--k-violet);font-size:12px;font-weight:700}.k2-student-main{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.k2-student-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.k2-student-main small{color:var(--text-2);font-size:13px}.k2-student-sum{display:flex;flex-direction:column;align-items:flex-end;flex:none;font-variant-numeric:tabular-nums}.k2-diff{font-size:12px;font-weight:600;color:var(--text-2)}.k2-diff.is-over{color:var(--k-over)}.k2-diff.is-under{color:var(--k-under)}.k2-diff.is-full{color:var(--k-full)}.k2-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-bottom:10px;color:var(--text-2);font-size:13px}.k2-legend span:before{content:"";display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:3px;background:var(--s)}.k2-lessons{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.k2-drawer .is-came{--s: #16a34a}.k2-drawer .is-excused{--s: #f59e0b}.k2-drawer .is-absent{--s: #ef4444}.k2-drawer .is-skip{--s: #64748b}.k2-lesson{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,var(--s) 35%,var(--border));border-top:3px solid var(--s);background:color-mix(in srgb,var(--s) 7%,var(--surface))}.k2-lesson.is-other{opacity:.45}.k2-lesson b{font-size:14px;font-variant-numeric:tabular-nums}.k2-lesson span{color:var(--s);font-size:12px;font-weight:600}.k2-lesson em{font-style:normal;font-size:13px;font-variant-numeric:tabular-nums}.k2-lessons-foot{display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);color:var(--text-2)}.k2-lessons-foot b{color:var(--text);font-variant-numeric:tabular-nums}.k2-note{margin-top:6px;color:var(--text-2);font-size:12px}@media(max-width:1100px){.k2-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.k2-months{grid-template-columns:repeat(6,minmax(0,1fr))}.k2-month small{font-size:11px}.k2-stats{gap:8px}.k2-stat{gap:8px;padding:10px}.k2-stat-icon{width:32px;height:32px;font-size:15px}.k2-stat small{font-size:12px}.k2-stat b{font-size:15px}.k2-figures{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){.k2-group,.k2-month{transition:none}}.sb{margin-bottom:18px}.sb-title{margin-bottom:10px;font-size:16px;font-weight:650}.sb-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.sb-cards>div{display:flex;flex-direction:column;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.sb-cards small{color:var(--text-2);font-size:12px}.sb-cards b{font-size:17px;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb .is-owed{--sb: #16a34a}.sb .is-advance{--sb: #dc2626}.sb-cards>.is-owed,.sb-cards>.is-advance{border-color:color-mix(in srgb,var(--sb) 40%,var(--border));background:color-mix(in srgb,var(--sb) 8%,var(--surface))}.sb-cards>.is-owed b,.sb-cards>.is-advance b,.sb-month .is-owed em,.sb-month .is-advance em{color:var(--sb)}.sb .is-minus{color:#dc2626}.sb-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.sb-cols section{min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:12px}.sb h4{margin:0 0 6px;color:var(--text-2);font-size:13px;font-weight:600}.sb-h{margin-top:4px!important}.sb-line{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:14px}.sb-line span{min-width:0}.sb-line small{color:var(--text-2);font-size:12px}.sb-line b{flex:none;font-variant-numeric:tabular-nums}.sb-sum{margin-top:4px;padding-top:8px;border-top:1px dashed var(--border)}.sb-history{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.sb-month{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.sb-month:hover,.sb-month.on{border-color:var(--primary)}.sb-month.on{background:var(--primary-soft)}.sb-month span{display:flex;justify-content:space-between;gap:6px;color:var(--text-2);font-size:12px}.sb-month em{font-style:normal;color:var(--text);font-variant-numeric:tabular-nums}@media(max-width:640px){.sb-cards{grid-template-columns:1fr 1fr}.sb-cols{grid-template-columns:1fr}}.mr-panel{padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.mr-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.mr-tiles>div,.mr-bucket{display:flex;flex-direction:column;min-width:0;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.mr-tiles small,.mr-bucket span{color:var(--text-2);font-size:13px}.mr-tiles b{font-size:19px;font-variant-numeric:tabular-nums}.mr-tiles .is-total{border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.mr-bucket{color:var(--text);font:inherit;text-align:left;cursor:pointer;--c: #f59e0b}.mr-bucket.b-b0{--c: #64748b}.mr-bucket.b-b1{--c: #f59e0b}.mr-bucket.b-b2{--c: #ea580c}.mr-bucket.b-b3{--c: #dc2626}.mr-bucket b{color:var(--c)}.mr-bucket:hover,.mr-bucket.on{border-color:var(--c)}.mr-bucket.on{background:color-mix(in srgb,var(--c) 8%,var(--surface))}.is-in{color:#16a34a}.is-out{color:#dc2626}.mr-day{margin-bottom:12px;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.mr-day-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;padding:10px 16px;background:var(--surface-2);border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.mr-day-head>b:first-child{flex:1;min-width:180px;text-transform:capitalize}.mr-row{display:grid;grid-template-columns:minmax(0,1fr) auto 130px 130px;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.mr-row:last-child{border-bottom:0}.mr-row>span:nth-child(3),.mr-balance{text-align:right}.mr-text{min-width:0;overflow-wrap:anywhere}.mr-balance{color:var(--text-2)}.sb-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.sb-head .sb-title{margin-bottom:0}@media(max-width:900px){.mr-tiles{grid-template-columns:1fr 1fr}}@media(max-width:560px){.mr-row{grid-template-columns:minmax(0,1fr) auto}.mr-row .ant-tag{display:none}.mr-balance{grid-column:2;font-size:12px}}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--bg)}.login-art{position:relative;overflow:hidden;padding:56px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:radial-gradient(circle at 20% 85%,rgba(22,160,90,.45),transparent 45%),radial-gradient(circle at 85% 10%,rgba(31,184,106,.22),transparent 40%),linear-gradient(135deg,#1e232b,#222731 60%,#1a1e25)}.login-art h1{font-size:38px;line-height:1.15;margin:0 0 16px;letter-spacing:-.5px}.login-art p{opacity:.85;font-size:16px;max-width:440px}.login-features{display:grid;gap:14px;margin-top:32px}.login-feature{display:flex;gap:12px;align-items:center;font-size:15px}.login-feature span{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#ffffff26;font-size:17px}.login-form-side{display:flex;align-items:center;justify-content:center;padding:24px}.login-box{width:100%;max-width:400px}.login-box h2{font-size:28px;margin:0 0 6px;letter-spacing:-.3px}.login-box .sub{color:var(--text-2);margin-bottom:28px}@media(max-width:991px){.app-content{padding:16px}.login-page{grid-template-columns:1fr}.login-art{display:none}.hero-filter{position:static;margin-bottom:16px}}@media(max-width:575px){.header-breadcrumb{display:none}.hero{padding:22px}.toolbar{padding:12px}}.person-cell{display:flex;align-items:center;gap:12px;min-width:0}.person-text{min-width:0}.person-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-sub{font-size:13px;color:var(--text-2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stack-cell{min-width:0;line-height:1.35}.stack-cell>div:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phone-link{color:inherit;white-space:nowrap;font-variant-numeric:tabular-nums}.phone-link:hover{color:var(--primary)}.person-sub .phone-link{color:var(--text-2)}.status-tag{max-width:100%;overflow:hidden;text-overflow:ellipsis}.status-tag b{margin-right:2px}.table-card .ant-table-tbody>tr>td{padding-top:12px;padding-bottom:12px}.lead-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;padding:16px;overflow-x:auto;align-items:start}.board-loading{padding:48px;text-align:center}.board-col{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;max-height:calc(100vh - 300px);transition:border-color .15s,background .15s}.board-col-over{border-color:var(--primary);background:var(--primary-soft)}.board-col-head{display:flex;align-items:center;gap:6px;padding:12px 12px 8px;font-weight:600}.board-col-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.board-count{font-size:13px;color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:0 8px}.board-col-body{display:flex;flex-direction:column;gap:8px;padding:4px 10px 12px;overflow-y:auto}.lead-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;box-shadow:0 1px 2px #0f172a0a;transition:transform .1s,box-shadow .15s}.lead-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.lead-card[draggable=true]{cursor:grab}.lead-card-name{font-weight:600}.lead-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.lead-card-tags .ant-tag{margin:0}.equal-row>.ant-col>.ant-card>.ant-card-body:has(>.ant-empty){display:flex;align-items:center;justify-content:center}.auto-card{margin-bottom:16px}.auto-state{display:flex;gap:10px;align-items:flex-start}.auto-state>div{display:flex;flex-direction:column;line-height:1.35;min-width:0}.auto-state small{color:var(--text-2)}.auto-ok{color:#16a05a;font-size:18px;margin-top:2px}.auto-off{color:#f59e0b;font-size:18px;margin-top:2px}.auto-week{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.auto-hint{margin-top:12px}.call-audio{height:32px;width:240px;max-width:100%;vertical-align:middle}.money-prepaid{color:#16a05a}.money-cell small{font-weight:400;opacity:.75}.call-dir{display:inline-flex;align-items:center;gap:8px;color:var(--call);font-weight:500;white-space:nowrap}.call-dir-icon{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:color-mix(in srgb,var(--call) 14%,transparent);flex-shrink:0}.live-card{margin-bottom:16px}.live-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.live-phones{margin-left:auto}.live-dot{width:10px;height:10px;border-radius:50%;background:#94a3b8}.live-dot.on{background:#ef4444;animation:live-pulse 1.2s infinite}@keyframes live-pulse{0%{box-shadow:0 0 #ef44448c}to{box-shadow:0 0 0 10px #ef444400}}.live-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding:8px 12px;border-radius:10px;background:color-mix(in srgb,var(--live) 10%,transparent)}.live-state{color:var(--live);font-weight:600}.live-timer{margin-left:auto;font-variant-numeric:tabular-nums}.mini-bars{display:flex;flex-direction:column;gap:6px}.mini-bar-row{display:grid;grid-template-columns:130px 1fr 48px;align-items:center;gap:10px}.mini-bar-label{color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-bar{height:10px;border-radius:6px;background:var(--surface-2);overflow:hidden}.mini-bar>span{display:block;height:100%;border-radius:6px;background:var(--primary)}.mini-bar-row>b{text-align:right;font-variant-numeric:tabular-nums}.sms-sample{padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border)}.cell-longtext{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:140px;white-space:normal;word-break:break-word}.voice-panel{position:fixed;right:24px;bottom:24px;width:380px;max-width:calc(100vw - 32px);z-index:1001;box-shadow:0 12px 40px #0f172a38;border-radius:14px}.voice-log{max-height:min(52vh,420px);overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:2px}.voice-msg{max-width:88%;padding:8px 11px;border-radius:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.voice-msg.bot{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border)}.voice-msg.me{align-self:flex-end;background:var(--primary);color:#fff}.voice-msg.interim{opacity:.65}.voice-msg.error{border-color:#ef4444;color:#b91c1c}@media(max-width:600px){.voice-panel{right:16px;left:16px;bottom:16px;width:auto}}.voice-panel{width:440px}.voice-rich p{margin:0 0 6px}.voice-rich p:last-child{margin-bottom:0}.voice-rich ul{margin:4px 0 6px;padding-left:18px}.voice-ai-tag{display:block;margin-top:6px;font-size:12px;color:var(--text-2)}.lt-form .ant-form-item{margin-bottom:12px}.lt-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.lt-label{margin-bottom:8px;font-size:13px;font-weight:600;color:var(--text-2)}.lt-muted,.lt-hint{font-size:13px;color:var(--text-2)}.lt-groups{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow-y:auto;padding-right:2px}.lt-group{padding:10px 12px;border:1px solid var(--border);border-radius:10px;transition:border-color .15s ease,background .15s ease}.lt-group.is-chosen{border-color:var(--primary);background:var(--primary-soft)}.lt-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.lt-group-meta{font-size:13px;color:var(--text-2)}.lt-today{display:flex;flex-direction:column;gap:16px}.lt-section .lt-hint{margin:-2px 0 8px}.lt-list{margin:0;padding:0;list-style:none}.lt-list li{display:grid;grid-template-columns:minmax(180px,1.3fr) auto minmax(0,2fr);align-items:center;gap:8px 16px;padding:10px 0;border-top:1px solid var(--border)}.lt-list li:first-child{border-top:0}.lt-list li>:last-child{justify-self:end}.lt-who{display:flex;flex-direction:column;min-width:0}.lt-name{padding:0;border:0;background:none;color:var(--text);font:inherit;font-weight:600;text-align:left;cursor:pointer}.lt-name:hover{color:var(--primary)}.lt-sub{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:13px;color:var(--text-2)}@media(max-width:760px){.lt-row{grid-template-columns:minmax(0,1fr)}.lt-list li{grid-template-columns:minmax(0,1fr) auto}.lt-list li>:last-child{grid-column:1 / -1;justify-self:start}}.cs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;align-items:start}.cs-item{display:flex;flex-direction:column;gap:2px;min-width:0}.cs-item+.cs-item{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.cs-label{font-size:13px;color:var(--text-2)}.cs-value{font-size:16px;font-weight:600;color:var(--text);overflow-wrap:anywhere}.cs-value.is-empty{font-weight:400;color:var(--text-2)}.cs-hint{font-size:13px;color:var(--text-2);line-height:1.45}.ab{--ab-came: #16a34a;--ab-excused: #f59e0b;--ab-absent: #ef4444;--ab-skip: #94a3b8;display:flex;flex-direction:column;gap:14px}:root[data-theme=dark] .ab{--ab-came: #4ade80;--ab-excused: #fbbf24;--ab-absent: #f87171;--ab-skip: #64748b}.ab-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px}.ab-crumbs span{display:inline-flex;align-items:center;gap:6px}.ab-crumbs button{border:0;padding:4px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font:inherit;font-weight:600;cursor:pointer}.ab-crumbs button:hover{filter:brightness(.95)}.ab-crumbs b{padding:4px 2px;font-weight:650}.ab-crumb-sep{color:var(--text-2);font-size:11px}.ab-panel{padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.ab-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.ab-month{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.ab-month b{min-width:140px;text-align:center;font-size:15px;font-weight:650}.ab-month-sum{display:flex;flex-wrap:wrap;gap:14px;color:var(--text-2)}.ab-month-sum b{color:var(--text);font-weight:650}.ab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.ab-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:14px 15px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);font:inherit;text-align:left;transition:border-color .15s,box-shadow .15s,transform .15s}button.ab-card{cursor:pointer}button.ab-card:hover,button.ab-card:focus-visible{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-1px);outline:none}.ab-day.is-today{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:linear-gradient(180deg,var(--primary-soft),var(--surface) 70%)}.ab-day-head,.ab-group-head{display:flex;align-items:center;gap:10px}.ab-day-num{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.ab-day.is-today .ab-day-num{background:var(--primary);border-color:var(--primary);color:#fff}.ab-day-name{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}.ab-day-name b{font-weight:650}.ab-day-name small,.ab-teacher,.ab-meta{color:var(--text-2);font-size:13px}.ab-meta{display:flex;gap:14px}.ab-meta span{display:inline-flex;align-items:center;gap:5px}.ab-rate{margin-left:auto;padding:2px 9px;border-radius:999px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--r);background:color-mix(in srgb,var(--r) 14%,transparent)}.ab-rate.is-good{--r: var(--ab-came)}.ab-rate.is-mid{--r: var(--ab-excused)}.ab-rate.is-low{--r: var(--ab-absent)}.ab-bar{display:flex;gap:2px;height:8px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.ab-seg{flex-basis:0;min-width:4px}.ab-seg.is-came{background:var(--ab-came)}.ab-seg.is-excused{background:var(--ab-excused)}.ab-seg.is-absent{background:var(--ab-absent)}.ab-seg.is-skip{background:var(--ab-skip)}.ab-counts{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:var(--text-2)}.ab-counts span{display:inline-flex;align-items:center;gap:5px}.ab-counts i{width:8px;height:8px;border-radius:50%;background:var(--c)}.ab-counts .is-came{--c: var(--ab-came)}.ab-counts .is-excused{--c: var(--ab-excused)}.ab-counts .is-absent{--c: var(--ab-absent)}.ab-counts .is-skip{--c: var(--ab-skip)}.ab-time{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.ab-group-name{font-size:15px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ab-missing h4{display:flex;align-items:center;gap:8px;margin:6px 0 10px;font-size:15px;font-weight:650}.ab-missing h4 span{padding:0 8px;border-radius:999px;background:color-mix(in srgb,var(--ab-excused) 18%,transparent);color:var(--ab-excused);font-size:13px}.ab-card.is-missing{border-style:dashed;background:var(--surface-2)}.ab-card.is-missing .ant-btn{align-self:flex-start}.ab-sheet{display:flex;flex-direction:column;gap:10px}.ab-sheet-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px}.ab-sheet-head h3{margin:0;font-size:18px;font-weight:700}.ab-sheet-head small{color:var(--text-2);font-size:13px}.ab-sheet-side{display:flex;align-items:center;gap:10px}.ab-students{margin:4px 0 0;padding:0;list-style:none;border:1px solid var(--border);border-radius:12px;overflow:hidden}.ab-students li{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--border);border-left:3px solid var(--s, transparent)}.ab-students li:first-child{border-top:0}.ab-students li.is-came{--s: var(--ab-came)}.ab-students li.is-excused{--s: var(--ab-excused)}.ab-students li.is-absent{--s: var(--ab-absent)}.ab-students li.is-skip{--s: var(--ab-skip)}.ab-students li.is-none{--s: var(--border)}.ab-n{width:22px;flex:none;color:var(--text-2);font-size:13px;font-variant-numeric:tabular-nums}.ab-name{display:flex;flex-direction:column;min-width:0;flex:1}.ab-name b{font-weight:600}.ab-name small{color:var(--text-2);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ab-pill{flex:none;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600;color:var(--s);background:color-mix(in srgb,var(--s) 14%,transparent)}.ab-students li.is-none .ab-pill{color:var(--text-2);background:var(--surface-2)}@media(max-width:575px){.ab-grid{grid-template-columns:1fr}.ab-month b{min-width:0}}.tt-days{display:flex;scrollbar-width:none;gap:4px;overflow-x:auto;border-bottom:1px solid var(--border);margin-bottom:14px}.tt-day{position:relative;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border:0;border-bottom:2px solid transparent;background:none;color:var(--text-2);font:inherit;font-size:15px;white-space:nowrap;cursor:pointer}.tt-day:hover{color:var(--text)}.tt-day.is-active{color:var(--primary);border-bottom-color:var(--primary);font-weight:500}.tt-count{min-width:22px;padding:0 6px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;line-height:18px;text-align:center}.tt-day.is-active .tt-count{background:var(--primary-soft);border-color:transparent;color:var(--primary)}.tt-today{position:absolute;top:7px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--primary)}.tt-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tt-stats span{padding:5px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-2);font-size:14px}.tt-stats b{color:var(--text);font-weight:600;margin-right:4px}.tt-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.tt-grid{position:relative}.tt-head,.tt-row{display:flex}.tt-head{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:2px solid var(--border)}.tt-corner,.tt-room{position:sticky;left:0;z-index:1;flex:0 0 160px;display:flex;align-items:center;gap:10px;padding:0 16px;background:var(--surface);border-right:2px solid var(--border)}.tt-corner{color:var(--text-2);font-size:12px;letter-spacing:.06em;font-family:ui-monospace,monospace}.tt-room{font-weight:600;font-size:15px}.tt-hours{display:flex}.tt-hour{flex:0 0 var(--hour);display:flex;flex-direction:column;align-items:center;padding:10px 0 8px;border-left:1px solid var(--border);font-family:ui-monospace,monospace}.tt-hour b{font-size:14px;font-weight:600}.tt-hour small{color:var(--text-2);font-size:11px}.tt-row{border-bottom:1px solid var(--border)}.tt-row:last-child{border-bottom:0}.tt-lane{position:relative;display:flex;background:var(--surface-2)}.tt-cell{flex:0 0 var(--hour);border-left:1px solid var(--border)}.tt-dot{width:9px;height:9px;border-radius:50%;background:var(--tt-line);flex:none}.tt-card{position:absolute;display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:4px 12px;border:1.5px solid var(--tt-line);border-radius:8px;background:var(--tt-bg);color:var(--tt-ink);font:inherit;text-align:left;cursor:pointer;overflow:hidden;transition:transform .12s ease,box-shadow .12s ease}.tt-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0f172a1f;z-index:1}.tt-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tt-card b,.tt-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tt-card b{font-size:15px;font-weight:600}.tt-card small{font-size:12.5px;opacity:.8}.tt-card.is-future{border-style:dashed}.tt-card.is-other{cursor:default}.tt-card.is-other:hover{transform:none;box-shadow:none}.tt-card.is-mine{box-shadow:inset 4px 0 0 var(--primary);padding-left:14px}.tt-c0{--tt-bg: #dff3ea;--tt-line: #8fd3b2;--tt-ink: #0f4f35}.tt-c1{--tt-bg: #f6dce4;--tt-line: #e59ab1;--tt-ink: #6e2038}.tt-c2{--tt-bg: #e5ecc9;--tt-line: #b9cf7c;--tt-ink: #3d4f12}.tt-c3{--tt-bg: #ead9ef;--tt-line: #c99ad8;--tt-ink: #55246a}.tt-c4{--tt-bg: #d8e6f1;--tt-line: #8fb6d6;--tt-ink: #183f61}.tt-c5{--tt-bg: #f2e0cc;--tt-line: #ddb17e;--tt-ink: #61390f}.tt-c6{--tt-bg: #dcdcf5;--tt-line: #9b9be0;--tt-ink: #2c2c78}.tt-c7{--tt-bg: #eeecc8;--tt-line: #d4cf7a;--tt-ink: #4c4810}.tt-c8{--tt-bg: #d4eff1;--tt-line: #7fcbd2;--tt-ink: #0f4c52}.tt-c9{--tt-bg: #f5ddd4;--tt-line: #e3a28b;--tt-ink: #6b2914}:root[data-theme=dark] .tt-c0{--tt-bg: rgba(52, 168, 112, .2);--tt-ink: #a7e9c8}:root[data-theme=dark] .tt-c1{--tt-bg: rgba(214, 90, 128, .2);--tt-ink: #f5bccd}:root[data-theme=dark] .tt-c2{--tt-bg: rgba(150, 180, 60, .2);--tt-ink: #d6e7a4}:root[data-theme=dark] .tt-c3{--tt-bg: rgba(165, 95, 190, .22);--tt-ink: #e2c3ee}:root[data-theme=dark] .tt-c4{--tt-bg: rgba(70, 135, 190, .22);--tt-ink: #bcd8ef}:root[data-theme=dark] .tt-c5{--tt-bg: rgba(200, 140, 70, .22);--tt-ink: #f0d0a8}:root[data-theme=dark] .tt-c6{--tt-bg: rgba(110, 110, 210, .24);--tt-ink: #cacaf6}:root[data-theme=dark] .tt-c7{--tt-bg: rgba(190, 180, 60, .2);--tt-ink: #e9e4a6}:root[data-theme=dark] .tt-c8{--tt-bg: rgba(60, 170, 180, .2);--tt-ink: #b0e6eb}:root[data-theme=dark] .tt-c9{--tt-bg: rgba(205, 110, 80, .22);--tt-ink: #f3c2b1}@media(max-width:640px){.tt-corner,.tt-room{flex-basis:104px;padding:0 10px;font-size:13px;white-space:nowrap}.tt-corner{font-size:10px}.tt-day{padding:10px 12px;font-size:14px}}.tt-card.is-mine:hover{box-shadow:inset 4px 0 0 var(--primary),0 4px 12px #0f172a1f}.xm-strip{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 10px;margin-bottom:8px;scroll-snap-type:x proximity;scrollbar-width:thin}.xm-card{flex:0 0 auto;min-width:210px;max-width:260px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);cursor:pointer;scroll-snap-align:start;transition:border-color .15s,background .15s,transform .15s}.xm-card:hover{border-color:var(--primary)}.xm-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.xm-card.xm-on{border-color:var(--primary);background:var(--primary-soft)}.xm-all{min-width:130px;justify-content:center}.xm-month{font-size:13px;font-weight:600;color:var(--text-2)}.xm-on .xm-month{color:var(--primary)}.xm-total{font-size:21px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap}.xm-total small{font-size:12px;font-weight:500;color:var(--text-2)}.xm-meta{font-size:12.5px;color:var(--text-2)}.xm-wait{font-weight:500;color:#d97706}.xm-top{max-width:100%;font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:640px){.xm-card{min-width:170px;padding:12px 14px}.xm-total{font-size:18px}.xm-all{min-width:104px}}.row-click{cursor:pointer}.dd-title{display:flex;flex-direction:column;min-width:0}.dd-title small{color:var(--text-2);font-size:13px;font-weight:400}.dd-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:var(--text-2);margin-bottom:14px}.dd-head .ant-tag{margin:0}.dd-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.dd-tiles>div{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface);min-width:0}.dd-tiles small{display:block;color:var(--text-2);font-size:12px}.dd-tiles b{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dd-tiles .dd-owe{border-color:#fca5a5}.dd-tiles .dd-owe b{color:#ef4444}.dd-note{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--text-2);font-size:13px;margin-bottom:6px}@media(max-width:640px){.dd-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.dd-month-meta{display:inline-flex;align-items:center;gap:10px;color:var(--text-2);font-size:13px;white-space:nowrap}.dd-month-meta .ant-tag{margin:0}.dd-month-meta>span:last-child{color:var(--text);font-weight:600}@media(max-width:640px){.dd-month-meta{gap:6px;font-size:12px}}.debtors-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
