*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,sans-serif;background-color:var(--bg-color);color:var(--text-main);line-height:1.5}.dashboard-container{max-width:1400px;margin:0 auto;padding:24px 32px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.header-left{display:flex;align-items:center;gap:16px}.logo{width:48px;height:48px;background-color:var(--primary);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.header-title-container{display:flex;flex-direction:column;gap:4px}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.title-row h1{font-size:20px;font-weight:700;color:var(--text-main);line-height:1.2}.badge{padding:4px 10px;border-radius:9999px;font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.badge-purple{background-color:var(--purple-bg);color:var(--primary);border:1px solid var(--purple-border)}.badge-number{width:28px;height:28px;border-radius:9999px;background-color:var(--blue-bg);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.subtitle{font-size:14px;color:var(--text-muted)}.header-right{display:flex;gap:12px}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn svg{width:16px;height:16px}.btn-outline{background-color:#fff;border:1px solid var(--border-color);color:var(--text-muted)}.btn-outline:hover{background-color:#f9fafb;color:var(--text-main)}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.stats-row{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:24px}.stat-card{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:16px;box-shadow:0 1px 2px #00000005}.stat-card.border-green{border-color:var(--green-border)}.stat-card.border-purple{border-color:var(--purple-border)}.stat-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:8px}.stat-value{font-size:20px;font-weight:700;margin-bottom:4px;display:flex;align-items:baseline;gap:4px}.stat-sub{font-size:14px;font-weight:500;color:var(--text-muted)}.stat-desc{font-size:12px;font-weight:500}.text-blue{color:var(--blue-text)}.text-green{color:var(--green-text)}.text-purple{color:var(--purple-text)}.controls-section{display:flex;justify-content:space-between;align-items:center;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:8px 16px;margin-bottom:32px;box-shadow:0 1px 2px #00000005}.search-bar{display:flex;align-items:center;gap:12px;flex:1}.search-bar svg{color:var(--text-muted);width:20px;height:20px}.search-bar input{border:none;outline:none;font-size:14px;width:100%;color:var(--text-main);padding:8px 0}.search-bar input::placeholder{color:var(--text-muted)}.sort-bar{display:flex;align-items:center;gap:12px;padding-left:16px;border-left:1px solid var(--border-color)}.sort-label{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-muted)}.sort-select{border:1px solid var(--border-color);border-radius:6px;padding:6px 32px 6px 12px;font-size:14px;font-weight:500;color:var(--text-main);outline:none;appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236B7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E") no-repeat right 8px center;background-size:16px;cursor:pointer}.cards-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}.cards-title h2{font-size:18px;font-weight:700;color:var(--text-main);margin-bottom:4px}.cards-title p{font-size:14px;color:var(--text-muted)}.cards-count{font-size:14px;color:var(--text-muted);background-color:var(--border-color);padding:6px 16px;border-radius:9999px;background-color:#f3f4f6;font-weight:500}.campuses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.campus-card{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;padding:24px;box-shadow:0 4px 6px -1px #00000005,0 2px 4px -1px #00000005}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.card-title-group{display:flex;gap:12px}.card-title{font-size:16px;font-weight:700;color:var(--text-main);line-height:1.2;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.card-subtitle{font-size:12px;color:var(--text-muted)}.card-actions{display:flex;gap:8px;color:#9ca3af}.card-actions svg{width:16px;height:16px;cursor:pointer;transition:color .2s}.card-actions svg:hover{color:var(--text-main)}.stat-block{margin-top:16px;border-radius:12px;padding:12px 16px;border:1px solid}.block-blue{background-color:var(--blue-bg);border-color:var(--blue-border)}.block-green{background-color:var(--green-bg);border-color:var(--green-border)}.block-purple{background-color:var(--purple-bg);border-color:var(--purple-border)}.block-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.block-title{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}.block-value{font-size:14px;font-weight:700}.block-blue .block-title,.block-blue .block-value{color:var(--blue-text)}.block-green .block-title,.block-green .block-value{color:var(--green-text)}.block-purple .block-title,.block-purple .block-value{color:var(--purple-text)}.progress-container{height:8px;background-color:#ffffffb3;border-radius:4px;overflow:hidden;margin-bottom:12px}.block-blue .progress-container{background-color:#dbeafe}.block-green .progress-container{background-color:#d1fae5}.block-purple .progress-container{background-color:#f3e8ff}.progress-bar{height:100%;border-radius:4px}.block-blue .progress-bar{background-color:var(--blue-text)}.block-green .progress-bar{background-color:var(--green-text)}.block-purple .progress-bar{background-color:var(--purple-text)}.block-footer{display:flex;justify-content:space-between;font-size:11px;font-weight:500;color:var(--text-muted)}.block-blue .block-footer .footer-val{color:var(--blue-text);font-weight:600}.block-green .block-footer .footer-val{color:var(--green-text);font-weight:600}.block-purple .block-footer .footer-val{color:var(--purple-text);font-weight:600}.card-bottom-stats{display:flex;gap:24px;margin-top:16px;padding:16px;border:1px solid var(--border-color);border-radius:12px}.bottom-stat{flex:1}.bottom-stat-label{font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.bottom-stat-val{font-size:13px;font-weight:700;color:var(--text-main);margin-bottom:2px}.bottom-stat-sub{font-size:12px;color:var(--text-muted);font-weight:500}.text-indigo{color:var(--primary)}.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.view-link{font-size:13px;font-weight:600;color:var(--primary);text-decoration:none;display:flex;align-items:center;gap:4px}.view-link:hover{text-decoration:underline}.footer-stat{font-size:12px;color:var(--text-muted);font-weight:500}.table-section{background:var(--surface);border:1px solid var(--border-color);border-top:3px solid var(--duta-blue);border-radius:20px;margin-bottom:2rem;overflow:hidden;box-shadow:0 1px 3px #00000005}.table-header-bar{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.table-scroll-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.ledger-table{width:100%;min-width:950px;border-collapse:collapse;text-align:left;font-size:.875rem}.ledger-table th{background-color:#f9fafb;color:#6b7280;font-weight:600;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);white-space:nowrap}.ledger-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);color:var(--text-main);vertical-align:middle}.ledger-table tr:last-child td{border-bottom:none}.col-sticky-no{width:44px;text-align:center;position:sticky;left:0;background-color:#fff;z-index:2}th.col-sticky-no{position:sticky;left:0;background-color:#f9fafb!important;z-index:5}.col-sticky-name{position:sticky;left:44px;background-color:#fff;z-index:2;box-shadow:2px 0 4px -1px #0000000f}th.col-sticky-name{position:sticky;left:44px;background-color:#f9fafb!important;z-index:5;box-shadow:2px 0 4px -1px #0000000f}.col-no{width:40px;text-align:center}.col-num{text-align:right}.text-blue-bold{color:var(--primary);font-weight:600}.text-green-bold{color:#10b981;font-weight:600}.text-purple-bold{color:#8b5cf6;font-weight:600}.search-box{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 1px 2px #0000000d;transition:all .2s ease}.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.search-box input{border:none;outline:none;font-size:13px;color:var(--text-main);width:240px;background:transparent;font-family:inherit}.search-box input::placeholder{color:#9ca3af}.clear-btn{background:none;border:none;cursor:pointer;color:#9ca3af;padding:0 2px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:color .15s}.clear-btn:hover{color:var(--text-main)}.filter-count{font-size:12px;color:var(--text-muted);font-weight:500;white-space:nowrap}@media(max-width:1024px){.dashboard-container{padding:20px 24px}.stats-row{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.dashboard-container{padding:16px 12px}.header{flex-direction:column;align-items:stretch;gap:16px}.header-right{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%}.btn{justify-content:center;padding:8px 10px;font-size:12.5px}.stats-row{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.stat-card{padding:12px}.stat-value{font-size:16px}.stat-sub{font-size:12px}.table-header-bar{padding:12px 14px;flex-direction:column;align-items:stretch}.search-box,.search-box input{width:100%}}@media(max-width:480px){.title-row h1{font-size:17px}.subtitle{font-size:12.5px}.stats-row{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:10px}.stat-label{font-size:11px;margin-bottom:4px}.stat-value{font-size:15px}.btn{font-size:11.5px;padding:7px 6px;gap:5px}}
