/* ion_inf: a quiet operational workspace. Tokens are shared by every screen. */
:root {
 --bg:#f8f8fa; --surface:#fff; --subtle:#eeeef1; --text:#242426; --muted:#69696f; --caption:#69696f; --label:#5f5f66;
 --border:#dedee3; --border-strong:#bdbdc5; --accent:#242426; --accent-hover:#414145; --focus:#5f5f66;
 --red:#a83128; --green:#296346; --amber:#805c28;
 --on-accent:#fff; --accent-active:#101012; --surface-hover:#fafafc; --secondary-hover:#f1f1f3; --row-hover:#efeff2;
 --danger-bg:#a83128; --danger-hover:#8e211a; --on-danger:#fff; --danger-subtle:#f4e9e7;
 --success-bg:#eaf0ed; --error-bg:#f5ebe9; --error-text:#962a22; --notice-border:#95959d; --neutral-dot:#74747c;
 --backdrop:rgb(24 24 26 / 30%);
 --select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%235f5f66' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 color-scheme:light;
 --workspace-wide:1200px; --workspace-narrow:864px; --form-width:640px;
 --radius:6px; --radius-panel:8px; --control:36px;
 --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --space-7:48px;
 --font-caption:12px; --font-small:13px; --font-body:15px; --font-title:30px; --font-section:18px;
 font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
 color:var(--text); background:var(--bg); font-size:var(--font-body); line-height:1.5; font-synthesis:none;
}
:root[data-theme=dark] {
 --bg:#18181b; --surface:#202024; --subtle:#2b2b31; --text:#ececef; --muted:#afafb9; --caption:#afafb9; --label:#bebec6;
 --border:#3b3b43; --border-strong:#73737d; --accent:#e6e6eb; --accent-hover:#fff; --focus:#c2c2cc;
 --red:#ef9289; --green:#91c7a5; --amber:#d5b47d;
 --on-accent:#202024; --accent-active:#ceced6; --surface-hover:#26262c; --secondary-hover:#2b2b31; --row-hover:#2b2b31;
 --danger-bg:#9b3028; --danger-hover:#87271f; --on-danger:#fff; --danger-subtle:#382926;
 --success-bg:#202e27; --error-bg:#332421; --error-text:#ef9289; --notice-border:#73737d; --neutral-dot:#afafb9;
 --backdrop:rgb(0 0 0 / 60%);
 --select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%23bebec6' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 color-scheme:dark;
}
/* System theme also works when JavaScript or local storage is unavailable. */
@media(prefers-color-scheme:dark) {
 :root:not([data-theme]) {
 --bg:#18181b; --surface:#202024; --subtle:#2b2b31; --text:#ececef; --muted:#afafb9; --caption:#afafb9; --label:#bebec6;
 --border:#3b3b43; --border-strong:#73737d; --accent:#e6e6eb; --accent-hover:#fff; --focus:#c2c2cc;
 --red:#ef9289; --green:#91c7a5; --amber:#d5b47d;
 --on-accent:#202024; --accent-active:#ceced6; --surface-hover:#26262c; --secondary-hover:#2b2b31; --row-hover:#2b2b31;
 --danger-bg:#9b3028; --danger-hover:#87271f; --on-danger:#fff; --danger-subtle:#382926;
 --success-bg:#202e27; --error-bg:#332421; --error-text:#ef9289; --notice-border:#73737d; --neutral-dot:#afafb9;
 --backdrop:rgb(0 0 0 / 60%);
 --select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%23bebec6' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 color-scheme:dark;
 }
}
* { box-sizing:border-box; }
body { margin:0; }
[hidden] { display:none!important; }
a { color:var(--text); text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:3px; }
button,input,select,textarea { font:inherit; }
button,.button { cursor:pointer; border:1px solid transparent; min-height:var(--control); padding:8px 12px; border-radius:var(--radius); font-size:var(--font-small); font-weight:550; display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2); line-height:1.35; text-align:center; text-decoration:none; }
button:hover,.button:hover { text-decoration:none; }
button:disabled { opacity:.55; cursor:wait; }
.primary { background:var(--accent); color:var(--on-accent); }
.primary:hover { background:var(--accent-hover); }
.primary:active { background:var(--accent-active); }
.secondary { background:var(--surface); border-color:var(--border); color:var(--text); }
.secondary:hover { background:var(--secondary-hover); border-color:var(--border-strong); }
.quiet,.danger-quiet,.text-button,.icon-button { background:transparent; color:var(--muted); }
.quiet:hover,.icon-button:hover { background:var(--subtle); color:var(--text); }
.secondary:active,.quiet:active,.icon-button:active { background:var(--subtle); }
.danger-quiet,.debt-text { color:var(--red)!important; }
.attention-text { color:var(--amber)!important; }
.danger-quiet:hover { background:var(--danger-subtle); }
.danger { background:var(--danger-bg); color:var(--on-danger); }
.danger:hover { background:var(--danger-hover); }
.text-button { color:inherit; text-decoration:underline; padding-inline:0; }
.icon-button { width:var(--control); font-size:22px; padding:0; flex:none; }
:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:var(--font-title); line-height:1.2; letter-spacing:-.85px; font-weight:650; margin-bottom:0; overflow-wrap:anywhere; }
h2 { font-size:var(--font-section); line-height:1.35; letter-spacing:-.3px; font-weight:600; margin-bottom:var(--space-4); }
h3 { font-size:16px; }
p { margin-bottom:var(--space-3); }
p:last-child { margin-bottom:0; }
.small { font-size:var(--font-small); }
.muted { color:var(--muted); }
.eyebrow { font-size:var(--font-caption); color:var(--muted); font-weight:400; margin-bottom:var(--space-2); }
.subline { display:block; font-size:var(--font-caption); color:var(--muted); margin-top:var(--space-1); font-weight:400; }
.money,.number { font-variant-numeric:tabular-nums lining-nums; letter-spacing:-.25px; }
.number { white-space:nowrap; }
.preserve-lines { white-space:pre-wrap; overflow-wrap:anywhere; }
.page-description { color:var(--muted); margin:var(--space-2) 0 0; font-size:14px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.mobile-only { display:none; }
/* Navigation shares the workspace width, including on large monitors. */
.topbar { position:relative; border-bottom:1px solid var(--border); }
.topbar-inner { min-height:60px; max-width:1200px; padding:0 var(--space-6); margin:auto; display:flex; align-items:center; gap:var(--space-7); }
.brand { min-height:44px; display:inline-flex; align-items:center; gap:var(--space-3); white-space:nowrap; }
.brand:hover { text-decoration:none; }
.wordmark { font-size:20px; font-weight:700; letter-spacing:-1px; }
.wordmark>span { color:var(--muted); }
.brand-product { font-size:var(--font-small); color:var(--muted); }
.topbar nav { display:flex; align-items:center; gap:var(--space-1); }
.topbar nav a { min-height:36px; display:flex; align-items:center; color:var(--muted); font-size:var(--font-small); padding:8px 12px; border-radius:var(--radius); }
.topbar nav a:hover { background:var(--subtle); text-decoration:none; color:var(--text); }
.topbar nav a.active { color:var(--text); font-weight:550; position:relative; }
.topbar nav a.active::after { content:''; position:absolute; bottom:3px; left:12px; right:12px; height:1px; background:var(--text); }
.topbar-tools { margin-left:auto; display:flex; align-items:center; gap:var(--space-2); }
.topbar-tools .quiet { font-size:var(--font-caption); padding-inline:10px; }
.state-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--neutral-dot); flex:none; }
.state-dot.warning { background:var(--amber); }
.action-menu { position:relative; }
.action-menu>summary { list-style:none; padding:8px 12px; line-height:1.35; min-height:var(--control); border-radius:var(--radius); color:var(--muted); font-size:var(--font-small); }
.action-menu>summary::-webkit-details-marker { display:none; }
.action-menu>summary:hover,.action-menu[open]>summary { background:var(--subtle); color:var(--text); }
.action-menu>summary::after { content:'⌄'; margin-left:8px; }
.menu-content { position:absolute; top:calc(100% + 6px); right:0; min-width:220px; padding:var(--space-2); border:1px solid var(--border); background:var(--surface); border-radius:var(--radius); z-index:5; }
.menu-content a,.menu-content button { display:flex; width:100%; text-align:left; justify-content:flex-start; padding:10px 12px; min-height:40px; font-size:14px; border-radius:var(--radius); }
.menu-content a:hover { text-decoration:none; background:var(--subtle); }
.menu-content a[aria-current] { color:var(--text); font-weight:550; text-decoration:underline; text-underline-offset:4px; }
.menu-content form { margin:0; }
.theme-control { display:grid; gap:var(--space-1); font-size:var(--font-caption); font-weight:400; color:var(--muted); }
.utility-menu .menu-content { min-width:248px; }
.menu-content .theme-control { margin:var(--space-2) 12px var(--space-3); }
.theme-control select { font-size:var(--font-small); }
.login-box>.theme-control { margin-top:var(--space-5); max-width:240px; }
.topbar-tools .menu-content .quiet { font-size:14px; padding:10px 12px; }
.workspace { max-width:var(--workspace-wide); padding:var(--space-5) var(--space-6) var(--space-7); margin:auto; min-height:calc(100dvh - 60px); }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:var(--space-5); margin-bottom:var(--space-5); }
.back-link { display:inline-flex; align-items:center; min-height:32px; margin-bottom:var(--space-4); font-size:var(--font-small); color:var(--muted); }
.service-alert { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); color:var(--amber); font-size:var(--font-small); margin-bottom:var(--space-5); }
/* One prominent income figure; the other values support it, without five boxes. */
.overview { max-width:880px; margin:0 0 var(--space-5); }
.overview-heading { position:relative; display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:var(--space-2) var(--space-4); margin-bottom:var(--space-2); }
.overview-students { display:flex; align-items:baseline; gap:var(--space-2); margin:0 0 0 auto; color:var(--caption); font-size:var(--font-small); }
.overview-students strong { color:var(--text); font-size:var(--font-body); font-weight:550; font-variant-numeric:tabular-nums; }
.overview-title { display:flex; align-items:baseline; gap:var(--space-3); }
.overview-title>span { color:var(--caption); font-size:var(--font-caption); }
.overview-heading h2 { font-size:var(--font-small); font-weight:550; margin:0; }
.metrics { display:grid; grid-template-columns:minmax(240px,300px) repeat(3,minmax(0,1fr)); column-gap:var(--space-5); row-gap:var(--space-1); align-items:baseline; }
.metric-income,.metric-income>div:first-child,.metric-support,.metric-support>div { display:contents; }
.metric-income .metric-label,.metric-income>div:first-child>strong { grid-column:1; }
.metric-support>div:nth-child(1)>* { grid-column:2; }
.metric-support>div:nth-child(2)>* { grid-column:3; }
.metric-support>div:nth-child(3)>* { grid-column:4; }
.metrics .metric-label { grid-row:1; margin:0; }
.metrics strong { grid-row:2; }
.metrics>div { min-width:0; }
.metric-label { display:block; color:var(--label); font-size:var(--font-caption); margin-bottom:var(--space-1); }
.metrics strong { display:block; font-size:22px; line-height:1.25; font-weight:500; white-space:nowrap; }
.metric-support [data-month-forecast] strong { color:var(--label); }
.metric-rate strong { font-size:22px; }
.metric-income>div:first-child>strong { font-size:36px; font-weight:550; letter-spacing:-1px; }
.previous-income { grid-row:3; grid-column:1; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin-top:var(--space-1); color:var(--caption); font-size:var(--font-caption); }
.previous-income strong { display:inline; font-size:var(--font-small); color:var(--text); letter-spacing:0; }
.metric-method { position:static; font-size:var(--font-caption); color:var(--caption); }
.metric-method summary { font-size:var(--font-caption); padding:4px 0; min-height:28px; width:fit-content; }
.metric-method p { position:absolute; left:0; top:100%; z-index:4; width:360px; max-width:calc(100vw - 36px); margin:var(--space-1) 0 0; padding:var(--space-3); background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); font-size:var(--font-small); color:var(--muted); }
.view-tabs { display:flex; flex-wrap:wrap; gap:0 var(--space-5); border-bottom:1px solid var(--border); }
.view-tabs a { display:flex; align-items:center; gap:var(--space-2); min-height:44px; padding:10px 0; border-bottom:2px solid transparent; margin-bottom:-1px; font-size:var(--font-small); color:var(--muted); white-space:nowrap; }
.view-tabs .active { border-bottom-color:var(--text); color:var(--text); font-weight:550; }
.view-tabs a:hover { color:var(--text); text-decoration:none; }
.view-tabs a>span { color:var(--muted); font-size:var(--font-caption); font-weight:400; font-variant-numeric:tabular-nums; }
.view-tabs a>.desktop-label,.view-tabs a>.mobile-only { color:inherit; font:inherit; }
.filters { display:grid; grid-template-columns:minmax(200px,360px) minmax(150px,240px) auto auto auto; justify-content:start; align-items:end; gap:var(--space-3); margin:var(--space-4) 0 var(--space-3); }
.filters label { min-width:0; gap:var(--space-1); }
.filters label>span { font-size:var(--font-caption); color:var(--caption); font-weight:400; }
.filters input,.filters select { height:var(--control); font-size:var(--font-small); background-color:var(--surface); border-color:var(--border); }
.filters input:focus,.filters select:focus { background-color:var(--surface); }
.filters.enhanced .filter-submit { display:none; }
.filters .reset { font-size:var(--font-caption); display:inline-flex; min-height:var(--control); align-items:center; }
.filter-options { position:relative; }
.filter-options>summary { padding:8px 10px; color:var(--muted); min-height:var(--control); border-radius:var(--radius); }
.filter-options>summary:hover,.filter-options[open]>summary { background:var(--subtle); }
.filter-extra { display:grid; gap:var(--space-4); position:absolute; top:calc(100% + 8px); right:0; width:260px; max-width:calc(100vw - 36px); background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:var(--space-4); z-index:4; }
.list-section[aria-busy=true] .student-groups,.list-section[aria-busy=true] .records { cursor:progress; }
.list-toolbar { display:flex; align-items:center; justify-content:flex-start; gap:var(--space-4); margin:0 0 var(--space-3); }
.list-count { font-size:var(--font-caption); color:var(--caption); }
.list-view-switch { display:inline-flex; gap:var(--space-4); margin-left:var(--space-2); }
.list-view-switch a { display:inline-flex; gap:6px; align-items:center; min-height:32px; padding:6px 0; border-bottom:2px solid transparent; font-size:var(--font-small); font-weight:500; color:var(--muted); }
.list-view-switch a:hover { text-decoration:none; color:var(--text); }
.list-view-switch a[aria-current=page] { border-bottom-color:var(--text); color:var(--text); font-weight:550; }
.list-view-switch svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.5; }
/* Repeated entities stay compact and neutral. The status remains a textual signal. */
.student-groups { display:grid; gap:var(--space-5); }
.student-group { min-width:0; }
.student-group-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:var(--space-3); margin-bottom:var(--space-3); }
.student-group-heading h2 { font-size:16px; margin:0; overflow-wrap:anywhere; }
.student-group-heading .small { font-size:var(--font-caption); }
.student-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-3); list-style:none; padding:0; margin:0; }
.student-grid>li { display:flex; min-width:0; }
.student-tile { --tile-color:var(--muted); display:flex; flex-direction:column; align-items:flex-start; width:100%; padding:var(--space-3); border:1px solid var(--border); border-radius:var(--radius-panel); background:var(--surface); overflow-wrap:anywhere; position:relative; }
.student-tile.paid { --tile-color:var(--green); }
.student-tile.overdue { --tile-color:var(--red); }
.student-tile.attention { --tile-color:var(--amber); }
.student-tile:hover { text-decoration:none; border-color:var(--border-strong); background:var(--surface-hover); }
.student-tile:active { background:var(--subtle); }
.student-tile-meta { font-size:var(--font-caption); color:var(--muted); margin-bottom:4px; }
.student-tile-name { font-size:15px; line-height:1.4; font-weight:600; margin-bottom:var(--space-2); }
.student-tile-received { display:flex; flex-direction:column; align-items:flex-start; gap:2px; margin-bottom:var(--space-2); }
.student-tile-amount { font-size:17px; line-height:1.3; font-weight:550; font-variant-numeric:tabular-nums; letter-spacing:-.3px; }
.student-tile-payment-date { font-size:var(--font-small); color:var(--muted); }
.student-tile-no-payments { font-size:var(--font-caption); color:var(--caption); margin-bottom:var(--space-2); }
.student-tile-payment { display:flex; flex-direction:column; align-items:flex-start; gap:2px; margin-top:auto; }
.student-tile .status { color:var(--tile-color); }
.student-tile-detail { font-size:var(--font-caption); color:var(--caption); line-height:1.4; }
.status { display:inline-flex; align-items:center; gap:7px; font-size:var(--font-small); font-weight:500; white-space:nowrap; }
.status::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; }
.status.paid { color:var(--green); }
.status.overdue { color:var(--red); }
.status.expected,.status.neutral { color:var(--muted); }
.status.attention { color:var(--amber); }
.records { width:100%; border-collapse:collapse; font-size:14px; }
.records th { text-align:left; color:var(--muted); font-size:var(--font-caption); font-weight:500; padding:10px 12px; border-bottom:1px solid var(--border); }
.records td { padding:16px 12px; border-bottom:1px solid var(--border); vertical-align:middle; }
.records th:first-child,.records td:first-child { padding-left:0; }
.records th:last-child,.records td:last-child { padding-right:0; }
.records tbody tr:hover { background:var(--row-hover); }
.record-name { width:25%; }
.record-name>a { font-weight:550; }
.row-action { width:32px; }
.row-open { display:inline-flex; align-items:center; justify-content:center; width:32px; min-height:32px; color:var(--muted); border-radius:var(--radius); font-size:18px; }
.row-open:hover { background:var(--subtle); text-decoration:none; }
/* One compact table, with group headers sharing the same column grid. */
.student-table-scroll { position:relative; overflow:auto; width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); }
.student-table-scroll .student-records { display:table; min-width:1000px; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:var(--font-small); }
.student-records .table-name-column { width:24%; }
.student-records .table-amount-column { width:16%; }
.student-records .table-status-column { width:20%; }
.student-records .table-date-column { width:12%; }
.student-records .table-action-column { width:40px; }
.student-table-scroll .student-records thead { display:table-header-group; }
.student-table-scroll .student-records tbody { display:table-row-group; }
.student-table-scroll .student-records tr { display:table-row; padding:0; }
.student-table-scroll .student-records th,.student-table-scroll .student-records td { padding:4px 10px; text-align:left; border-bottom:1px solid var(--border); border-right:1px solid color-mix(in srgb,var(--border) 65%,var(--surface)); }
.student-table-scroll .student-records th:last-child,.student-table-scroll .student-records td:last-child { border-right:0; }
.student-table-scroll .student-records thead th { height:34px; background:var(--surface); font-size:var(--font-caption); white-space:nowrap; }
.student-table-scroll .student-records td { display:table-cell; vertical-align:middle; font-size:var(--font-small); overflow-wrap:anywhere; }
.student-table-scroll .student-records td::before { display:none; content:none; }
.student-table-scroll .student-records td.record-name { padding:4px 10px; width:auto; display:table-cell; font-size:14px; margin:0; }
.student-table-scroll .student-records .record-name>a { display:flex; align-items:center; justify-content:flex-start; min-height:28px; font-size:14px; line-height:1.35; }
.student-table-scroll .student-records .row-action { display:table-cell; width:40px; padding-inline:4px; }
.student-table-scroll .student-records .row-open { min-height:28px; width:30px; font-size:16px; }
.student-records .table-group-row th { padding-block:8px; background:var(--subtle); }
.table-group-title { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; width:max-content; max-width:calc(100vw - 64px); position:sticky; left:10px; font-size:14px; font-weight:600; color:var(--text); }
.table-group-count { font-size:var(--font-caption); font-weight:400; color:var(--muted); }
.student-records .status { font-size:var(--font-small); }
.table-price { display:flex; align-items:baseline; flex-wrap:wrap; gap:2px 8px; }
.table-price .money { white-space:nowrap; font-size:14px; font-weight:500; }
.table-cycle,.table-detail { font-size:var(--font-caption); color:var(--muted); }
.table-detail { display:block; margin-top:2px; line-height:1.4; }
.table-date { font-variant-numeric:tabular-nums; }
.table-telegram { color:var(--muted); }
.table-telegram>span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.student-table-scroll .student-records tbody:last-child tr:last-child td { border-bottom:0; }
.student-table-scroll .student-records tbody tr:hover { background:var(--bg); }
.student-table-scroll .student-records tbody tr:focus-within { background:var(--bg); }
.student-table-hint { display:none; font-size:var(--font-caption); color:var(--muted); margin:var(--space-2) 0 0; }
@media(max-width:1064px) { .student-table-hint { display:block; } }
@media(max-width:600px) {
 .student-records .table-name-column { width:15%; }
 .student-records .table-amount-column { width:19%; }
 .student-records .table-date-column { width:14%; }
 .student-records .table-telegram-column { width:132px; }
 .student-table-scroll .student-records td:first-child,.student-table-scroll .student-records thead th:first-child { position:sticky; left:0; background:var(--surface); z-index:1; border-right-color:var(--border); }
 .student-table-scroll .student-records .record-name>a { min-height:44px; font-size:15px; }
 .student-records .table-action-column { width:48px; }
 .student-table-scroll .student-records .row-action { width:48px; padding-inline:2px; }
 .student-table-scroll .student-records .row-open { min-height:44px; width:44px; }
 .student-table-scroll .student-records tbody tr:hover td:first-child,.student-table-scroll .student-records tbody tr:focus-within td:first-child { background:var(--bg); }
 .table-group-title { max-width:calc(100vw - 58px); }
}
.empty-state { padding:var(--space-7) var(--space-4); text-align:center; }
.empty-state p { max-width:420px; margin:0 auto var(--space-5); color:var(--muted); }
.empty-state h2 { font-size:20px; margin-bottom:var(--space-2); }
.pagination { padding:var(--space-5) 0; display:flex; justify-content:center; align-items:center; gap:var(--space-5); font-size:var(--font-small); }
.pagination a { display:inline-flex; min-height:44px; align-items:center; }
/* Forms and feedback. */
label { display:flex; flex-direction:column; gap:var(--space-2); font-size:14px; font-weight:500; }
input,select,textarea { width:100%; border:1px solid var(--border-strong); border-radius:var(--radius); min-height:var(--control); color:var(--text); background:var(--surface); padding:7px 10px; max-width:100%; font-size:14px; line-height:1.4; }
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
input:not([type=checkbox]):not([type=radio]),select,textarea { appearance:none; font-weight:400; }
select { padding-right:36px; background-image:var(--select-arrow); background-repeat:no-repeat; background-position:right 12px center; }
input:not([type=checkbox]):not([type=radio]):hover:not(:disabled):not([aria-invalid=true]):not(:user-invalid),select:hover:not(:disabled):not([aria-invalid=true]):not(:user-invalid),textarea:hover:not(:disabled):not([aria-invalid=true]):not(:user-invalid) { border-color:var(--focus); }
input:focus-visible,select:focus-visible,textarea:focus-visible { border-color:var(--focus); }
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true],input:user-invalid,select:user-invalid,textarea:user-invalid { border-color:var(--red); }
input[aria-invalid=true]:focus-visible,input:user-invalid:focus-visible,select[aria-invalid=true]:focus-visible,select:user-invalid:focus-visible,textarea[aria-invalid=true]:focus-visible,textarea:user-invalid:focus-visible { outline-color:var(--red); }
input:disabled,select:disabled,textarea:disabled { background-color:var(--subtle); color:var(--muted); cursor:not-allowed; }
.workspace button,.workspace .button,input,select,textarea,.group-row,.menu-content a { transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease; }
input[type=number] { appearance:textfield; }
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
input[type=hidden] { display:none; }
textarea { resize:vertical; }
input[type=checkbox] { width:18px; min-height:18px; height:18px; accent-color:var(--accent); flex:none; }
.checkbox { flex-direction:row; align-items:flex-start; gap:10px; font-weight:400; }
.checkbox input { margin:2px 0 0; }
.field-error { color:var(--red); font-size:var(--font-small); }
.notice { padding:var(--space-3) var(--space-4); border-left:2px solid var(--notice-border); margin-bottom:var(--space-4); background:var(--subtle); font-size:14px; overflow-wrap:anywhere; }
.notice.success { background:var(--success-bg); border-color:var(--green); color:var(--green); }
.notice.error { background:var(--error-bg); border-color:var(--red); color:var(--error-text); }
.notice p { margin:var(--space-1) 0 0; }
.notice strong { font-weight:600; }
.form-workspace { max-width:var(--workspace-narrow); }
.form-workspace .back-link { margin-bottom:var(--space-2); }
.form-workspace .page-heading { margin-bottom:var(--space-4); }
.editor-form { width:100%; max-width:var(--form-width); }
.editor-form .form-section:last-of-type { padding-bottom:0; }
.form-section { border:0; padding:0 0 var(--space-5); margin:0; min-width:0; }
.form-section legend { padding:0; font-size:15px; font-weight:600; margin-bottom:var(--space-3); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }
.form-grid>p { margin:0; }
.editor-form label:not(.checkbox) { gap:var(--space-1); font-size:var(--font-small); }
.editor-form .field-error:empty { display:none; }
.editor-form .small { font-size:var(--font-caption); }
.editor-form input[type=date] { max-width:280px; }
.full { grid-column:1/-1; }
.form-actions { display:flex; gap:var(--space-3); flex-wrap:wrap; margin-top:var(--space-4); }
.form-actions a { align-self:stretch; }
.editor-form>.muted { margin-top:var(--space-4); }
.form-intro { max-width:600px; }
.pricing-total { padding:var(--space-2) 0; margin:0; display:grid; gap:var(--space-1); min-height:88px; align-content:start; }
.pricing-heading { font-size:var(--font-small); color:var(--muted); }
.pricing-result { min-height:28px; display:flex; align-items:baseline; }
.pricing-formula { font-size:var(--font-caption); color:var(--muted); }
.pricing-total[data-state=empty] strong,.pricing-total[data-state=invalid] strong { font-size:14px; font-weight:400; }
.pricing-total[data-state=invalid] .pricing-formula { color:var(--red); }
.form-help { font-size:var(--font-caption); color:var(--muted); }
.form-help summary { min-height:28px; padding:4px 0; font-size:var(--font-caption); }
.form-help p { margin:var(--space-2) 0 0; }
.pricing-total strong { font-size:22px; line-height:1.25; font-weight:550; font-variant-numeric:tabular-nums; }
.stack { display:flex; flex-direction:column; gap:var(--space-4); }
.stack h2,.stack p { margin-bottom:0; }
.stack .form-actions { margin:0; }
summary { cursor:pointer; font-size:var(--font-small); min-height:var(--control); padding:9px 0; }
summary:hover { color:var(--text); }
/* Student: one current state and a compact inspector. */
.student-workspace .page-heading { margin-bottom:var(--space-4); }
.student-workspace .page-heading .action-menu>summary { border:1px solid var(--border); color:var(--text); background:var(--surface); }
.student-layout { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:var(--space-6); }
.student-main,.student-side { min-width:0; }
.student-side { padding-top:var(--space-1); }
.detail-section { padding:var(--space-5) 0; }
.student-side .detail-section { padding:0 0 var(--space-4); }
.student-side h2 { font-size:var(--font-caption); color:var(--label); font-weight:600; margin-bottom:var(--space-2); }
.section-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-3); }
.section-heading h2 { margin:0; }
.payment-summary { padding:var(--space-4); background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-panel); margin-bottom:var(--space-5); scroll-margin-top:var(--space-4); }
.payment-summary h2 { font-size:14px; color:var(--muted); font-weight:500; }
.coverage-heading { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-3); margin:var(--space-3) 0 var(--space-4); }
.coverage { font-size:20px; line-height:1.3; font-weight:550; letter-spacing:-.4px; margin:0; }
.coverage.covered { color:var(--text); }
.lifecycle-label { color:var(--muted); font-size:var(--font-caption); }
.payment-dates { display:grid; grid-template-columns:1.5fr 1fr; gap:var(--space-4); margin:0 0 var(--space-4); }
.payment-dates dt { color:var(--label); font-size:var(--font-caption); margin-bottom:var(--space-1); }
.payment-dates dd { margin:0; font-size:14px; font-weight:500; font-variant-numeric:tabular-nums; }
.invoice-overview { display:flex; align-items:center; justify-content:space-between; gap:var(--space-5); margin:var(--space-3) 0 var(--space-4); }
.invoice-amount { font-size:30px; line-height:1.2; font-weight:550; letter-spacing:-.7px; font-variant-numeric:tabular-nums; margin-bottom:var(--space-1); }
.invoice-overview .small { font-size:var(--font-caption); }
.invoice-actions { display:flex; align-items:flex-start; flex-wrap:wrap; gap:var(--space-3); }
.manual-actions { font-size:var(--font-small); color:var(--muted); }
.manual-actions>summary { padding:9px 0; }
.manual-action-list { display:flex; flex-wrap:wrap; gap:var(--space-2); padding:var(--space-2) 0 0; }
.automation-note { font-size:var(--font-small); color:var(--muted); }
.automation-note a { text-decoration:underline; }
.inline-actions { display:flex; align-items:center; gap:var(--space-2); flex-wrap:wrap; }
.action-hint { margin-top:var(--space-3); }
.invoice-correction { margin:var(--space-3) 0; padding:var(--space-2) 0; }
.invoice-correction>strong { display:block; }
.invoice-correction p { margin:var(--space-2) 0 var(--space-3); }
.facts { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); margin:0; }
.facts dt { color:var(--caption); font-size:var(--font-caption); margin-bottom:var(--space-1); }
.facts dd { margin:0; font-size:14px; overflow-wrap:anywhere; }
.facts.single { grid-template-columns:1fr; gap:var(--space-2); }
.student-side .facts.single>div { display:flex; justify-content:space-between; align-items:baseline; gap:var(--space-3); }
.student-side .facts.single dd { text-align:right; }
.student-side .facts.single dt { margin:0; }
.student-side p { font-size:var(--font-small); }
.student-side .facts { margin:var(--space-2) 0; }
.inspector-pricing { font-size:14px!important; font-weight:550; margin-bottom:var(--space-1); }
.inspector-disclosure { font-size:var(--font-small); color:var(--muted); }
.inspector-disclosure>summary { padding:8px 0; min-height:32px; }
.inspector-link { font-size:var(--font-small); display:inline-flex; min-height:32px; align-items:center; }
.lifecycle-actions { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.inspector-disclosure .stack { margin-top:var(--space-3); }
.invitation-box { margin:var(--space-4) 0; }
.invitation-box label,.invitation-box input { font-size:var(--font-caption); }
.invitation-box button { margin-top:var(--space-2); }
.invitation-box p { margin-top:var(--space-2); }
.detail-tabs { gap:0 var(--space-5); }
.tab-panel { scroll-margin-top:var(--space-4); min-height:200px; }
.tab-panel>h2,.chat-section .section-heading { margin-bottom:var(--space-4); }
.history-table { font-size:var(--font-small); }
.history-table .record-name { width:auto; }
.history-table th,.history-table td { padding:12px; }
.history-table tr:last-child td { border-bottom:0; }
.history-table td { vertical-align:top; }
.history-table th:nth-child(2),.history-table td:nth-child(2) { text-align:right; }
.history-table td:nth-child(2) { font-variant-numeric:tabular-nums; }
.history-table th:last-child,.history-table td:last-child { padding-left:var(--space-5); }
.inline-empty { color:var(--muted); padding:var(--space-3) 0 var(--space-5); font-size:14px; }
.recipient-settings { margin-top:var(--space-4); }
.recipient-settings summary { color:var(--muted); }
.recipient-form { padding-top:var(--space-3); gap:var(--space-3); }
.audit-list,.notification-list,.access-devices { list-style:none; padding:0; margin:0; }
.audit-list li { padding:var(--space-4) 0; }
.audit-list li:first-child { padding-top:0; }
.audit-list p { margin-bottom:var(--space-1); font-size:14px; overflow-wrap:anywhere; }
.chat-thread { list-style:none; padding:0; margin:var(--space-5) 0; display:flex; flex-direction:column; gap:var(--space-4); max-height:520px; overflow-y:auto; }
.chat-message { width:fit-content; max-width:85%; border-radius:var(--radius); padding:var(--space-3) var(--space-4); overflow-wrap:anywhere; background:var(--subtle); }
.chat-message.outgoing { align-self:flex-end; background:var(--surface); border:1px solid var(--border); }
.chat-message p { margin:var(--space-2) 0; font-size:14px; }
.message-author { font-size:var(--font-caption); font-weight:600; }
.message-meta { display:block; font-size:var(--font-caption); color:var(--muted); }
.chat-composer { margin-top:var(--space-5); gap:var(--space-3); }
.chat-composer button { align-self:flex-start; }
/* Groups use the same entity-list vocabulary and actual payment states. */
.group-list { display:grid; gap:var(--space-3); }
.group-row { position:relative; display:grid; grid-template-columns:minmax(200px,1.4fr) minmax(330px,1fr) auto; gap:var(--space-5); align-items:center; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-panel); padding:var(--space-4); }
.group-row { border-color:color-mix(in srgb,var(--border) 65%,var(--surface)); }
.group-row:hover { border-color:var(--border-strong); }
.group-row:active { border-color:var(--focus); }
.group-row:hover .group-name { text-decoration:underline; text-underline-offset:3px; }
.group-row:has(.group-name:focus-visible) { outline:2px solid var(--focus); outline-offset:2px; }
.group-name:focus-visible { outline:none; }
.group-name::after { content:''; position:absolute; inset:0; z-index:1; border-radius:var(--radius-panel); }
.group-identity { min-width:0; }
.group-name { font-size:16px; font-weight:600; overflow-wrap:anywhere; }
.group-members { display:block; font-size:var(--font-small); color:var(--muted); margin-top:var(--space-1); overflow-wrap:anywhere; }
.group-payment-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-3); margin:0; }
.group-payment-stats dt { font-size:var(--font-caption); color:var(--caption); margin-bottom:var(--space-1); }
.group-payment-stats dd { margin:0; font-size:24px; font-weight:550; font-variant-numeric:tabular-nums; }
.group-actions { position:relative; z-index:2; display:flex; align-items:center; gap:var(--space-1); }
/* Supporting screens keep the same rhythm and control system. */
.narrow-workspace { max-width:var(--workspace-narrow); }
.notification-connection,.notification-rules { margin-bottom:var(--space-6); }
.notification-connection .section-heading,.notification-history .section-heading { margin-bottom:var(--space-4); }
.notification-pairing { margin:var(--space-4) 0; }
.notification-pairing .button { margin:0 var(--space-2) var(--space-2) 0; }
.notification-rules dl { display:grid; gap:var(--space-3); margin:var(--space-4) 0 0; }
.notification-rules dl>div { display:grid; grid-template-columns:190px minmax(0,1fr); gap:var(--space-4); }
.notification-rules dt { font-size:14px; font-weight:550; }
.notification-rules dd { margin:0; color:var(--muted); font-size:14px; }
.notification-list>li { position:relative; padding:var(--space-5) 0 var(--space-5) 20px; border-top:1px solid var(--border); overflow-wrap:anywhere; }
.notification-list>li::before { content:''; position:absolute; left:0; top:32px; width:6px; height:6px; border-radius:50%; background:var(--muted); }
.notification-list>li.paid::before { background:var(--green); }
.notification-list>li.overdue::before { background:var(--red); }
.notification-list>li.attention::before { background:var(--amber); }
.notification-list h3 { font-size:16px; font-weight:600; margin:0 0 var(--space-2); }
.notification-subject { display:flex; align-items:baseline; flex-wrap:wrap; gap:var(--space-2) var(--space-4); margin-bottom:var(--space-2); font-size:16px; font-weight:500; }
.notification-subject .money { font-size:18px; font-weight:550; }
.notification-detail,.notification-extra p { font-size:14px; color:var(--muted); margin:0 0 var(--space-3); }
.notification-meta { display:flex; align-items:baseline; flex-wrap:wrap; gap:var(--space-1) var(--space-3); color:var(--caption); font-size:var(--font-caption); }
.notification-error { font-size:var(--font-small); color:var(--red); margin:0 0 var(--space-3); }
.notification-extra { margin-bottom:var(--space-2); color:var(--muted); }
.notification-extra>summary { padding:4px 0; min-height:28px; }
.notification-bot { font-size:15px; font-weight:500; margin-bottom:var(--space-1); }
.notification-connection>p { font-size:14px; }
.notification-rules>p { margin:var(--space-4) 0 0; }
.pricing-section { padding-top:var(--space-2); }
.pricing-section legend { font-size:16px; }
.additional-section { padding-top:var(--space-2); }
.additional-section legend { font-size:var(--font-small); color:var(--label); font-weight:500; }
.list-section[aria-busy=true] .list-count::after { content:' · Обновляем…'; }
.access-devices li { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); padding:var(--space-4) 0; border-bottom:1px solid var(--border); }
.access-devices p { margin:var(--space-2) 0 0; }
.access-help { margin-top:var(--space-6); }
.access-help details p { margin-top:var(--space-3); }
.login-page { min-height:100dvh; display:grid; place-items:center; padding:var(--space-5); }
.login-box { width:100%; max-width:380px; }
.login-brand { margin-bottom:var(--space-6); }
.login-box h1 { font-size:28px; margin-bottom:var(--space-3); }
.login-box>.muted { margin-bottom:var(--space-5); }
.login-box .login-help { margin-top:-8px; margin-bottom:0; }
.login-autofill { margin-top:var(--space-5); }
dialog { border:1px solid var(--border); border-radius:var(--radius-panel); width:min(520px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:var(--space-5); color:var(--text); background:var(--surface); overflow:auto; box-shadow:0 12px 40px rgb(0 0 0 / 12%); }
dialog::backdrop { background:var(--backdrop); }
.dialog-heading { display:flex; justify-content:space-between; align-items:center; gap:var(--space-4); margin-bottom:var(--space-4); }
.dialog-heading h2 { margin:0; }
.service-connections { margin:var(--space-4) 0 var(--space-5); }
.diagnostics { border-bottom:1px solid var(--border); }
.diagnostics summary { display:grid; grid-template-columns:1fr auto 10px; align-items:baseline; gap:var(--space-3); list-style:none; padding:12px 0; font-size:14px; font-weight:500; }
.diagnostics summary::-webkit-details-marker { display:none; }
.diagnostics summary::after { content:'›'; color:var(--muted); }
.diagnostics[open] summary::after { content:'⌄'; }
.diagnostic-state { color:var(--muted); font-size:var(--font-small); font-weight:400; text-align:right; }
.diagnostics p { padding:0 0 var(--space-3); margin:0; font-size:var(--font-small); color:var(--muted); overflow-wrap:anywhere; }
.service-queue { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); margin:0 0 var(--space-5); }
.service-queue dt { color:var(--muted); font-size:var(--font-small); }
.service-queue dd { margin:var(--space-1) 0 0; font-size:20px; font-weight:500; font-variant-numeric:tabular-nums; }
.service-modal>.form-actions { justify-content:flex-end; }
.copy-feedback { position:fixed; bottom:var(--space-5); left:50%; transform:translateX(-50%); z-index:100; background:var(--accent); color:var(--on-accent); border-radius:var(--radius); padding:var(--space-3) var(--space-4); max-width:calc(100vw - 36px); width:max-content; font-size:14px; }
.error-workspace { padding-top:80px; }
.error-workspace h1 { margin-bottom:var(--space-4); }
.skip-link { position:fixed; top:-100px; left:var(--space-4); z-index:100; padding:10px; background:var(--surface); }
.skip-link:focus { top:10px; }
.preview-label { position:absolute; right:24px; top:calc(100% + 4px); font-size:11px; color:var(--muted); pointer-events:none; }
@media(max-width:1100px) {
 .topbar-inner { gap:var(--space-5); }
 .student-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .group-row { grid-template-columns:minmax(160px,1.2fr) minmax(330px,1fr) auto; gap:var(--space-4); }
 .group-actions { justify-content:flex-end; }
 .student-layout { grid-template-columns:minmax(0,1fr) 210px; gap:var(--space-5); }
 .metrics { gap:var(--space-5); }
 .metric-support strong { font-size:21px; }
 .metric-income>div:first-child>strong { font-size:32px; }
}
@media(max-width:800px) {
 .topbar-inner { flex-wrap:wrap; gap:var(--space-2) var(--space-4); padding-block:var(--space-2); }
 .topbar nav { order:3; width:100%; }
 .student-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .student-layout { grid-template-columns:1fr; }
 .student-side { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); padding-top:var(--space-4); }
 .metrics { grid-template-columns:1fr; gap:var(--space-4); }
 .metric-income,.metric-income>div:first-child,.metric-support>div { display:block; }
 .metric-support { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-5); max-width:550px; }
 .metrics .metric-label,.metrics strong,.metric-support>div>* { grid-row:auto; grid-column:auto; }
 .metrics .metric-label { margin-bottom:var(--space-1); }
 .previous-income { margin-top:var(--space-2); }
 .filters { grid-template-columns:1fr 1fr; }
 .filters .search-field { grid-column:1/-1; }
 .group-row { grid-template-columns:minmax(0,1fr) auto; gap:var(--space-3); }
 .group-payment-stats { grid-column:1/-1; }
 .group-actions { grid-column:2; grid-row:1; align-self:start; }
 .group-payment-stats { max-width:500px; }
}
@media(max-width:600px) {
 :root { --control:44px; --font-body:16px; --font-title:28px; }
 .topbar-inner { padding-inline:18px; }
 .topbar-tools { gap:0; }
 .topbar nav { gap:var(--space-1); }
 .topbar nav a { min-height:44px; padding:8px 12px; font-size:14px; }
 .wordmark { font-size:20px; }
 .brand { gap:var(--space-2); }
 .brand-product { font-size:var(--font-caption); }
 .topbar-tools .quiet { padding-inline:8px; }
 .utility-menu>summary { padding-inline:8px; font-size:var(--font-caption); }
 .workspace { padding:var(--space-5) 18px var(--space-6); }
 .page-heading { flex-wrap:wrap; align-items:flex-start; gap:var(--space-4); margin-bottom:var(--space-5); }
 .page-heading h1 { font-size:26px; }
 .eyebrow { font-size:var(--font-caption); }
 .page-description { font-size:14px; }
 .overview { margin-bottom:var(--space-5); }
 .overview-students { flex-basis:100%; margin-left:0; }
 .metrics { grid-template-columns:1fr; gap:var(--space-3); }
 .metric-support { grid-template-columns:1fr 1fr; gap:var(--space-3); padding:0; }
 .metric-income { grid-column:1/-1; }
 .metric-support strong { font-size:21px; }
 .metric-income>div:first-child>strong { font-size:29px; }
 .previous-income { grid-row:3; grid-column:1; display:flex; margin-top:var(--space-1); }
 .previous-income strong { display:inline; font-size:14px; }
 .metric-rate { grid-column:1/-1; display:flex; align-items:baseline; gap:var(--space-3); }
 .metric-rate .metric-label { margin:0; }
 .metric-rate strong { font-size:16px; }
 .metric-method { margin:0; }
 .metric-label { font-size:var(--font-caption); margin-bottom:var(--space-1); }
 .metric-method summary { min-height:44px; padding-block:12px; }
 .view-tabs { gap:0 18px; }
 .view-tabs a { font-size:var(--font-small); min-height:44px; }
 .desktop-label { display:none; }
 .mobile-only { display:inline; }
 .filters { gap:var(--space-2) var(--space-3); margin:var(--space-4) 0 var(--space-3); }
 .filters input,.filters select,input,select,textarea,.theme-control select { font-size:16px; }
 .filters .reset { min-height:44px; }
 .filter-options { align-self:end; justify-self:end; }
 .filter-extra { width:280px; }
 .list-toolbar { gap:var(--space-2); }
 .menu-content a,.menu-content button,.notification-extra>summary { min-height:44px; }
 .list-view-switch a { min-height:44px; padding:8px 0; }
 .list-toolbar>span:last-child:not(:first-child) { display:none; }
 .student-grid { grid-template-columns:1fr; gap:var(--space-2); }
 .student-tile { padding:var(--space-3); }
 .student-tile-name { font-size:16px; margin-bottom:var(--space-2); }
 .student-tile-received { margin-bottom:var(--space-2); }
 .student-tile-amount { font-size:18px; }
 .student-tile-payment { flex-direction:row; align-items:center; flex-wrap:wrap; gap:4px 10px; }
 .student-tile .status { white-space:normal; }
 .student-group-heading h2 { font-size:16px; }
 .records,.records tbody { display:block; }
 .records thead { display:none; }
 .records tr { display:block; padding:var(--space-4) 0; border-bottom:1px solid var(--border); }
 .records td { display:flex; justify-content:space-between; align-items:baseline; gap:5px 16px; border:0; padding:6px 0; font-size:14px; text-align:right; overflow-wrap:anywhere; }
 .records td::before { content:attr(data-label); font-size:var(--font-small); color:var(--muted); text-align:left; }
 .records td.record-name { display:block; width:auto; text-align:left; font-size:16px; margin-bottom:var(--space-2); padding:0; }
 .records td.record-name::before { display:none; }
 .record-name>a { display:flex; min-height:44px; align-items:center; justify-content:space-between; gap:var(--space-4); }
 .records td:has(.subline):not(.record-name) { display:grid; grid-template-columns:minmax(70px,1fr) minmax(0,1.6fr); align-items:center; }
 .records td:has(.subline):not(.record-name)>.subline { grid-column:2; margin:0; }
 .records td .status { justify-self:end; }
 .records td.row-action { display:none; }
 .records tbody tr:hover { background:transparent; }
 .form-grid { grid-template-columns:1fr; gap:var(--space-4); }
 .editor-form input[type=date] { max-width:100%; }
 .form-help summary { min-height:44px; padding-block:12px; }
 .full { grid-column:auto; }
 .form-section { padding-bottom:var(--space-5); }
 .form-actions>* { flex:1; }
 .form-actions { gap:var(--space-2); }
 #confirm-payment .form-actions { flex-direction:column; }
 .checkbox { min-height:44px; align-items:center; }
 .back-link { min-height:44px; margin-bottom:var(--space-3); }
 .student-layout { gap:var(--space-5); }
 .payment-summary { padding:var(--space-4); margin-bottom:var(--space-4); }
 .coverage { font-size:19px; }
 .coverage-heading { margin:var(--space-3) 0 var(--space-4); }
 .payment-dates { grid-template-columns:1fr; gap:var(--space-3); }
 .payment-dates>div { display:flex; justify-content:space-between; gap:var(--space-3); }
 .payment-dates dt { margin:0; font-size:var(--font-small); }
 .payment-dates dd { text-align:right; }
 .invoice-overview { align-items:flex-start; gap:var(--space-3); }
 .invoice-overview>span { white-space:nowrap; }
 .invoice-amount { font-size:28px; }
 .invoice-overview .small { font-size:var(--font-small); }
 .invoice-actions { display:block; }
 .invoice-actions>form button { width:100%; }
 .manual-action-list { display:grid; grid-template-columns:1fr; }
 .manual-action-list button { width:100%; }
 .student-side { grid-template-columns:1fr; gap:0; }
 .student-side .detail-section { padding-bottom:var(--space-4); }
 .student-side .facts.single>div { gap:var(--space-4); }
 .detail-tabs { gap:0 16px; }
 .history-table th:last-child,.history-table td:last-child { padding-left:0; }
 .history-table td[data-label=Документ] { display:flex; align-items:flex-end; flex-direction:column; gap:var(--space-1); }
 .history-table td[data-label=Документ]::before { display:none; }
 .history-table a,.issue-link { display:inline-flex; min-height:44px; align-items:center; }
 .inspector-link,.inspector-disclosure>summary { min-height:44px; }
 .chat-message { max-width:94%; }
 .chat-message p { font-size:16px; }
 .chat-composer button { width:100%; }
 .group-row { padding:var(--space-4); gap:var(--space-4); }
 .group-name { display:inline-flex; align-items:center; font-size:16px; }
 .group-payment-stats { gap:var(--space-2); }
 .group-payment-stats dt { font-size:12px; }
 .group-actions { justify-content:flex-end; }
 .notification-rules dl>div { grid-template-columns:1fr; gap:var(--space-1); }
 .notification-meta { align-items:flex-start; flex-wrap:wrap; }
 .access-devices li { flex-direction:column; align-items:flex-start; }
 dialog { padding:var(--space-5) 18px; }
 .empty-state { padding:var(--space-6) var(--space-2); }
 .copy-feedback { bottom:var(--space-4); }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
