:root{font-family:Space Grotesk,Manrope,IBM Plex Sans,Segoe UI,sans-serif;color:#0f172a;background:linear-gradient(180deg,#f7f6f2,#e9edf5 45%,#e6f0ff);--panel-bg: #ffffff;--panel-border: #e6eaf2;--panel-shadow: 0 18px 40px rgba(15, 23, 42, .08);--text-muted: #5b6474;--accent: #1d4ed8;--accent-soft: #dbeafe;--ink: #0f172a}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(255,255,255,.7),transparent 50%),radial-gradient(circle at 10% 20%,rgba(59,130,246,.08),transparent 45%),radial-gradient(circle at 90% 0%,rgba(14,116,144,.12),transparent 40%),linear-gradient(180deg,#f7f6f2,#e9edf5 55%,#e6f0ff)}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.top-strip{position:sticky;top:0;z-index:20;grid-column:1 / -1;background:#0f172af2;padding:6px 20px;display:flex;justify-content:flex-end}.top-strip-actions{display:inline-flex;gap:8px;align-items:center}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;background:#0f172a;color:#e2e8f0;display:flex;flex-direction:column;gap:20px;overflow:hidden}.sidebar.collapsed{width:80px;grid-column:span 1}.sidebar-head{display:flex;align-items:center;gap:12px}.sidebar-brand-banner{display:flex;align-items:center;justify-content:flex-start}.sidebar-brand-logo{width:128px;max-width:100%;height:auto;object-fit:contain}.logo-mark{width:44px;height:44px;border-radius:12px;background:#ffffff1a;border:1px solid rgba(226,232,240,.3);display:grid;place-items:center;overflow:hidden}.logo-mark img{width:30px;height:30px;object-fit:contain;display:block}.logo-text{display:flex;flex-direction:column;gap:4px;color:#e2e8f0}.logo-product-type{display:inline-flex;width:fit-content;padding:2px 8px;border-radius:999px;border:1px solid rgba(191,219,254,.5);background:#1e40af40;color:#dbeafe;font-size:.72rem;font-weight:600;line-height:1.2}.nav{flex:1 1 auto;min-height:0;display:grid;align-content:start;grid-auto-rows:min-content;gap:8px;overflow-y:auto;padding-right:4px}.nav-item{width:100%;border:0;background:transparent;color:inherit;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;cursor:pointer;font-size:.95rem}.nav-item:hover{background:#94a3b826}.nav-item.active{background:#3b82f633;color:#fff}.nav-icon{width:36px;height:36px;border-radius:8px;background:#e2e8f026;display:grid;place-items:center;font-weight:600;font-size:.85rem;color:#e2e8f0}.nav-icon svg{width:20px;height:20px;fill:currentColor}.sidebar-foot{margin-top:auto;display:flex;justify-content:center;padding:10px 0 8px}.sidebar-toggle-btn{width:100%;max-width:188px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(148,163,184,.65);background:#1e293be6;color:#e2e8f0;box-shadow:0 6px 16px #02061759}.sidebar-toggle-btn:hover{background:#334155f2;border-color:#bfdbfee6}.sidebar-toggle-icon{font-size:1rem;line-height:1;color:#fff;font-weight:700}.sidebar.collapsed .sidebar-toggle-btn{width:48px;min-width:48px;min-height:48px;padding:0}.sidebar.collapsed .sidebar-toggle-label{display:none}.page{width:100%;max-width:none;margin:0;padding:36px 20px 64px;display:flex;flex-direction:column;gap:28px}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-radius:18px;background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow)}.brand h1{margin:6px 0 4px;font-size:2rem}.subtitle{margin:0;color:var(--text-muted)}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:#5b6b86}.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.icon-btn{width:30px;height:30px;border-radius:999px;border:1px solid rgba(226,232,240,.2);background:transparent;display:grid;place-items:center;cursor:pointer;color:#e2e8f0;box-shadow:none}.lang-select{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border-radius:999px;border:1px solid rgba(226,232,240,.2);background:#0f172a59;color:#e2e8f0}.lang-select svg{width:16px;height:16px;fill:currentColor}.lang-select select{border:none;background:transparent;color:inherit;font-size:.8rem;text-transform:uppercase}.lang-select select:focus{outline:none}.icon-btn svg{width:16px;height:16px;fill:currentColor}.avatar{width:30px;height:30px;border-radius:999px;background:#ef476f;color:#fff;display:grid;place-items:center;font-weight:700}.icon-btn:hover{background:#94a3b82e}.pill{border-radius:999px;background:var(--accent-soft);color:#1e3a8a;padding:6px 12px;font-size:.85rem}.overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stat-card{background:var(--panel-bg);border-radius:16px;padding:18px;border:1px solid var(--panel-border);box-shadow:var(--panel-shadow)}.stat-label{margin:0;color:var(--text-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.stat-value{margin:8px 0 0;font-size:1.6rem;font-weight:600;color:var(--ink)}.stat-meta{margin:6px 0 0;color:#6b7280;font-size:.8rem}.student-context{margin-top:10px;display:grid;gap:10px}.student-context-item{padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.storage-bar{margin:10px 0 8px;height:10px;background:#94a3b833;border-radius:999px;overflow:hidden}.storage-bar-fill{height:100%;border-radius:999px;transition:width .2s ease}.tag.warn{background:#f59e0b26;color:#92400e}.tag.success{background:#22c55e29;color:#166534}.tag.info{background:#3b82f624;color:#1d4ed8}.tag.danger{background:#ef44442e;color:#b91c1c}.content-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;width:100%}.stack{display:flex;flex-direction:column;gap:20px;width:100%}.panel{background:var(--panel-bg);border-radius:16px;padding:20px;border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);width:100%}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.role-hint{margin-left:auto;font-size:.75rem;color:#1e3a8a;background:#e0e7ff;padding:4px 10px;border-radius:999px;white-space:nowrap}.hint{margin:8px 0 0;font-size:.82rem;color:var(--text-muted)}.module-visibility-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.module-visibility-product{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#f8fafc}.module-visibility-product h5{margin:0;font-size:.92rem}.module-visibility-options{margin-top:8px;display:grid;gap:8px}.module-visibility-columns{display:grid;grid-template-columns:minmax(0,1fr) 64px 64px;align-items:center;gap:8px;padding:0 2px;color:#64748b;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.module-column{text-align:center}.module-column-label{text-align:left}.module-visibility-row{display:grid;gap:10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:6px 8px}.module-row-main{display:grid;grid-template-columns:minmax(0,1fr) 64px 64px;align-items:center;gap:8px}.module-row-label{font-size:.9rem;color:#0f172a}.module-row-switch{justify-content:center}.module-row-roles{display:grid;gap:8px;padding-top:8px;border-top:1px dashed #dbe3ef}.module-row-roles-label{font-size:.76rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#64748b}.module-row-role-options{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 10px}.dashboard-order-wrap{margin-top:12px;display:grid;gap:8px}.dashboard-order-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:8px 10px}.dashboard-order-label{font-size:.84rem;color:#0f172a}.dashboard-order-actions{display:inline-flex;gap:6px}.menu-role-grid{display:grid;gap:10px}.menu-role-row{border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:8px 10px;display:grid;gap:8px}.dashboard-save-row{margin-top:10px;align-items:flex-start}.dashboard-save-row>.ghost,.dashboard-save-row>button{justify-self:start}.inline-feedback{display:block;margin-top:4px}.hint-inline{display:inline-flex;align-items:center;gap:8px;margin-top:10px;color:var(--text-muted);font-size:.82rem}.hint-icon{width:18px;height:18px;border-radius:999px;background:#94a3b833;color:var(--text-muted);display:inline-grid;place-items:center;font-weight:600;font-size:.72rem;text-transform:uppercase}.hint-text{display:inline-block}.panel-header.tight{margin-top:12px}.form{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.form.inline{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:center}.prk-metric-cards{gap:10px;margin-top:10px}.prk-metric-cards .notice-badge{width:100%}.checkbox{display:inline-flex;align-items:center;gap:.4rem}.create-customer-form .hint.tight{margin:0}.create-customer-password-hint{display:flex;align-items:flex-start;grid-column:span 2}.create-customer-temporary{align-self:end;min-height:42px}.create-customer-submit{align-self:end}.dialog-replies-toggle{align-items:flex-start;gap:.7rem;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.dialog-replies-toggle input[type=checkbox]{margin-top:2px}.dialog-replies-copy{display:grid;gap:4px;line-height:1.25}.dialog-replies-help{margin-top:2px}.form input,.form select{padding:10px 12px;border-radius:10px;border:1px solid #cbd5f5;background:#f8fafc}.form textarea{padding:10px 12px;border-radius:10px;border:1px solid #cbd5f5;background:#f8fafc;resize:vertical}.password-field{position:relative}.password-field input{width:100%;padding-right:44px}.password-field .icon-btn{position:absolute;top:50%;right:10px;width:32px;height:32px;border-radius:999px;border:none;background:transparent;display:grid;place-items:center;transform:translateY(-50%)}.password-field .icon-btn svg{width:18px;height:18px;color:#475569}.datetime-field{display:flex;gap:8px;align-items:center}.datetime-field input{flex:1;cursor:pointer}.datetime-input{background-image:linear-gradient(90deg,transparent 0%,transparent 70%,rgba(148,163,184,.35) 70%);background-size:6px 2px;background-repeat:no-repeat;background-position:right 12px center}.preset-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.form button{padding:10px 16px;border-radius:10px;border:none;background:#1e293b;color:#fff;cursor:pointer}.actions{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center}.ghost{border:1px solid #cbd5f5;background:transparent;color:#334155;padding:8px 14px;border-radius:10px;cursor:pointer}.ghost:disabled{opacity:.6;cursor:not-allowed}.ghost.active{background:#1e293b;color:#fff}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}.calendar-grid.week,.calendar-grid.month{grid-template-columns:repeat(7,minmax(140px,1fr))}.calendar-day{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px;display:grid;gap:10px}.calendar-day.today{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.calendar-day.muted{opacity:.55}.calendar-day-header{font-weight:600;color:#1f2937}.calendar-item{background:#fff;border-radius:10px;padding:10px;border:1px solid #e2e8f0}.holiday-badge{display:grid;gap:4px;margin:6px 0 10px;font-size:.8rem;color:#1e293bd9}.holiday-badge span{background:#10b9811f;border:1px solid rgba(16,185,129,.25);border-radius:999px;padding:2px 8px;display:inline-block;width:max-content}.holiday-badge.small{margin-top:6px;font-size:.7rem}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap}.pagination .page-size,.pagination .page-controls{display:flex;align-items:center;gap:8px}.relation-results{display:grid;gap:8px;padding:8px}.relation-search-row{margin-top:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;width:100%}.relation-search-row input{width:100%;min-width:0;padding:10px 12px;border-radius:10px;border:1px solid #cbd5f5;background:#f8fafc}.relation-search-btn{width:auto;white-space:nowrap}.relation-results-wrap{margin-top:10px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;max-height:220px;overflow-y:auto}.relation-result-item{width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.relation-empty{padding:6px 4px}.unit-input{display:flex;align-items:center;gap:8px}.unit-input input{flex:1 1 auto;min-width:0;padding-right:12px}.unit-suffix{flex:0 0 auto;line-height:1;color:#6b7280;font-size:.85rem;white-space:nowrap}.week-grid{display:grid;gap:10px;--slot-height: 34px;overflow-x:auto}.subject-palette{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.subject-tile{border:1px solid rgba(30,41,59,.18);border-radius:10px;padding:8px 10px;min-width:128px;font-weight:600;color:#0f172a;cursor:grab;box-shadow:0 2px 8px #0f172a14}.subject-tile:active{cursor:grabbing}.pause-tile{display:grid;align-items:center;gap:6px;background:#fde68a}.week-grid-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.week-grid-nav{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.week-grid-tools{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}.repeat-weekly-controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.repeat-weekly-controls .detail-label{white-space:nowrap}.repeat-weekly-controls input[type=date]{min-width:160px}@media(max-width:900px){.week-grid-controls{align-items:flex-start}.week-grid-tools{margin-left:0;width:100%;justify-content:center}.repeat-weekly-controls{width:100%}}.week-grid-header{display:grid;grid-template-columns:90px repeat(7,minmax(180px,1fr));gap:6px;font-size:.8rem;color:var(--text-muted);min-width:1360px}.week-grid-day{text-align:center;padding:6px 0}.week-grid-body{display:grid;gap:6px}.week-grid-row{display:grid;grid-template-columns:90px repeat(7,minmax(180px,1fr));gap:6px;align-items:stretch;min-width:1360px}.week-grid-time{font-size:.75rem;color:var(--text-muted);text-align:right;padding-right:6px}.week-grid-cell{min-height:var(--slot-height);height:var(--slot-height);border:1px dashed rgba(148,163,184,.25);border-radius:10px;padding:4px;background:#ffffff80;position:relative;overflow:visible}.week-grid-item{display:grid;gap:2px;background:#3b82f61f;border:1px solid rgba(59,130,246,.3);border-radius:8px;padding:6px 8px;font-size:.78rem;cursor:grab;position:absolute;left:4px;right:4px;z-index:2;box-sizing:border-box}.week-grid-item .grid-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-grid-item .off-grid{color:var(--ink-soft);font-weight:600}.week-grid-item:active{cursor:grabbing}.grid-resize-actions{display:inline-flex;gap:6px;margin-top:2px;justify-content:flex-end}.ghost.tiny{padding:3px 8px;font-size:.74rem}.resize-handle{position:absolute;left:8px;right:8px;bottom:2px;height:6px;border-radius:999px;background:#3b82f659;cursor:ns-resize}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;display:grid;place-items:center;z-index:40}.modal-card{width:min(720px,92vw);background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:16px;box-shadow:var(--panel-shadow);padding:20px;display:grid;gap:12px}.modal-card.compact{width:min(420px,92vw)}.onboarding-step{display:grid;gap:6px}.nav-item-highlight{position:relative;box-shadow:0 0 0 1px #3b82f659}.nav-item-highlight:after{content:"";position:absolute;right:-18px;top:50%;width:10px;height:10px;border-right:3px solid rgba(59,130,246,.9);border-bottom:3px solid rgba(59,130,246,.9);transform:translateY(-50%) rotate(-45deg);filter:drop-shadow(0 0 6px rgba(59,130,246,.4))}.nav-item-highlight:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:14px;border:1px dashed rgba(59,130,246,.35);opacity:.7;pointer-events:none}.onboarding-pointer{margin-top:12px;padding:0 12px 12px}.onboarding-pointer.collapsed{padding-left:8px;padding-right:8px}.onboarding-bubble{background:var(--panel-bg);border:1px solid rgba(59,130,246,.35);border-radius:14px;padding:12px;display:grid;gap:8px;box-shadow:0 10px 24px #0f172a33}.onboarding-modal{position:fixed;right:24px;bottom:24px;z-index:45}.bulk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:8px 0 12px}.subject-row{display:inline-flex;align-items:center;gap:8px}.color-dot{width:12px;height:12px;border-radius:999px;border:1px solid rgba(15,23,42,.2);display:inline-block}@media(max-width:960px){.layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto;flex-direction:row;flex-wrap:wrap}.detail-backdrop{padding-left:0}.sidebar-brand-logo{width:108px}}.list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px;width:100%}.list.compact{gap:8px}.list-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;width:100%;box-sizing:border-box}.card-list{display:grid;gap:10px;margin-top:12px}.appointment-booking-panel{margin-top:12px}.card-item{border:1px solid #e2e8f0;background:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 6px 20px #0f172a0f}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card-title{display:grid;gap:4px}.card-actions{display:flex;align-items:center;gap:8px}.card-body{margin-top:10px;padding-top:10px;border-top:1px dashed #e2e8f0;display:flex;align-items:center;gap:8px}.chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.error{margin-top:12px;color:#b91c1c}.tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#e0e7ff;color:#3730a3;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:16px}.member-meta{display:flex;align-items:center;gap:10px}.panel-divider{margin:18px 0;border-top:1px solid #e2e8f0}.table-list{margin-top:14px;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;background:#fff}.relations-table,.announcements-table,.system-threads-table{overflow-x:auto}.announcements-table .table-row{min-width:1160px;grid-template-columns:minmax(220px,2fr) minmax(130px,1fr) minmax(160px,1.2fr) minmax(170px,1.2fr) minmax(170px,1.1fr) minmax(240px,1.5fr)}.announcements-table .table-row.no-action{grid-template-columns:minmax(220px,2fr) minmax(130px,1fr) minmax(160px,1.2fr) minmax(170px,1.2fr) minmax(170px,1.1fr) minmax(240px,1.5fr)}.announcements-table .table-row span{min-width:0}.announcements-table .table-row:not(.table-header) .table-right{flex-wrap:wrap;justify-content:flex-start}.system-threads-table .table-row.system-threads-row{min-width:1020px;grid-template-columns:minmax(200px,1.4fr) minmax(320px,2fr) 140px 170px 120px}.system-threads-table .table-row.system-threads-row.system-thread-unread{background:linear-gradient(90deg,#2c7be514,#2c7be505)}.system-threads-table .table-row.system-threads-row span{min-width:0}.system-thread-title-row{display:inline-flex;align-items:center;gap:10px;min-width:0}.thread-unread-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;background:#2c7be51f;color:#2458c6;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.compact-list .table-row{grid-template-columns:minmax(0,1fr) 120px}.system-thread-participants-list{max-height:320px;overflow:auto}.notice-badge.subtle{margin-top:12px}.inline-search{flex:1 1 auto;min-width:0}.system-thread-user-picker{max-height:220px;overflow:auto}.thread-message-log{display:grid;gap:12px;max-height:360px;overflow:auto;padding-right:4px}.thread-message-item{padding:14px 16px;border:1px solid var(--panel-border);border-radius:16px;background:#f8fafc}.thread-message-item p{margin:8px 0 0;white-space:pre-wrap}.thread-message-time{display:block;margin-top:4px;color:var(--text-muted);font-size:.85rem}.academic-terms-row{grid-template-columns:minmax(120px,1fr) minmax(180px,1.4fr) minmax(120px,1fr) minmax(120px,1fr) minmax(130px,1fr) minmax(220px,1.8fr)}.grading-rules-row{grid-template-columns:minmax(180px,1.2fr) minmax(220px,1.5fr) minmax(160px,1fr)}.grades-table{overflow-x:auto}.grades-table .grades-row{min-width:980px;grid-template-columns:minmax(120px,.9fr) minmax(170px,1.2fr) minmax(140px,1.1fr) minmax(220px,1.8fr) minmax(110px,.8fr) minmax(90px,.7fr) minmax(130px,1fr)}.grades-performance-list{max-height:320px;overflow:auto}.grades-performance-row{grid-template-columns:minmax(200px,1.7fr) minmax(100px,.8fr) minmax(110px,.9fr) minmax(110px,.9fr) minmax(80px,.6fr)}.grades-overview-grid{margin-top:8px}.grades-student-filters{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grades-range-switch{margin-top:10px}.grades-student-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#ef44440f,#2563eb0f)}.grades-rings{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:12px}.grade-ring-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px;display:grid;justify-items:center;gap:8px}.grade-ring{position:relative;width:80px;height:80px;display:grid;place-items:center}.grade-ring svg{position:absolute;top:0;right:0;bottom:0;left:0;width:80px;height:80px;transform:rotate(-90deg)}.grade-ring .ring-track{fill:none;stroke:#dbe4f3;stroke-width:8}.grade-ring .ring-value{fill:none;stroke:#2563eb;stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .35s ease}.grade-ring .ring-value.streak{stroke:#0ea5e9}.grade-ring .ring-value.goal{stroke:#f59e0b}.grade-ring strong{z-index:1;font-size:.85rem;color:#0f172a}.confetti-wrap{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.confetti-piece{position:absolute;top:-10%;width:8px;height:14px;border-radius:3px;opacity:0;animation:confetti-drop 1.8s ease-out forwards}@keyframes confetti-drop{0%{transform:translateY(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translateY(160px) rotate(260deg);opacity:0}}.grades-subject-card{border-left:4px solid #ef4444}.grades-sparkline{margin-top:10px;background:linear-gradient(180deg,#ef444414,#2563eb0a);border:1px solid #e2e8f0;border-radius:10px;padding:6px 8px}.grades-sparkline svg{width:100%;height:42px;display:block}.grades-sparkline polyline{fill:none;stroke:#ef4444;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.grades-distribution{margin-top:8px;display:grid;gap:8px}.distribution-row{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(120px,2fr) auto;align-items:center;gap:10px}.distribution-bar{height:10px;border-radius:999px;background:#e2e8f0;overflow:hidden}.distribution-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#ef4444)}.field-invalid{border-color:#ef4444!important;box-shadow:0 0 0 2px #ef444426}.tag.tag-success{background:#10b98126;color:#047857}.tag.tag-danger{background:#ef444426;color:#b91c1c}.multi-select{position:relative}.multi-select summary{list-style:none;cursor:pointer;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;background:#fff;color:#0f172a;min-height:40px;display:flex;align-items:center}.multi-select summary::-webkit-details-marker{display:none}.multi-select-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:8px;box-shadow:0 10px 24px #0f172a1f}.multi-select-actions{display:flex;gap:8px;padding:4px 4px 8px;border-bottom:1px solid #e2e8f0;margin-bottom:4px}.multi-select-option{display:flex;gap:8px;align-items:center;padding:6px 4px}.relations-table .table-row{min-width:760px}.relations-table .table-row span{white-space:nowrap}.table-row{display:grid;grid-template-columns:44px minmax(200px,2fr) minmax(200px,2fr) minmax(160px,1fr);gap:12px;padding:12px 16px;align-items:center;border-bottom:1px solid #e2e8f0}.table-row.no-action{grid-template-columns:minmax(200px,2fr) minmax(200px,2fr) minmax(160px,1fr)}.table-row.no-action.relations-row{grid-template-columns:minmax(200px,2fr) minmax(160px,1.5fr) minmax(200px,2fr) minmax(140px,1fr)}.table-row.no-action.groups-row{grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(110px,.8fr) minmax(160px,1fr)}.groups-row .input-compact{width:100%;min-height:38px;padding:8px 10px}.groups-row .table-right{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.table-row:last-child{border-bottom:none}.table-header{background:#f8fafc;font-weight:600;color:#475569}.table-sort{border:none;background:transparent;color:inherit;font:inherit;padding:0;text-align:left;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.table-sort.table-right{justify-content:flex-end;width:100%}.table-sort .sort-indicator{font-size:.8rem;color:#94a3b8}.table-sort.active .sort-indicator{color:#1e293b}.logo-preview{margin-top:10px;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;color:#64748b;font-size:.85rem}.logo-preview img{width:54px;height:54px;object-fit:contain;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;padding:6px}.file-field{display:grid;gap:8px;width:100%}.file-label{color:#64748b;font-size:.85rem}.file-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file-input{border:1px dashed #cbd5f5;padding:8px 10px;border-radius:10px;background:#fff;width:100%;max-width:100%;box-sizing:border-box}.documents-upload-form input,.documents-upload-form select,.documents-upload-form .multi-select summary,.documents-upload-form .file-input,.documents-upload-form textarea{min-height:44px;height:44px;box-sizing:border-box}.documents-upload-form textarea{resize:none}.documents-upload-form .file-input{padding:6px 10px}.documents-upload-form .file-input::file-selector-button{height:30px;padding:0 10px;margin-right:10px;border:1px solid #cbd5f5;border-radius:8px;background:#f8fafc;color:#0f172a;font:inherit}.documents-upload-form .file-input::-webkit-file-upload-button{height:30px;padding:0 10px;margin-right:10px;border:1px solid #cbd5f5;border-radius:8px;background:#f8fafc;color:#0f172a;font:inherit}.upload-progress-wrap{display:grid;gap:6px}.upload-progress{width:100%;height:10px}.documents-list .table-row{grid-template-columns:44px minmax(180px,1.6fr) minmax(130px,.9fr) minmax(130px,.9fr) minmax(180px,1.3fr) minmax(160px,1fr) minmax(140px,.9fr) minmax(160px,1fr)}.documents-list .table-row.no-action{grid-template-columns:minmax(180px,1.6fr) minmax(130px,.9fr) minmax(130px,.9fr) minmax(180px,1.3fr) minmax(160px,1fr) minmax(140px,.9fr) minmax(160px,1fr)}.rooms-reservations-table .rooms-reservations-row{grid-template-columns:minmax(160px,1.2fr) minmax(160px,1.1fr) minmax(220px,1.4fr) minmax(170px,1fr) minmax(220px,1.2fr)}.table-main{font-weight:600}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-sub{color:#64748b}.table-main .block{display:block;margin-top:4px}.table-right{display:inline-flex;gap:8px;align-items:center;justify-content:flex-end}.announcement-detail-body{white-space:pre-wrap;word-break:break-word}.row-action{width:34px;height:34px;border-radius:999px;border:1px solid #cbd5f5;background:#fff;color:#475569;font-size:1rem;cursor:pointer}.detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;display:grid;place-items:center;padding-left:240px;padding-right:16px;z-index:30}.detail-backdrop.modal-top{z-index:9999}.detail-modal{width:min(980px,94vw);max-height:88vh;background:#fff;padding:18px;overflow-y:auto;border-radius:18px;box-shadow:0 18px 48px #0f172a40;display:grid;gap:16px;position:relative}.detail-backdrop.modal-top .detail-modal{z-index:10000}.confirm-modal{max-width:520px}.detail-section{border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;background:#f8fafc;display:grid;gap:10px}.section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;padding:0;text-align:left;cursor:pointer}.section-toggle h4{margin:0}.section-toggle-icon{color:#64748b;font-size:.95rem;line-height:1}.section-body{display:grid;gap:10px}.detail-footer{position:sticky;bottom:0;background:#fff;padding:12px 0 4px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:8px;z-index:1}.detail-row{display:grid;grid-template-columns:minmax(120px,140px) 1fr;gap:12px;align-items:center}.journal-timeline{margin-top:18px;background:linear-gradient(180deg,#f8fafcb3,#fffffff2)}.journal-tabs{display:inline-flex;gap:8px;margin-bottom:12px}.journal-attendance-actions{margin-top:12px;display:flex;gap:8px;justify-content:flex-end}.journal-day-group{display:grid;gap:12px}.journal-day-title{font-weight:700;font-size:.92rem;letter-spacing:.01em;color:#334155;position:sticky;top:0;z-index:2;background:#f8fafc;padding:7px 10px;border-radius:8px;border:1px solid #e2e8f0}.journal-entry-card{border:1px solid #d6e3ff;border-radius:16px;background:#fff;padding:14px;display:grid;gap:10px;box-shadow:0 6px 18px #0f172a0d}.journal-entry-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.journal-entry-title-wrap{display:grid;gap:6px}.journal-chip-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.journal-entry-content{margin:0;color:#1f2937;line-height:1.45;white-space:pre-wrap}.journal-quick-row{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px;align-items:center;grid-column:1 / -1}.journal-quick-input{min-height:42px}.journal-template-row{display:grid;gap:6px;grid-column:span 2}.journal-template-buttons{display:flex;flex-wrap:wrap;gap:8px}.journal-template-buttons .ghost{min-height:34px;padding:6px 12px;font-size:.82rem;border-radius:999px}.journal-filter-form{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px 12px;margin-top:18px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafcb3}.journal-filter-actions{display:flex;align-items:flex-end;justify-content:flex-end}.journal-filter-actions .ghost{min-height:42px;min-width:110px}.journal-entry-form{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px 14px;margin-top:18px;padding:12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc99}.journal-entry-form h3{grid-column:1 / -1;margin:0}.journal-content-field{grid-column:span 2}.journal-submit-row{display:flex;justify-content:flex-end;align-items:flex-end}.journal-entry-form .checkbox{align-self:end;min-height:40px}.journal-attendance-row{grid-template-columns:minmax(220px,1.5fr) 130px minmax(220px,1.4fr)}.journal-submit-row button{min-height:42px;min-width:140px}.journal-template-active{background:linear-gradient(135deg,#1d4ed8,#2563eb)!important;color:#fff!important;border-color:#1d4ed8!important;box-shadow:0 6px 18px #2563eb40}.journal-entry-form .detail-label,.journal-filter-form .detail-label{font-size:.8rem;letter-spacing:.01em;margin-bottom:0}.journal-entry-form .field,.journal-filter-form .field{gap:3px}@media(max-width:1100px){.journal-content-field,.journal-template-row{grid-column:1 / -1}}@media(max-width:760px){.journal-quick-row{grid-template-columns:1fr}.journal-filter-actions{justify-content:stretch}.journal-filter-actions .ghost,.journal-submit-row button{width:100%}.journal-submit-row{justify-content:stretch}}.tag.journal-type-note{background:#94a3b833;color:#334155}.tag.journal-type-incident{background:#ef44442e;color:#b91c1c}.tag.journal-type-progress{background:#10b98133;color:#047857}.tag.journal-type-attendance{background:#0e749033;color:#155e75}.tag.journal-type-feedback{background:#7c3aed33;color:#6d28d9}.detail-label{color:#64748b;font-size:.85rem}.field{display:grid;gap:6px}.role-pills{display:flex;flex-wrap:wrap;gap:8px}.role-pill{border:1px solid #cbd5f5;background:#fff;color:#334155;padding:6px 12px;border-radius:999px;cursor:pointer;font-size:.78rem}.role-pill.active{background:#1e293b;color:#fff;border-color:#1e293b}.notice-badge{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 10px;border-radius:999px;background:#dcfce7;color:#166534;font-size:.78rem;font-weight:600}.overview[data-v-7eb93748]{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.overview .stat-card[data-v-7eb93748]{width:100%}@media(min-width:1240px){.overview[data-v-7eb93748]{grid-template-columns:repeat(2,minmax(0,1fr))}.overview .stat-card[data-v-7eb93748]{grid-column:1 / -1}.overview .stat-card.weekly-appointments-card[data-v-7eb93748],.overview .stat-card.weekly-room-reservations-card[data-v-7eb93748]{grid-column:auto}}.absence-report-card[data-v-7eb93748]{grid-column:1 / -1}.report-filter[data-v-7eb93748],.dashboard-parent-switch[data-v-7eb93748]{margin-top:10px;margin-bottom:8px}.absence-reports-table .report-row[data-v-7eb93748]{min-width:980px;grid-template-columns:44px minmax(180px,1.1fr) minmax(220px,1.4fr) minmax(180px,1.1fr) minmax(120px,.8fr) minmax(180px,1fr)}.absence-reports-table[data-v-7eb93748]{overflow-x:auto;overflow-y:hidden}.absence-note-wrap[data-v-7eb93748]{display:grid;gap:8px;width:100%}.detail-note-current[data-v-7eb93748]{min-height:40px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#334155;white-space:pre-wrap}.status-control-wrap[data-v-7eb93748]{grid-template-columns:minmax(0,1fr) auto;align-items:center}.detail-status-select[data-v-7eb93748]{width:100%;min-height:42px;border:1px solid #b6c8f7;border-radius:10px;background:#f8fbff;color:#1e293b;font-weight:600;padding:0 12px}.detail-status-save-btn[data-v-7eb93748]{min-height:42px;padding:0 14px;white-space:nowrap}@media(max-width:720px){.status-control-wrap[data-v-7eb93748]{grid-template-columns:minmax(0,1fr)}}.appointment-week-list[data-v-7eb93748]{margin-top:10px;display:grid;gap:8px}.appointment-week-item[data-v-7eb93748]{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:8px 10px}.mini-kpi-row[data-v-7eb93748]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.audit-list[data-v-7eb93748]{display:grid;gap:8px}.audit-item[data-v-7eb93748]{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:8px 10px}.status-pill.success[data-v-7eb93748]{background:#22c55e2e;color:#166534}.status-pill.warn[data-v-7eb93748]{background:#f59e0b29;color:#92400e}.status-pill.info[data-v-7eb93748]{background:#3b82f624;color:#1d4ed8}.status-pill.done[data-v-7eb93748]{background:#64748b29;color:#334155}.status-pill.danger[data-v-7eb93748]{background:#ef44442e;color:#b91c1c}.filter-field[data-v-c40a1757]{display:grid;gap:4px}.filter-label[data-v-c40a1757]{color:#64748b;font-size:.78rem;font-weight:600}.metadata-form[data-v-c40a1757]{align-items:start}.metadata-form>input[data-v-c40a1757]{min-height:40px;height:40px}.field-error[data-v-c40a1757]{border-color:#dc2626!important;box-shadow:inset 0 0 0 1px #dc26262e}.field-error-text[data-v-c40a1757]{grid-column:1 / -1;margin-top:-.35rem;color:#b91c1c;font-size:.8rem}.users-list-row[data-v-3b2700e5]{grid-template-columns:44px minmax(170px,1.15fr) minmax(190px,1.15fr) minmax(110px,.7fr) minmax(150px,1fr) minmax(130px,.85fr) minmax(140px,.85fr)}.field-error[data-v-3b2700e5]{border-color:#dc2626!important;box-shadow:inset 0 0 0 1px #dc26262e}.profile-field[data-v-3b2700e5]{display:flex;flex-direction:column;gap:.35rem}.profile-field label[data-v-3b2700e5]{font-size:.82rem;font-weight:700;color:#52607a}.app-role-label[data-v-3b2700e5]{display:inline-flex;align-items:center;gap:8px}.info-inline[data-v-3b2700e5]{width:22px;height:22px;border-radius:999px;border:1px solid #cbd5e1;background:#f8fafc;color:#475569;font-weight:700;line-height:1;padding:0;cursor:pointer}.list-item-actions[data-v-653b2705]{display:inline-flex;align-items:center;gap:8px}.icon-btn[data-v-653b2705]{min-width:32px;min-height:26px;padding:2px 8px;font-weight:700;font-size:1.2rem;line-height:1.1;border-width:1.5px;background:#fffffff0;box-shadow:0 1px 3px #0f172a47;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.icon-btn.cancel[data-v-653b2705]{border-color:#b91c1c;color:#b91c1c}.icon-btn.cancel[data-v-653b2705]:hover{background:#fff}.icon-btn.reactivate[data-v-653b2705]{border-color:#0f766e;color:#0f766e}.icon-btn.reactivate[data-v-653b2705]:hover{background:#fff}.list-item-cancelled[data-v-653b2705]{opacity:.72}.list-item-main.clickable[data-v-653b2705]{cursor:pointer}.past-entries-section[data-v-653b2705]{border-top:1px solid #e2e8f0;padding-top:8px}.past-entries-toggle[data-v-653b2705]{display:inline-flex;align-items:center;gap:8px}.entry-status-cancelled[data-v-653b2705],.grid-item-status[data-v-653b2705]{font-size:.72rem;font-weight:700;color:#0f172acc}.grid-item-top-actions[data-v-653b2705]{display:inline-flex;justify-content:flex-end;align-items:center;gap:6px;position:absolute;top:4px;right:6px;left:auto;margin:0;min-height:0;z-index:3}.week-grid-item .icon-btn[data-v-653b2705]{min-width:24px;min-height:22px;padding:1px 5px;font-size:.92rem;line-height:1;margin:0}.grid-item-status.top[data-v-653b2705]{display:inline-flex;align-items:center;padding:1px 6px;border-radius:999px;background:#ffffffe0;border:1px solid rgba(185,28,28,.45);color:#991b1b;font-size:.62rem;line-height:1}.week-grid-item.is-cancelled[data-v-653b2705]{opacity:.72;border-style:dashed}.week-grid-item.is-cancelled .grid-title[data-v-653b2705],.week-grid-item.is-cancelled>span[data-v-653b2705]:first-of-type{text-decoration:line-through}.week-grid-item[data-v-653b2705]{cursor:pointer;overflow:hidden;padding-top:8px;padding-right:40px;display:flex;flex-direction:column;justify-content:flex-start;gap:2px}.grid-title[data-v-653b2705]{display:block;margin:0;line-height:1.1;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-grid-item>span[data-v-653b2705]:first-of-type{display:block;line-height:1.1;font-size:.8rem}.week-grid-zoom[data-v-653b2705]{display:inline-flex;align-items:center;gap:6px}.week-zoom-btn[data-v-653b2705]{min-width:38px;padding-inline:8px}.week-grid-cell[data-v-653b2705]{min-height:var(--row-height, var(--slot-height));height:var(--row-height, var(--slot-height))}.week-grid-body[data-v-653b2705]{position:relative}.week-empty-hint[data-v-653b2705]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;color:#64748b;font-weight:600;z-index:2;text-align:center}.week-grid-day.today[data-v-653b2705]{color:#1e3a8a;font-weight:700;background:linear-gradient(180deg,#3b82f629,#3b82f612);border:1px solid rgba(59,130,246,.35);border-radius:10px;padding:6px 8px}.week-grid-cell.today-column[data-v-653b2705]{background:#3b82f60f;border-color:#3b82f62e}.entry-dialog-card[data-v-653b2705]{width:min(820px,96vw);max-width:96vw}.entry-dialog-card .form[data-v-653b2705]{grid-template-columns:repeat(2,minmax(230px,1fr))}.entry-dialog-card .field-group[data-v-653b2705]{display:flex;flex-direction:column;gap:6px}.entry-dialog-card .field-group>label[data-v-653b2705]{font-size:.8rem;font-weight:600;color:#334155}.entry-dialog-card .field-group-checkbox[data-v-653b2705]{justify-content:flex-end}.entry-dialog-card .actions[data-v-653b2705]{width:100%}.entry-dialog-card .action-spacer[data-v-653b2705]{flex:1 1 auto}.entry-dialog-card .danger[data-v-653b2705]{border:1px solid #ef4444;background:#ef444424;color:#b91c1c;padding:8px 14px;border-radius:10px;cursor:pointer}.entry-dialog-card .danger[data-v-653b2705]:hover{background:#ef44443d}@media(max-width:760px){.entry-dialog-card .form[data-v-653b2705]{grid-template-columns:1fr}}.week-grid-cell[data-v-71eb244d]{min-height:48px;height:48px}.week-grid-item[data-v-71eb244d]{overflow:hidden}.week-grid-item>span[data-v-71eb244d]{font-size:.72rem;line-height:1.15;white-space:nowrap}.absences-table[data-v-7963c940]{overflow-x:auto}.absences-table .absences-row[data-v-7963c940]{min-width:1180px;grid-template-columns:44px minmax(150px,1fr) minmax(180px,1.1fr) minmax(220px,1.4fr) minmax(180px,1.1fr) minmax(220px,1.6fr) minmax(180px,1fr) minmax(260px,1.4fr)}.absences-table .table-right[data-v-7963c940]{display:flex;flex-wrap:nowrap;gap:8px;justify-content:flex-end;align-items:center}.row-action-menu[data-v-7963c940]{position:relative}.row-action-trigger[data-v-7963c940]{list-style:none;min-width:120px}.row-action-trigger[data-v-7963c940]::-webkit-details-marker{display:none}.row-action-menu-list[data-v-7963c940]{position:absolute;bottom:calc(100% + 6px);right:0;z-index:30;min-width:210px;display:grid;gap:6px;padding:8px;border-radius:12px;border:1px solid #dbe3f3;background:#fff;box-shadow:0 10px 24px #0f172a1f}.row-action-menu-list .ghost[data-v-7963c940]{width:100%;justify-content:center}.absence-note-wrap[data-v-7963c940]{display:grid;gap:8px;width:100%}.detail-note-current[data-v-7963c940]{min-height:40px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#334155;white-space:pre-wrap}.audit-list[data-v-7963c940]{display:grid;gap:8px}.audit-item[data-v-7963c940]{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:8px 10px}.tag.warning[data-v-7963c940]{margin-left:.4rem;color:#92400e;background:#ffedd5;border:1px solid #fdba74}.status-pill.success[data-v-7963c940]{background:#22c55e2e;color:#166534}.status-pill.warn[data-v-7963c940]{background:#f59e0b29;color:#92400e}.status-pill.info[data-v-7963c940]{background:#3b82f624;color:#1d4ed8}.status-pill.done[data-v-7963c940]{background:#64748b29;color:#334155}.status-pill.danger[data-v-7963c940]{background:#ef44442e;color:#b91c1c}.smtp-actions[data-v-23981166]{align-items:center;gap:10px}.smtp-feedback[data-v-23981166]{min-height:30px;min-width:300px;display:flex;align-items:center}.premium-banner[data-v-2c30e208]{margin:20px auto 4px;max-width:720px;padding:16px 18px;border-radius:12px;border:1px solid #f59e0b;background:linear-gradient(180deg,#f59e0b1f,#f59e0b0f);text-align:center}.premium-banner strong[data-v-2c30e208]{display:block;font-size:1.2rem;color:#92400e;margin-bottom:6px}.premium-banner p[data-v-2c30e208]{margin:0;color:#78350f;font-weight:600}.cashbook-summary-row[data-v-86753bc6]{gap:10px}.cashbook-metric[data-v-86753bc6]{margin-top:0;min-height:44px;padding:10px 14px;border-radius:12px;font-size:.86rem;font-weight:700;display:inline-flex;align-items:center}.cashbook-metric-income[data-v-86753bc6]{background:#dcfce7;color:#166534}.cashbook-metric-expense[data-v-86753bc6]{background:#ffedd5;color:#9a3412}.cashbook-metric-balance[data-v-86753bc6]{background:#dbeafe;color:#1e3a8a}.cashbook-metric-negative[data-v-86753bc6]{background:#fee2e2;color:#991b1b}.cashbook-row[data-v-86753bc6]{grid-template-columns:minmax(110px,.9fr) minmax(110px,.8fr) minmax(220px,1.6fr) minmax(130px,.9fr) minmax(130px,.9fr) minmax(140px,1fr)}.cashbook-audit-row[data-v-86753bc6]{grid-template-columns:minmax(170px,1fr) minmax(220px,1.5fr) minmax(180px,1fr)}.cashbook-row.cancelled[data-v-86753bc6]{background:#f8fafc}.cashbook-row .strike[data-v-86753bc6]{text-decoration:line-through;color:#94a3b8}.cashbook-audit-card[data-v-86753bc6]{margin-top:18px}.detail-section+.detail-section[data-v-66be5b34]{margin-top:16px}.contributions-form .field[data-v-66be5b34]{min-width:0}.contributions-form-btn[data-v-66be5b34]{width:auto;min-width:180px;justify-self:end}.contributions-reminder-form[data-v-66be5b34]{grid-template-columns:minmax(320px,2fr) minmax(220px,1fr) auto;align-items:end}.contributions-reminder-form .field select[data-v-66be5b34]{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contributions-reminder-only-overdue[data-v-66be5b34]{min-height:40px;align-self:end}.contributions-reminder-feedback[data-v-66be5b34]{min-height:40px;display:inline-flex;align-items:center}.contributions-donation-form[data-v-66be5b34]{grid-template-columns:minmax(220px,1fr) minmax(160px,.6fr) auto;align-items:end}.contributions-donation-actions[data-v-66be5b34]{justify-content:flex-end;gap:10px;flex-wrap:nowrap}.contributions-donation-actions .contributions-form-btn[data-v-66be5b34]{min-width:190px}.contributions-plan-row[data-v-66be5b34]{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr) minmax(120px,.7fr) minmax(280px,1.1fr)}.contributions-overdue-row[data-v-66be5b34]{grid-template-columns:minmax(220px,1.4fr) minmax(160px,.7fr) minmax(160px,.8fr) minmax(280px,1.1fr)}.contributions-overdue-row .table-right[data-v-66be5b34]{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.contributions-overdue-row .contribution-inline-feedback[data-v-66be5b34]{grid-column:auto;min-width:180px;justify-self:auto;text-align:right}.contributions-charge-row[data-v-66be5b34]{grid-template-columns:minmax(120px,.7fr) minmax(180px,1fr) minmax(180px,1fr) minmax(120px,.6fr) minmax(130px,.5fr) minmax(420px,1.3fr);min-width:1240px}.contributions-charges-table[data-v-66be5b34]{overflow-x:auto}.contributions-charge-row .table-right[data-v-66be5b34]{display:grid;grid-template-columns:158px 96px 144px;grid-auto-rows:40px;gap:8px;align-items:center;justify-content:end}.contribution-status-select[data-v-66be5b34]{width:158px;min-height:40px;padding:8px 36px 8px 12px;border:1px solid #cbd5f5;border-radius:10px;background-color:#f8fafc;color:#334155;font-size:.92rem;font-weight:600;line-height:1.2;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;transition:border-color .2s ease,box-shadow .2s ease}.contribution-status-select[data-v-66be5b34]:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px #3b82f633}.contribution-status-select[data-v-66be5b34]:disabled{opacity:.65;cursor:not-allowed}.contribution-action-btn[data-v-66be5b34]{width:100%;min-height:40px;display:inline-flex;align-items:center;justify-content:center;text-align:center}.contribution-action-save[data-v-66be5b34]{min-width:96px}.contribution-action-placeholder[data-v-66be5b34]{min-height:40px;min-width:1px}.inline-feedback[data-v-66be5b34]{color:#166534;font-size:.8rem;font-weight:600}.inline-feedback-slot[data-v-66be5b34]{min-width:220px}.contribution-inline-feedback[data-v-66be5b34]{grid-column:1 / -1;min-width:220px;justify-self:end;text-align:right}.tag.success[data-v-66be5b34]{background:#d1fae5;color:#065f46}.tag.warn[data-v-66be5b34]{background:#fef3c7;color:#92400e}.tag.info[data-v-66be5b34]{background:#dbeafe;color:#1e3a8a}.tag.danger[data-v-66be5b34]{background:#fee2e2;color:#991b1b}.tag.muted[data-v-66be5b34]{background:#e5e7eb;color:#374151}@media(max-width:1100px){.contributions-reminder-form[data-v-66be5b34],.contributions-donation-form[data-v-66be5b34]{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:center}.contributions-donation-actions[data-v-66be5b34]{justify-content:stretch;flex-wrap:wrap}.contributions-form-btn[data-v-66be5b34]{width:100%;min-width:0;justify-self:stretch}}
