:root{--navy-900: #0a1628;--navy-800: #0f2044;--navy-700: #162d5e;--navy-600: #1e3a7a;--gold: #c9a227;--gold-lt: #e0b840;--gold-pale:#fdf6e3;--bg: #f0f4f8;--white: #ffffff;--text: #1e293b;--subtle: #64748b;--border: #e2e8f0;--red: #dc2626;--green: #15803d;--orange: #d97706;--sidebar-w: 240px;font-family:Segoe UI,Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg)}body{margin:0}*{box-sizing:border-box}.page-wrap{display:flex;align-items:stretch;min-height:100vh}.app-sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--navy-900);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-logo{padding:24px 20px 20px;border-bottom:1px solid rgba(201,162,39,.2)}.sidebar-logo-icon{width:44px;height:44px;background:var(--gold);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.sidebar-logo h1{color:var(--white);font-size:13px;font-weight:700;margin:0 0 3px;line-height:1.35;letter-spacing:.01em}.sidebar-logo p{color:#ffffff73;font-size:11px;margin:0;letter-spacing:.01em}.sidebar-nav{flex:1;padding:12px 0}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:10px 20px;color:#ffffffa6;text-decoration:none;font-size:13.5px;font-weight:500;border-left:3px solid transparent;transition:color .15s,background .15s,border-color .15s}.sidebar-nav a:hover,.sidebar-nav a.active{color:var(--white);background:#ffffff12;border-left-color:var(--gold)}.sidebar-nav .nav-icon{font-size:15px;width:20px;text-align:center;opacity:.85}.sidebar-divider{height:1px;background:#ffffff14;margin:8px 20px}.sidebar-user{padding:16px 20px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user-avatar{width:36px;height:36px;background:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--navy-900);font-weight:800;font-size:14px;margin-bottom:10px}.sidebar-user strong{display:block;color:var(--white);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user p{color:#ffffff73;font-size:11px;margin:2px 0 10px}.sidebar-logout{width:100%;background:#ffffff14!important;color:#ffffffa6!important;border:none!important;border-radius:6px!important;padding:7px 12px!important;font-size:12px!important;font-weight:500!important;cursor:pointer;transition:background .15s,color .15s;text-align:left}.sidebar-logout:hover{background:#ffffff24!important;color:var(--white)!important}.page-wrap>main{flex:1;padding:32px;max-width:none;margin:0}.card{background:var(--white);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000f,0 4px 16px #0000000a;margin-bottom:24px}.card h2{margin:0 0 6px;font-size:18px;color:var(--navy-700)}.grant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.grant-card{background:var(--white);border:1px solid var(--border);border-left:4px solid var(--gold);border-radius:10px;padding:20px;transition:box-shadow .15s}.grant-card:hover{box-shadow:0 4px 18px #00000017}.grant-card h3{margin:0 0 4px;color:var(--navy-700);font-size:15px;font-weight:700}.grant-card p{margin:0 0 4px;font-size:13.5px}.portal-card{background:var(--white);border:1.5px solid var(--border);border-radius:12px;padding:24px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;text-decoration:none;color:inherit;display:block;height:100%}.portal-card:hover{border-color:var(--gold);box-shadow:0 6px 24px #c9a22726;transform:translateY(-2px)}.portal-card-icon{width:48px;height:48px;background:var(--gold-pale);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:14px;border:1px solid rgba(201,162,39,.2)}.portal-card h3{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--navy-700)}.portal-card p{margin:0;font-size:13px;color:var(--subtle);line-height:1.5}.year-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.year-pill{background:var(--navy-700);color:var(--white);padding:4px 11px;border-radius:999px;text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.02em;transition:background .15s,color .15s}.year-pill:hover{background:var(--gold);color:var(--navy-900)}button{background:var(--navy-700);color:var(--white);border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}button:hover{background:var(--navy-600)}input,textarea,select{display:block;width:100%;margin:6px 0 14px;padding:10px 13px;border:1.5px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;color:var(--text);background:var(--white);transition:border-color .15s,box-shadow .15s;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9a22724}label{display:block;font-size:13px;font-weight:600;color:var(--text)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at 15% 15%,rgba(201,162,39,.18) 0%,transparent 55%),radial-gradient(ellipse at 85% 85%,rgba(201,162,39,.12) 0%,transparent 55%),linear-gradient(145deg,var(--navy-900) 0%,var(--navy-700) 100%)}.auth-card{background:var(--white);border-radius:20px;padding:48px 44px;width:100%;max-width:420px;box-shadow:0 32px 80px #00000059,0 4px 20px #0003}.auth-logo{text-align:center;margin-bottom:28px}.auth-logo-icon{width:64px;height:64px;background:linear-gradient(145deg,var(--navy-700),var(--navy-900));border-radius:18px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:0 8px 28px #0a162859}.auth-logo h1{font-size:20px;font-weight:800;color:var(--navy-900);margin:0 0 4px;letter-spacing:-.01em}.auth-logo p{font-size:13px;color:var(--subtle);margin:0}.auth-divider{height:1px;background:var(--border);margin:0 0 28px}.auth-card h2{font-size:15px;font-weight:700;color:var(--text);margin:0 0 18px}.auth-submit{width:100%;background:var(--gold)!important;color:var(--navy-900)!important;border:none!important;border-radius:10px!important;padding:13px!important;font-size:15px!important;font-weight:700!important;cursor:pointer;transition:background .15s,transform .1s;margin-top:6px;letter-spacing:.01em}.auth-submit:hover{background:var(--gold-lt)!important;transform:translateY(-1px)}.error{color:var(--red);font-size:13px;margin:0 0 12px}.subtle{color:var(--subtle);font-size:14px}.empty{text-align:center;color:var(--subtle)}.summary-table,.report-table{width:100%;border-collapse:collapse}.summary-table td,.report-table th,.report-table td{border-bottom:1px solid var(--border);padding:10px;text-align:left}.report-table th{font-weight:600;color:var(--subtle);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}.summary-total td{font-weight:700}.subtotal{margin-top:14px;text-align:right}.report-title-row{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}@media print{@page{size:landscape;margin:.5in}.app-sidebar,button{display:none!important}.page-wrap>main{padding:0}body{background:#fff;font-size:11px}h1,h2{font-size:13px;margin:4px 0}p{margin:2px 0}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid;padding:8px;margin-bottom:8px;border-radius:0}.report-table th,.report-table td,.summary-table td{padding:3px 6px;font-size:10px}.subtotal{font-size:10px;margin-top:4px}.report-section{break-inside:avoid}}
