*{box-sizing:border-box}body{margin:0;background:#f4f7fc;color:#17253b;font:14px/1.5 Inter,Segoe UI,Arial,sans-serif}.topbar{min-height:72px;background:#fff;border-bottom:1px solid #e3eaf3;padding:12px max(20px,calc((100% - 1320px)/2));display:flex;justify-content:space-between;align-items:center;gap:22px;flex-wrap:wrap}.brand{display:flex;gap:10px;align-items:center;color:#123d75;text-decoration:none;font-size:18px;font-weight:800;white-space:nowrap}.brand small{display:block;font-size:10px;letter-spacing:2px;color:#6b83a4;text-transform:uppercase}.logo{display:grid;place-items:center;background:#155bb5;color:#fff;width:40px;height:40px;border-radius:12px;font-weight:800;font-size:21px;box-shadow:0 5px 12px #155bb52a}.logo.big{width:52px;height:52px;font-size:27px;margin-bottom:15px}.topbar nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.topbar nav a{color:#4b5f79;text-decoration:none;font-size:13px;font-weight:600}.topbar nav a:hover,.text-link,a{color:#1766bb}.container{max-width:1320px;margin:28px auto;padding:0 20px;min-height:76vh}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}.page-heading h1{font-size:30px;line-height:1.2;margin:3px 0 7px;letter-spacing:-.6px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#4b80c1;font-weight:800}.muted{color:#7b8ba1}.small{font-size:12px}h2{font-size:18px;margin:0 0 16px;color:#203651}p{margin:7px 0}.panel{background:#fff;border:1px solid #e3eaf3;border-radius:15px;padding:23px;margin:18px 0;box-shadow:0 5px 20px #1b3c6507}.narrow{max-width:460px;margin:60px auto}.login{text-align:left}.login .logo{margin:auto auto 16px}.login .eyebrow,.login h1,.login>p{text-align:center}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{background:#fff;border:1px solid #e2eaf4;border-radius:14px;padding:20px;min-width:0;box-shadow:0 4px 16px #1d416807}.stat-top{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#667a94;font-size:13px}.stat strong{font-size:32px;display:block;letter-spacing:-.7px;color:#173d70;margin:9px 0}.stat a{font-size:12px;text-decoration:none}.stat-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#edf4ff;color:#2267b5;font-size:17px}.money-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:18px 0}.money-cards>div{padding:18px 20px;background:#fff;border:1px solid #e2eaf4;border-radius:13px;display:flex;flex-direction:column;gap:7px}.money-cards span{font-size:12px;color:#71829a}.money-cards strong{font-size:23px;color:#1d416e}.money-cards.compact{margin:20px 0}.green,.positive{color:#14805e!important}.orange,.warning-text{color:#b66a12!important}.columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:18px}.columns .panel{min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.section-heading h2{margin:0}.section-heading a,.text-link{font-size:12px;text-decoration:none;font-weight:700}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.button,button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:#1766bb;color:#fff;padding:10px 15px;font:inherit;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}.button:hover,button:hover{filter:brightness(.96);color:#fff}.secondary{background:#edf3fb;color:#315779}.full{width:100%;margin-top:5px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid label,form>label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#40536d}.form-grid .wide{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #d4deeb;background:#fff;color:#20324a;border-radius:8px;padding:10px 11px;font:inherit;font-size:13px;min-width:0}input:focus,select:focus,textarea:focus{outline:3px solid #d9eaff;border-color:#6b9ed9}.form-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;align-self:end}.check{display:flex!important;flex-direction:row!important;align-items:center}.check input{width:auto}.search{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.search input{min-width:190px}.search select{min-width:135px}.search-input{max-width:230px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #eaf0f6;vertical-align:top}th{color:#71819a;background:#f8fafd;font-size:10px;text-transform:uppercase;letter-spacing:.5px;font-weight:800;white-space:nowrap}tbody tr:hover{background:#fbfdff}tr:last-child td{border-bottom:0}.table-wrap{overflow-x:auto}.pill,.count{display:inline-block;background:#eaf2ff;color:#235f9f;border-radius:20px;padding:4px 9px;font-size:11px;font-weight:700;white-space:nowrap}.count{padding:3px 7px}.actions form{display:inline}.link{padding:0;background:none;color:#1766bb;font-size:12px;font-weight:600}.link:hover{background:none}.link.danger{color:#c0392b}.error,.notice{border-radius:9px;padding:12px 15px;background:#fff0f0;color:#a32a2a;margin:12px 0}.notice{background:#fff7df;color:#785c11}.empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#71819a;gap:8px}.empty strong{color:#304762}.empty p{font-size:12px}.upcoming{display:flex;flex-direction:column}.up-item{display:flex;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #edf1f6}.up-item:last-child{border-bottom:0}.date-tile{width:46px;min-width:46px;border-radius:10px;background:#edf4ff;color:#235e9d;text-align:center;padding:7px 4px;display:flex;flex-direction:column}.date-tile b{font-size:19px;line-height:1.2}.date-tile span{font-size:10px;text-transform:uppercase}.up-item>div:last-child{display:flex;flex-direction:column;gap:3px}.up-item strong{font-size:12px}.up-item span{font-size:11px;color:#7c8ba0}.subheading{margin-top:25px;padding-top:20px;border-top:1px solid #e9eef5}.report-total{display:flex;flex-direction:column;gap:5px;margin:15px 0 22px}.report-total span,.report-total small{color:#7788a0}.report-total strong{font-size:28px;color:#173d70}.footer{text-align:center;color:#93a0b2;font-size:11px;padding:22px;border-top:1px solid #e5ebf3}.month-switch{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.month-switch h2{margin:0;min-width:140px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-head>div{text-align:center;padding:10px;background:#f5f8fc;color:#72839a;font-size:11px;font-weight:800}.calendar-cell{min-height:125px;border:1px solid #e8eef6;padding:7px;min-width:0}.calendar-cell.blank{background:#f9fbfd}.calendar-cell.today{background:#f3f8ff;box-shadow:inset 0 0 0 2px #77a9e6}.day-number{font-weight:800;font-size:12px;margin-bottom:5px}.event{display:block;background:#e9f2ff;border-left:3px solid #3279c8;border-radius:5px;padding:5px;margin:4px 0;text-decoration:none;color:#1d548d;font-size:10px;overflow-wrap:anywhere}.event small{display:block;color:#52739a;font-size:9px;margin-top:2px}.delete-row{margin-top:12px}.print-body{background:#fff}.print-sheet{max-width:1050px;margin:25px auto;padding:25px;background:#fff}.print-brand{font-weight:800;font-size:22px;color:#173d70}.print-brand span{font-weight:400;color:#4777ad}.print-sheet h1{margin-top:20px}.print-sheet table{margin:16px 0}.no-print{margin-top:20px}@media(max-width:980px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.columns{grid-template-columns:1fr}.topbar nav{gap:12px}.calendar-cell{min-height:100px;padding:4px}.event{font-size:9px;padding:3px}}@media(max-width:620px){.container{padding:0 12px;margin:18px auto}.topbar{padding:12px 15px}.topbar nav{gap:10px}.topbar nav a{font-size:12px}.page-heading h1{font-size:25px}.panel{padding:16px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.money-cards{grid-template-columns:1fr}.calendar-cell{min-height:68px}.event small{display:none}.event{font-size:8px}.day-number{font-size:10px}.calendar-head>div{padding:7px 1px;font-size:9px}.month-switch h2{min-width:auto}.search{width:100%}.search input{min-width:130px;flex:1}.print-sheet{padding:10px}}@media print{.no-print,.topbar,.footer{display:none!important}.print-sheet{margin:0;padding:0;max-width:none}.print-body{background:white}.print-sheet table{font-size:10px}.print-sheet th,.print-sheet td{padding:6px}}
