:root{--background:#f8f5ef;--card:#fffdf8;--ink:#33251f;--muted:#776c61;--border:#e5dccf;--primary:#6e2d2e;--primary-dark:#4f1f20;--gold:#7b6f57;--sidebar:#fff;--shadow:0 14px 40px rgba(50,37,31,0.06)}*{box-sizing:border-box}html{font-size:16px}body,html{background:var(--background)}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,select,summary{cursor:pointer}img{max-width:100%}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.15;margin-bottom:0}h2{font-size:20px;line-height:1.25}h3{font-size:16px}.app-shell{display:grid;grid-template-columns:278px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:22px;height:100vh;overflow-y:auto;padding:22px 18px;position:sticky;top:0}.brand,.main-panel{min-width:0}.brand{align-items:center;display:flex;gap:12px;font-weight:800}.brand img{height:52px;width:52px;flex:0 0 auto;object-fit:contain}.brand span{display:grid;line-height:1.2;min-width:0}.brand small{color:var(--muted);font-size:12px;font-weight:700}.brand.compact img{height:44px;width:44px}.sidebar-nav{display:grid;gap:7px}.mobile-nav a,.sidebar-nav a{align-items:center;border-radius:12px;color:var(--ink);display:flex;gap:10px;font-size:14px;font-weight:800;min-height:42px;padding:10px 12px}.mobile-nav a:focus,.mobile-nav a:hover,.sidebar-nav a:focus,.sidebar-nav a:hover{background:#efe8dd;color:var(--primary);outline:none}.nav-mark{align-items:center;color:var(--primary);display:inline-flex;flex:0 0 24px;height:24px;justify-content:center}.nav-mark svg{height:18px;width:18px}.sidebar-footer{border-top:1px solid var(--border);display:grid;gap:10px;margin-top:auto;padding-top:16px}.version-badge{background:#efe8dd;border:1px solid var(--border);border-radius:10px;color:var(--primary);display:inline-flex;font-size:12px;font-weight:900;justify-content:center;padding:7px 10px;width:fit-content}.copyright{color:var(--muted);font-size:11px;margin:0}.login-copyright{margin-top:22px;text-align:center}.mobile-topbar{align-items:center;background:#fff;border-bottom:1px solid var(--border);display:none;gap:12px;justify-content:space-between;padding:12px 16px;position:sticky;top:0;z-index:20}.mobile-menu{position:relative}.mobile-menu summary{background:var(--primary);border-radius:10px;color:#fff;font-weight:800;list-style:none;padding:10px 14px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-nav{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);display:grid;gap:4px;max-height:calc(100vh - 86px);min-width:240px;overflow-y:auto;padding:10px;position:absolute;right:0;top:calc(100% + 10px);z-index:30}.container{margin:0 auto;max-width:1320px;padding:30px;width:100%}.hero{align-items:center;display:grid;gap:28px;grid-template-columns:minmax(0,1fr) 260px}.login-screen{align-items:center;background:radial-gradient(circle at top left,rgba(123,111,87,.18),transparent 30%),radial-gradient(circle at bottom right,rgba(110,45,46,.16),transparent 34%),var(--background);display:flex;justify-content:center;min-height:100vh;padding:28px}.login-card{max-width:460px;text-align:center;width:100%}.login-logo{background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);margin:0 auto 18px;padding:14px;width:fit-content}.login-card form{text-align:left}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);min-width:0;overflow-x:auto;padding:22px}.grid{display:grid;gap:18px;min-width:0}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.field{display:grid;gap:7px;min-width:0}.field label,.field>span{color:var(--muted);font-size:13px;font-weight:800}.field input,.field select,.field textarea{background:#fff;border:1px solid var(--border);border-radius:10px;color:var(--ink);min-height:43px;padding:10px 12px;width:100%}.field textarea{min-height:86px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(110,45,46,.12);outline:none}.inline-editor{background:#fffaf2;border:1px solid var(--border);border-radius:14px;min-width:0;padding:14px}.checkbox-field{align-items:center;color:var(--muted);display:flex;font-size:13px;font-weight:800;gap:8px}.checkbox-field input{width:auto}.section-title{align-items:flex-end;display:flex;gap:12px;justify-content:space-between;margin:26px 0 16px}.section-title>*{min-width:0}.table{border-collapse:collapse;min-width:760px;width:100%}.compact-table{min-width:560px}.table td,.table th{border-bottom:1px solid var(--border);padding:12px;text-align:left;vertical-align:top}.table th{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.table td{font-size:14px}.interactive-table .clickable-row{cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.interactive-table .clickable-row:focus,.interactive-table .clickable-row:hover{background:#f4ece0;box-shadow:inset 4px 0 0 var(--primary);outline:none}.table-action{background:#efe8dd;border-radius:10px;color:var(--primary);display:inline-flex;font-size:13px;font-weight:800;padding:7px 10px}.danger-text{border:0;color:#9b1c1c}.bulk-editor{align-items:end;background:#fff8e7;border:1px solid #e5c56f;border-radius:10px;display:grid;gap:12px;grid-template-columns:minmax(150px,auto) minmax(0,1fr);margin-bottom:14px;padding:14px}.bulk-editor>div:first-child{display:grid;gap:3px}.bulk-controls{align-items:center;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(120px,1fr)) auto}.bulk-controls input,.bulk-controls select{background:#fff;border:1px solid var(--border);border-radius:10px;min-height:40px;min-width:0;padding:8px 10px;width:100%}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tag-item{background:#efe8dd;border:1px solid var(--border);border-radius:10px;font-size:13px;font-weight:800;gap:7px;padding:6px 8px 6px 10px}.icon-button,.tag-item{align-items:center;display:inline-flex}.icon-button{background:transparent;border:0;border-radius:6px;color:#9b1c1c;font-weight:900;height:24px;justify-content:center;padding:0;width:24px}.icon-button:focus,.icon-button:hover{background:#fff;outline:1px solid var(--border)}.budget-metrics>div{background:#fff8e7;border:1px solid var(--border);border-radius:10px;display:grid;gap:3px;padding:12px}.budget-metrics strong{color:var(--primary);font-size:20px}.budget-metrics small{color:var(--muted)}.directory-grid{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.expense-directory,.staff-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.person-card{background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(50,37,31,.05);display:grid;gap:15px;min-width:0;padding:18px}.person-card-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.person-card-header h2{font-size:17px;margin-bottom:7px}.badge-row,.class-tags,.person-card-actions{display:flex;flex-wrap:wrap;gap:7px}.attachment-links{display:flex;flex-wrap:wrap;gap:8px}.attachment-links a{background:#f4f0e9;border:1px solid var(--border);border-radius:6px;color:var(--primary);font-size:12px;font-weight:800;max-width:100%;overflow-wrap:anywhere;padding:7px 9px}.reminder-template-field{margin-top:14px}.table tfoot th{background:#f4f0e9;border-top:2px solid var(--border);color:var(--primary)}.class-tags span,.status-badge{background:#efe8dd;border:1px solid var(--border);border-radius:7px;color:var(--primary);display:inline-flex;font-size:11px;font-weight:900;padding:4px 7px}.status-badge.success{background:#e8f5ec;border-color:#bad9c4;color:#237a43}.status-badge.neutral{background:#f1efec;color:var(--muted)}.person-amount{color:var(--primary);flex:0 0 auto;font-size:14px;text-align:right}.person-details{display:grid;gap:10px 18px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.person-details .wide{grid-column:1/-1}.person-details dt{color:var(--muted);font-size:11px;font-weight:800}.person-details dd{font-size:13px;font-weight:700;margin:2px 0 0;overflow-wrap:anywhere}.person-notes{background:#fff8e7;border-left:3px solid #e5c56f;color:var(--muted);font-size:12px;margin:0;padding:8px 10px}.person-card-actions{border-top:1px solid var(--border);padding-top:13px}.compact-button{font-size:12px;min-height:34px;padding:7px 11px}.compact-copy{font-size:12px;margin:0}.modal-backdrop{align-items:center;background:rgba(35,27,23,.58);display:flex;inset:0;justify-content:center;padding:22px;position:fixed;z-index:200}.modal-panel{background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 24px 70px rgba(35,27,23,.28);max-height:calc(100vh - 44px);max-width:940px;overflow:hidden;width:100%}.modal-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:17px 20px}.modal-header h2{font-size:19px;margin:0}.modal-close{background:#efe8dd;color:var(--primary);flex:0 0 32px;height:32px;width:32px}.modal-content{max-height:calc(100vh - 112px);overflow-y:auto;padding:20px}.modal-actions{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:9px;padding-top:15px}.modal-actions .danger{margin-left:auto}.salary-summary{align-items:center;background:#fff8e7;border:1px solid #e5c56f;border-radius:8px;display:flex;justify-content:space-between;padding:13px}.salary-summary span{color:var(--muted);font-size:13px;font-weight:800}.metric,.salary-summary strong{color:var(--primary)}.metric{font-size:30px;font-weight:900;letter-spacing:0;line-height:1.1;overflow-wrap:anywhere}.dashboard-insights{margin-top:22px}.release-list{display:grid;gap:16px}.release-card{overflow-x:visible}.release-heading{align-items:flex-start;display:flex;gap:14px;justify-content:space-between}.version-pill{background:var(--primary);border-radius:10px;color:#fff;flex:0 0 auto;font-size:13px;font-weight:900;padding:7px 11px}.feature-list{color:var(--ink);display:grid;gap:8px;margin:14px 0 0;padding-left:20px}.alert-panel{background:#fff8e7;border:1px solid #e5c56f;border-radius:14px;color:var(--ink);padding:16px}.export-columns{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.print-only{display:none}.report-filter-summary{border-bottom:1px solid var(--border);font-size:11px;margin-bottom:12px;padding-bottom:10px}.report-filter-summary p{margin:2px 0 8px}.checkbox-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.print-page{background:#e9e1d5;min-height:100vh;padding:24px}.print-actions{margin:0 auto 16px;max-width:900px}.print-sheet{background:#fff;border:1px solid #d8d0c4;margin:0 auto;max-width:900px;padding:34px}.print-header,.signature-row{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.print-meta{display:grid;gap:6px;text-align:right}.print-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin:24px 0}.print-field{border:1px solid #d8d0c4;border-radius:8px;display:grid;gap:5px;min-height:70px;padding:10px}.print-field span{color:var(--muted);font-size:12px;font-weight:800}.print-field.wide{grid-column:1/-1}.print-table{border-collapse:collapse;width:100%}.print-table td,.print-table th{border:1px solid #d8d0c4;padding:10px;text-align:left}.signature-row{margin-top:54px}.signature-row span{border-top:1px solid var(--ink);min-width:220px;padding-top:8px}.muted{color:var(--muted)}.actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.button,.link-button,.nav a{align-items:center;background:var(--primary);border:0;border-radius:10px;color:#fff;display:inline-flex;font-weight:800;justify-content:center;min-height:40px;padding:10px 15px;text-align:center}.button.secondary,.link-button.secondary{background:#efe8dd;color:var(--primary)}.button.danger,.link-button.danger{background:#9b1c1c;color:#fff}.app-toast{align-items:flex-start;background:#fff;border:1px solid var(--border);border-left:4px solid #237a43;border-radius:10px;bottom:22px;box-shadow:0 14px 44px rgba(50,37,31,.18);display:flex;gap:10px;max-width:min(430px,calc(100vw - 32px));padding:13px 14px;position:fixed;right:22px;z-index:100}.app-toast.error{border-left-color:#9b1c1c}.app-toast .toast-symbol{align-items:center;background:#e8f5ec;border-radius:50%;color:#237a43;display:inline-flex;flex:0 0 22px;font-size:13px;font-weight:900;height:22px;justify-content:center}.app-toast.error .toast-symbol{background:#fdeaea;color:#9b1c1c}.app-toast button{background:transparent;border:0;color:var(--muted);font-size:22px;line-height:1;margin-left:auto;min-height:24px;padding:0 2px}.route-loading,.task-loading{align-items:center;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);display:flex;font-size:14px;font-weight:800;gap:10px;left:50%;padding:10px 14px;position:fixed;top:18px;transform:translateX(-50%);z-index:110}.loading-spinner{animation:loading-spin .75s linear infinite;border-radius:50%;border:2px solid #e5dccf;border-top:2px solid var(--primary);display:inline-block;height:18px;width:18px}@keyframes loading-spin{to{transform:rotate(1turn)}}.view-only-banner{background:#fff8e7;border:1px solid #e5c56f;border-radius:10px;color:#5f4d20;font-size:13px;font-weight:800;margin-bottom:16px;padding:10px 13px}.permission-editor{border:1px solid var(--border);border-radius:10px;margin:0;min-width:0;padding:14px}.permission-editor legend{color:var(--ink);font-size:14px;font-weight:900;padding:0 6px}.permission-grid{display:grid;gap:9px 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.permission-row{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 130px}.permission-row label{color:var(--muted);font-size:13px;font-weight:800}.permission-row select{background:#fff;border:1px solid var(--border);border-radius:9px;min-height:38px;padding:7px 9px;width:100%}@media (max-width:720px){.app-toast{bottom:16px;left:16px;right:16px}.permission-grid{grid-template-columns:1fr}.permission-row{grid-template-columns:minmax(0,1fr) 120px}}.button:focus,.button:hover,.link-button:focus,.link-button:hover{box-shadow:0 0 0 3px rgba(110,45,46,.16);outline:none}.receipt{background:#fff;margin:0 auto;max-width:760px}@media (max-width:1120px){.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-editor{grid-template-columns:1fr}.bulk-controls{grid-template-columns:repeat(2,minmax(140px,1fr))}.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.app-shell{display:block}.sidebar{display:none}.mobile-topbar{display:flex}.container{padding:18px}.grid.four,.grid.three,.grid.two,.hero{grid-template-columns:1fr}.section-title{align-items:stretch;flex-direction:column}.section-title .actions{margin-top:0}.bulk-controls,.directory-grid,.expense-directory,.staff-directory{grid-template-columns:1fr}}@media (max-width:560px){html{font-size:15px}h1{font-size:24px}h2{font-size:18px}.card{border-radius:12px;padding:16px}.container{padding:14px}.actions,.actions .button,.actions .link-button,.button,.link-button{width:100%}.mobile-nav{max-width:calc(100vw - 28px);min-width:min(280px,calc(100vw - 28px))}.checkbox-grid,.print-grid{grid-template-columns:1fr}.table{min-width:680px}.modal-backdrop{align-items:flex-end;padding:10px}.modal-panel{max-height:calc(100vh - 20px)}.modal-content{max-height:calc(100vh - 82px);padding:16px}.modal-header{padding:14px 16px}.modal-actions .button,.modal-actions .danger{margin-left:0;width:100%}.person-card-header{align-items:stretch;flex-direction:column}.person-amount{text-align:left}}@media print{@page{margin:10mm;size:landscape}.mobile-topbar,.no-print,.sidebar{display:none}.app-shell,.print-only{display:block}.print-page,body{background:#fff}.print-page{padding:0}.print-sheet{border:0;box-shadow:none}.container,.print-sheet{max-width:none;padding:0}.report-print-area{border:0;box-shadow:none;overflow:visible;padding:0}.report-print-area .table{font-size:9px;min-width:0}.report-print-area .table td,.report-print-area .table th{padding:4px}}