/* ============================================================
   assets/css/polish.css  —  the professional pass over the admin UI
   Loaded AFTER main.css on every admin page.

   Kept as its own layer on purpose. The rules came from a userstyle written
   against the live pages, so almost every one carries !important: that is
   what a userstyle needs to beat the page, and it is not what a stylesheet
   we own needs. Folding them into main.css as ordinary rules is the right
   end state and should happen a page at a time — but doing it in one go,
   straight after approving the look, is how the look quietly drifts from
   what was approved. This file is the thing that was approved. Removing the
   one <link> per page reverts it completely.

   One rule from the original was changed, and only one — see "overflow"
   below. Everything else is verbatim.
   ============================================================ */

/* EduPay – professional look v2 (all admin pages). Paste into Stylus for edupay.gr. */
:root{--ink:#0f172a;--muted:#64748b;--line:#e8ecf2;--accent:var(--primary,#1d4ed8);--bg:#f6f7fb}
body{background:var(--bg)!important;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}

/* Sidebar */
.sidebar{border-right:1px solid rgba(255,255,255,.06)}
.sidebar-brand{padding-bottom:18px!important;border-bottom:1px solid rgba(255,255,255,.08)!important}
.sidebar-brand-name span{letter-spacing:-.02em}
.nav-section{font-size:10.5px!important;letter-spacing:.12em!important;color:rgba(255,255,255,.4)!important;margin-top:18px!important}
.nav-link{border-radius:8px!important;font-size:14px!important;color:rgba(255,255,255,.72)!important;padding:8px 12px!important;margin:1px 8px!important;font-weight:500!important}
.nav-link svg{opacity:.75;width:17px!important;height:17px!important}
.nav-link:hover{background:rgba(255,255,255,.06)!important;color:#fff!important}
.nav-link.active{background:rgba(255,255,255,.1)!important;color:#fff!important;box-shadow:inset 3px 0 0 #60a5fa!important}
.nav-badge{background:#ef4444!important;font-size:10.5px!important}

/* Top bar */
.topbar{background:#fff!important;border-bottom:1px solid var(--line)!important;box-shadow:none!important}
.topbar-title{font-size:18px!important;letter-spacing:-.02em;color:var(--ink)!important}
.topbar-actions .btn-outline{border-color:transparent!important;background:transparent!important;color:#475569!important;font-weight:500!important;box-shadow:none!important}
.topbar-actions .btn-outline:hover{background:#f1f5f9!important;color:var(--ink)!important}

/* Search & filters */
.main,.dash-strip{background:var(--bg)!important}
.dash-strip input{border:1px solid var(--line)!important;border-radius:10px!important;box-shadow:0 1px 2px rgba(15,23,42,.04)!important;background:#fff!important}
.filters{gap:8px!important;flex-wrap:wrap}
.filters select,.filters .btn-outline{border:1px solid var(--line)!important;border-radius:10px!important;background:#fff!important;box-shadow:0 1px 2px rgba(15,23,42,.04)!important;font-weight:500!important;color:#334155!important}
.filters select,.filters .btn-outline,.dash-strip input{height:38px}
#add-btn,.btn-primary{background:var(--accent)!important;border-color:var(--accent)!important;border-radius:10px!important;box-shadow:0 1px 2px rgba(29,78,216,.25)!important;font-weight:600!important}

/* Table */
.card{border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:0 1px 3px rgba(15,23,42,.05)!important}
/* CHANGED from the original, which added overflow:hidden here. That makes every
   card a scroll container, and position:sticky inside one stops working — the
   receipts table header and the schedule's week header both rely on it. Cards
   that need to clip already set overflow inline. */
table thead th{background:#fafbfd!important;font-size:11px!important;letter-spacing:.06em!important;color:#94a3b8!important;font-weight:600!important;border-bottom:1px solid var(--line)!important;padding-top:12px!important;padding-bottom:12px!important}
table tbody td{border-bottom:1px solid #f1f4f8!important;padding-top:11px!important;padding-bottom:11px!important;color:#334155;font-variant-numeric:tabular-nums}
table tbody td:first-child,table thead th:first-child{padding-left:18px!important}
table:has(.student-name-cell) tbody td{white-space:nowrap}
table tbody tr{transition:background .12s}
table tbody tr:hover{background:#f8faff!important}
.student-name-cell strong{font-weight:600!important;color:var(--ink)!important;letter-spacing:-.01em}
.student-name-sub{color:#94a3b8!important;font-size:12.5px!important}
.student-avatar{width:36px!important;height:36px!important;font-size:12.5px!important;font-weight:600!important;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--line);filter:saturate(.8)}

/* Badges */
.badge-subject{background:#eef2ff!important;color:#3730a3!important;border:none!important;font-weight:500!important;border-radius:6px!important}
.badge-green,.badge-yellow,.badge-orange,.badge-red{border-radius:999px!important;font-size:11.5px!important;font-weight:600!important;letter-spacing:.02em;padding:4px 10px 4px 8px!important;display:inline-flex!important;align-items:center;gap:6px;border:none!important}
.badge-green{background:#ecfdf5!important;color:#047857!important}
.badge-yellow,.badge-orange{background:#fff7ed!important;color:#c2410c!important}
.badge-red{background:#fef2f2!important;color:#b91c1c!important}
.badge-green::before,.badge-yellow::before,.badge-orange::before,.badge-red::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.extras-indicator.none{display:none!important}
.extras-indicator:not(.none){font-style:normal!important;color:var(--accent)!important;font-weight:500}

/* Row buttons */
table tbody .btn-primary{background:#fff!important;color:var(--accent)!important;border:1px solid #c7d2fe!important;box-shadow:none!important;font-weight:600!important}
table tbody .btn-primary:hover{background:#eef2ff!important}
table tbody .btn-outline{border-color:transparent!important;color:#94a3b8!important}

/* Statistics – colour by meaning: blue = totals, green = paid/collected, amber = pending, red = debt/expenses, violet = other */
.stats-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important;gap:12px!important}
.stat-card{--c:var(--accent);--t:#eff6ff;background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;padding:16px 18px!important;box-shadow:inset 0 3px 0 var(--c),0 1px 3px rgba(15,23,42,.05)!important}
.stat-card::after,.stat-card::before{display:none!important}
.stat-card:has(#stat-paid),.stat-card:has(#stat-income),.stat-card:has(#stat-net){--c:#059669;--t:#ecfdf5}
.stat-card:has(#stat-unpaid){--c:#d97706;--t:#fffbeb}
.stat-card:has(#stat-outstanding),.stat-card:has(#stat-expenses){--c:#dc2626;--t:#fef2f2}
.stat-card:has(#stat-methods),.stat-card:has(#stat-extras){--c:#7c3aed;--t:#f5f3ff}
.stat-card .stat-value{color:var(--c)!important;font-weight:700!important;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stat-label{color:#64748b!important;font-size:11px!important;letter-spacing:.06em!important;font-weight:600!important}
.stat-card .stat-label svg{color:var(--c);background:var(--t);border-radius:6px;padding:3px;width:20px!important;height:20px!important;box-sizing:border-box}
.stat-card.alert{background:#fef2f2!important;border-color:#fecaca!important}

/* Form fields on every page */
.content select,.content input[type=text],.content input[type=date],.content input[type=search],.content textarea{border:1px solid var(--line)!important;border-radius:8px!important;background-color:#fff!important}
.content select:focus,.content input:focus,.content textarea:focus{outline:none!important;border-color:#93c5fd!important;box-shadow:0 0 0 3px rgba(59,130,246,.15)!important}

/* Audit log: one list instead of separate cards */
.audit-list{gap:0!important;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.audit-item{border:none!important;border-radius:0!important;box-shadow:none!important;border-bottom:1px solid #f1f4f8!important;margin:0!important}
.audit-item:last-child{border-bottom:none!important}
.audit-item:hover{background:#f8faff!important}

/* ===== V2: layout, buttons, icons ===== */

/* Top bar: secondary actions grouped in one toolbar */
.topbar-actions-desktop{display:flex!important;gap:2px!important;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px}
.topbar-actions-desktop .btn{border-radius:7px!important;height:32px;padding:0 10px!important;font-size:13px!important}
.topbar-actions-desktop .btn+.btn{position:relative}
.topbar-actions-desktop .btn+.btn::before{content:"";position:absolute;left:-2px;top:8px;bottom:8px;width:1px;background:var(--line)}
#scan-qr-btn{background:#eef2ff!important;color:var(--accent)!important}
#notif-btn{width:38px;height:38px;border-radius:50%!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center;border:1px solid var(--line)!important;background:#fff!important}

/* Search: bigger, with focus ring; primary button stronger */
.dash-strip input{height:42px!important;font-size:14.5px!important;padding-left:40px!important}
.dash-strip input:focus{outline:none!important;border-color:#93c5fd!important;box-shadow:0 0 0 4px rgba(59,130,246,.12)!important}
#add-btn{height:42px!important;padding:0 18px!important;font-size:14px!important;box-shadow:0 4px 12px rgba(29,78,216,.25)!important}

/* Filters: single row of pills */
.filters{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.filters select,.filters .btn-outline{border-radius:999px!important;height:34px!important;font-size:13px!important;flex-shrink:0}

/* Checkboxes in theme colour; selected rows highlighted */
input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}
tbody tr:has(.student-cb:checked){background:#eef2ff!important}

/* Status stripe on the left of each row (green = paid, amber = unpaid, red = overdue) */
table:has(.student-name-cell) tbody tr:has(.badge-yellow) > td:nth-child(2),table:has(.student-name-cell) tbody tr:has(.badge-orange) > td:nth-child(2){box-shadow:inset 3px 0 0 #f59e0b}
table:has(.student-name-cell) tbody tr:has(.badge-red) > td:nth-child(2){box-shadow:inset 3px 0 0 #ef4444}
table:has(.student-name-cell) tbody tr:has(.badge-green) > td:nth-child(2){box-shadow:inset 3px 0 0 #10b981}

/* Status badges with icons instead of dots */
table:has(.student-name-cell) tbody .badge-green::before,table:has(.student-name-cell) tbody .badge-yellow::before,table:has(.student-name-cell) tbody .badge-orange::before,table:has(.student-name-cell) tbody .badge-red::before{width:14px!important;height:14px!important;display:inline-grid;place-items:center;color:#fff;font-size:9px;font-weight:800;line-height:1}
table:has(.student-name-cell) tbody .badge-green::before{content:"✓"!important;background:#10b981!important}
table:has(.student-name-cell) tbody .badge-yellow::before,table:has(.student-name-cell) tbody .badge-orange::before{content:"!"!important;background:#f59e0b!important}
table:has(.student-name-cell) tbody .badge-red::before{content:"!"!important;background:#ef4444!important}

/* Phone icon before the number */
.student-name-sub::before{content:"";display:inline-block;width:11px;height:11px;margin-right:5px;vertical-align:-1px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat}

/* Fee column: stronger */
table:has(.student-name-cell) tbody td:nth-child(5){font-weight:600;color:var(--ink)}

/* Row buttons: € icon, compact; ⋮ round */
table tbody .btn-primary{height:32px;padding:0 12px!important;border-radius:8px!important;font-size:13px!important}
table:has(.student-name-cell) tbody .btn-primary::before{content:"€";font-weight:800;margin-right:5px;opacity:.8}
.row-menu-btn{width:32px;height:32px;border-radius:50%!important;padding:0!important}
tbody tr:hover .row-menu-btn{background:#f1f5f9!important;color:var(--ink)!important}

/* Suggestions: small round button instead of a big pill */
.fb-fab{width:46px!important;height:46px!important;padding:0!important;border-radius:50%!important;font-size:0!important;display:inline-flex!important;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(15,23,42,.15)!important}
.fb-fab svg{width:20px!important;height:20px!important}

/* ===== V2: page-specific improvements ===== */

/* Online payments */
.op-intro{background:#eff6ff;border:1px solid #dbeafe;border-radius:12px;padding:12px 16px 12px 44px!important;position:relative;color:#1e3a8a!important;max-width:760px}
.op-intro::before{content:"i";position:absolute;left:14px;top:13px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font:700 12px/20px Georgia,serif;text-align:center}
.op-muted{font-size:12.5px!important;color:#94a3b8!important}
.op-table tbody td:nth-child(4){font-weight:700;color:var(--ink)!important}
.op-table tbody td:last-child span{display:inline-flex;align-items:center;gap:5px;background:#ecfdf5;color:#047857!important;border-radius:999px;padding:3px 10px 3px 6px;font-size:11.5px;font-weight:600}
.op-table tbody td:last-child span::before{content:"✓";width:14px;height:14px;border-radius:50%;background:#10b981;color:#fff;font-size:9px;font-weight:800;display:inline-grid;place-items:center}
.card a[href*=stripe]::after{content:" ↗"}

/* Tabs (Applications) as a segmented control */
.app-tabs{background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px;display:inline-flex!important;gap:2px}
.app-tab{border-radius:8px!important;border:none!important;padding:6px 14px!important;font-weight:500;color:#475569!important;background:transparent!important}
.app-tab.active{background:var(--accent)!important;color:#fff!important;box-shadow:0 1px 3px rgba(29,78,216,.3)}
.app-tab .count{background:rgba(15,23,42,.06)!important;color:inherit!important;border-radius:999px;padding:1px 7px;font-size:11px}
.app-tab.active .count{background:rgba(255,255,255,.25)!important}
.share-box{background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:0 1px 3px rgba(15,23,42,.05)!important;padding:18px 20px!important}
.share-box-head svg{background:#eff6ff;color:var(--accent);border-radius:8px;padding:6px;width:30px!important;height:30px!important;box-sizing:border-box}
.share-box-label{font-size:15px!important;font-weight:600!important;color:var(--ink)!important}
.share-box-sub{color:#64748b!important}
.share-box-row{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:6px 6px 6px 12px!important}
.share-box-row .form-input{border:none!important;background:transparent!important}
.rf-head{font-size:11px!important;letter-spacing:.08em!important;color:#94a3b8!important}
.rf-row{border-bottom:1px solid #f1f4f8!important;padding:8px 6px!important}
.rf-row:hover{background:#f8faff}
.app-empty{background:#fff;border:1.5px dashed #cbd5e1;border-radius:14px;color:#64748b;text-align:center;padding:28px!important}

/* Messages */
.msg-tabs{background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px;display:inline-flex!important;gap:2px;border-bottom:1px solid var(--line)!important}
.msg-tab{border-radius:8px!important;border:none!important;padding:6px 14px!important;font-weight:500;color:#475569!important;background:transparent!important;box-shadow:none!important}
.msg-tab.active{background:var(--accent)!important;color:#fff!important}
.msg-tab-count{background:rgba(15,23,42,.06)!important;color:inherit!important;border-radius:999px;padding:1px 7px}
.msg-tab.active .msg-tab-count{background:rgba(255,255,255,.25)!important}
.msg-card{background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:0 1px 3px rgba(15,23,42,.05)!important;padding:16px 18px 16px 22px!important;position:relative}
.msg-card:has(.msg-badge--active){box-shadow:inset 4px 0 0 #10b981,0 1px 3px rgba(15,23,42,.05)!important}
.msg-card:has(.msg-badge--hidden){box-shadow:inset 4px 0 0 #cbd5e1,0 1px 3px rgba(15,23,42,.05)!important;opacity:.85}
.msg-card__msg{font-size:14.5px!important;line-height:1.55!important;color:var(--ink)!important}
.msg-card__meta{gap:6px!important;flex-wrap:wrap}
.msg-card__meta > *{background:#f1f5f9;border-radius:999px;padding:2px 9px!important;font-size:11.5px!important}
.msg-card__actions{border-top:1px solid #f1f4f8;padding-top:10px!important;margin-top:10px!important}
.msg-card__actions .btn-ghost{border-radius:8px!important}
.msg-danger{margin-left:auto!important;color:#94a3b8!important;background:transparent!important}
.msg-danger:hover{color:#dc2626!important;background:#fef2f2!important}
.msg-badge--active{background:#ecfdf5!important;color:#047857!important;border-radius:999px!important}
.msg-intro{color:#64748b!important}

/* Groups / schedule */
.view-nav{background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px;display:inline-flex!important;gap:2px}
.view-nav > *{border-radius:8px!important;border:none!important;padding:6px 14px!important;color:#475569!important;background:transparent!important;font-weight:500}
.view-nav > [aria-pressed=true],.view-nav > .active{background:var(--accent)!important;color:#fff!important}
.seg{background:#f1f5f9;border-radius:10px;padding:3px;display:inline-flex;gap:2px}
.seg > *{border-radius:7px!important;border:none!important;background:transparent!important}
.seg > [aria-pressed=true],.seg > .active{background:#fff!important;color:var(--ink)!important;box-shadow:0 1px 2px rgba(15,23,42,.1)!important}
.panel,.board{background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:0 1px 3px rgba(15,23,42,.05)!important}
.panel-head{font-weight:600!important;color:var(--ink)!important}
.count-pill{background:#eef2ff!important;color:#3730a3!important;border-radius:999px!important}
.gchip{border-radius:10px!important;border:1px solid var(--line)!important;box-shadow:inset 3px 0 0 var(--accent)!important;transition:transform .12s,box-shadow .12s}
.gchip:hover{transform:translateY(-1px);box-shadow:inset 3px 0 0 var(--accent),0 4px 10px rgba(15,23,42,.08)!important}
.gchip-name{font-weight:600!important;color:var(--ink)!important}
.wk-h{font-weight:600!important}
.wk-h.today{background:#eef2ff!important;color:var(--accent)!important}
.wk-time{color:#94a3b8!important;font-size:11px!important}
.wk-card{border-radius:8px!important;box-shadow:0 1px 3px rgba(15,23,42,.08)!important}
.wk-name{font-weight:600!important}
.is-empty{border:1.5px dashed #cbd5e1!important;border-radius:10px!important;background:#f8fafc!important}

/* Calendar */
.cal-grid{gap:6px!important;background:transparent!important;border:none!important}
.cal-dow{color:#94a3b8!important;font-size:11px!important;letter-spacing:.08em;background:transparent!important;border:none!important}
.cal .cal-cell{background:#fff!important;border:1px solid var(--line)!important;border-radius:10px!important}
.cal .cal-cell.is-blank{background:transparent!important;border-style:dashed!important;opacity:.5}
.cal .cal-cell.is-weekend{background:#fafbfd!important}
.cal .cal-cell.is-today{border:2px solid var(--accent)!important}
.cal-daynum{font-weight:600!important}
.cal-badge{border-radius:6px!important;font-weight:500;box-shadow:inset 3px 0 0 currentColor}
.cal-nav-btn{border-radius:8px!important;border:1px solid var(--line)!important;background:#fff!important}
.cal-side-card{background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:0 1px 3px rgba(15,23,42,.05)!important}
.cal-side-h,.todo-head{font-size:11px!important;letter-spacing:.08em;color:#64748b!important;font-weight:700!important}
.todo-empty{color:#94a3b8!important;font-style:italic}
.cal-note-area{border:1px solid var(--line)!important;border-radius:10px!important;background:#fffdf5!important}

/* Tests */
.view-toggle{background:#f1f5f9!important;border-radius:10px!important;padding:3px!important;border:none!important}
.view-btn{border-radius:7px!important;border:none!important}
.view-btn.is-on{background:#fff!important;color:var(--ink)!important;box-shadow:0 1px 2px rgba(15,23,42,.1)!important}
.tests-stats{gap:10px!important}
.stat-chip{background:#fff!important;border:1px solid var(--line)!important;border-radius:12px!important;padding:8px 14px!important;font-weight:500;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.stat-chip b,.stat-chip strong{font-size:17px}
.stat-chip--danger{background:#fef2f2!important;border-color:#fecaca!important;color:#b91c1c!important}
.stat-chip--today{background:#eff6ff!important;border-color:#bfdbfe!important;color:#1d4ed8!important}
.stat-chip--success{background:#ecfdf5!important;border-color:#a7f3d0!important;color:#047857!important}
.filter-search,.filter-select{border:1px solid var(--line)!important;border-radius:999px!important;background:#fff!important}
.tests-calendar .cal-cell{border-radius:10px!important;border:1px solid var(--line)!important;background:#fff!important;transition:border-color .12s}
.tests-calendar .cal-cell:hover{border-color:#93c5fd!important}
.tests-calendar .cal-cell.is-out{background:#f8fafc!important;opacity:.6}
.tests-calendar .cal-cell.is-today{border:2px solid var(--accent)!important}
.cal-num{font-weight:600!important}
.cal-chip{border-radius:6px!important;background:#eef2ff!important;color:#3730a3!important;border:none!important;box-shadow:inset 3px 0 0 var(--accent);font-weight:500}
.cal-wd{color:#94a3b8!important;font-size:11px!important;letter-spacing:.08em}
.tbtn{border-radius:8px!important;border:1px solid var(--line)!important;background:#fff!important}

/* Absences */
.abs-controls{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px!important;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.abs-cards{gap:12px!important}
.abs-card{--c:var(--accent);background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:inset 0 3px 0 var(--c),0 1px 3px rgba(15,23,42,.05)!important}
.abs-card:nth-child(2){--c:#dc2626}.abs-card:nth-child(3){--c:#d97706}.abs-card:nth-child(4){--c:#7c3aed}
.abs-card .val{color:var(--c)!important;font-weight:700!important;letter-spacing:-.03em}
.abs-card .lbl{color:#64748b!important;font-weight:600!important;letter-spacing:.06em}
.abs-empty{padding:40px 20px!important;color:#94a3b8!important}
.abs-empty::before{content:"📋";display:block;font-size:28px;margin-bottom:8px;filter:grayscale(1);opacity:.5}

/* Receipts */
.rc-summary{gap:12px!important}
.rc-card{background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:inset 0 3px 0 var(--accent),0 1px 3px rgba(15,23,42,.05)!important}
.rc-card:has(.money){box-shadow:inset 0 3px 0 #059669,0 1px 3px rgba(15,23,42,.05)!important}
.rc-card .val{font-weight:700!important;letter-spacing:-.03em;color:var(--ink)!important}
.rc-card .val.money,.rc-card .money{color:#059669!important}
.rc-card .lbl{color:#64748b!important;font-weight:600!important;letter-spacing:.06em}
.rc-table-wrap{background:#fff;border:1px solid var(--line)!important;border-radius:14px!important;overflow:hidden;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.rc-no{font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:12.5px!important;color:#64748b!important;font-weight:500!important;white-space:nowrap}
.rc-student{font-weight:600!important;color:var(--ink)!important}
.rc-desc{color:#64748b!important}
.rc-type{border-radius:6px!important;background:#eef2ff!important;color:#3730a3!important;font-size:10.5px!important}
table.rc tbody td:nth-child(4){white-space:nowrap;font-size:12.5px;color:#64748b!important}
.rc-amt{font-weight:700!important;color:var(--ink)!important;text-align:right}
.rc-print{border-radius:8px!important;border:1px solid var(--line)!important;background:#fff!important;color:#475569!important}
.rc-print:hover{border-color:#93c5fd!important;color:var(--accent)!important}
tr.void td,tr:has(.void) td{text-decoration:line-through;opacity:.5}

/* Audit log – colour stripe per category */
.audit-item{--c:#94a3b8;box-shadow:inset 3px 0 0 var(--c)!important;padding-left:16px!important}
.audit-item:has(.audit-cat.payment),.audit-item:has(.audit-cat.online),.audit-item:has(.audit-cat.receipt){--c:#10b981}
.audit-item:has(.audit-cat.student),.audit-item:has(.audit-cat.application){--c:#3b82f6}
.audit-item:has(.audit-cat.settings),.audit-item:has(.audit-cat.pin){--c:#8b5cf6}
.audit-item:has(.audit-cat.reminders){--c:#f59e0b}
.audit-item:has(.audit-cat.calendar),.audit-item:has(.audit-cat.test){--c:#06b6d4}
.audit-cat{min-width:86px;text-align:center;border-radius:6px!important;font-size:10.5px!important;letter-spacing:.06em}
.audit-time{font-variant-numeric:tabular-nums;color:#94a3b8!important;font-size:12px!important;min-width:90px}
.audit-label{color:var(--ink)!important;font-weight:500}
.audit-by{color:#94a3b8!important;font-size:12px!important}

/* Settings */
.settings-grid{gap:16px!important}
.settings-grid .card{padding:20px 22px!important}
.settings-grid .card > h2,.settings-grid .card > h3{font-size:16px!important;font-weight:650!important;color:var(--ink)!important;padding-bottom:10px;border-bottom:1px solid #f1f4f8;margin-bottom:12px!important}
.form-label{color:#64748b!important;font-size:11px!important;letter-spacing:.06em;font-weight:600!important}
.form-input,.form-textarea{border:1px solid var(--line)!important;border-radius:10px!important;background:#fff!important}
.form-input:focus,.form-textarea:focus{border-color:#93c5fd!important;box-shadow:0 0 0 3px rgba(59,130,246,.15)!important;outline:none!important}
.tag{border-radius:999px!important;background:#eef2ff!important;color:#3730a3!important;border:none!important}

/* ===== Corrections to the original userstyle =====
   Everything above is the restyle as it was approved. These are fixes for
   places where it breaks the live markup, kept apart so the diff stays clear. */

/* The filter row above turns into one non-wrapping scrolling row, and gives
   flex-shrink:0 to `.filters select`. But the flex item is not the select —
   main.css wraps each control in a `.filter-ico` span (position:relative,
   min-width:0) so the icon can sit over it. The span was still shrinkable, so
   below ~500px every filter collapsed to an empty chevron pill. Pin the
   wrappers, not the controls. */
.filters > * { flex-shrink: 0; }

/* The search field gets padding-left:40px above to make room for the icon.
   On an <input> that also raises its automatic minimum width by 40px, so in a
   nowrap row it stops shrinking and pushes the button past the edge. The flex
   basis should decide the width, not the padding. */
.dash-strip input { min-width: 0; }
