@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap');
:root{--ink:#18342d;--muted:#718078;--bg:#f4f7f3;--line:#e2e9e2;--green:#14724f;--dark:#102b25;--mint:#e6f3e9}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 'DM Sans',Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}h1,h2{font-family:Outfit,Arial,sans-serif;line-height:1.15}h2{font-size:22px;margin-bottom:7px}p{color:var(--muted)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.17em;color:var(--green)}.app-layout{display:flex;min-height:100vh}.sidebar{width:250px;flex:none;background:var(--dark);color:#c5d9cd;display:flex;flex-direction:column;padding:29px 16px 18px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font:700 20px Outfit;color:#fff;padding:3px 12px}.brand b{color:#87d6a2}.brand small{display:block;color:#8daa9c;font:600 9px 'DM Sans';letter-spacing:.17em}.brand-mark{display:grid;place-items:center;background:#2e9065;color:#fff;width:38px;height:38px;border-radius:11px}.sidebar-section{font-size:10px;letter-spacing:.16em;color:#729484;font-weight:700;margin:55px 15px 15px}.side-nav{display:grid;gap:6px}.side-nav a{padding:12px 13px;border-radius:10px;display:flex;align-items:center;gap:12px;font-weight:600;font-size:13px}.side-nav a:hover,.side-nav a.active{background:#285342;color:#fff}.nav-icon{width:20px;text-align:center;font-size:18px}.sidebar-foot{margin-top:auto;border-top:1px solid #315345;padding:19px 4px 0;display:flex;align-items:center;gap:9px}.admin-avatar,.top-avatar{display:grid;place-items:center;background:#388969;color:#fff;border-radius:10px;width:34px;height:34px;font-weight:700}.admin-id{min-width:0;flex:1}.admin-id b,.admin-id small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-id b{font-size:12px;color:#fff}.admin-id small{font-size:10px;color:#a3bcae}.logout{border:0;background:none;color:#b1c9b9;font-size:22px}.main-column{flex:1;min-width:0}.topbar{background:#fff;border-bottom:1px solid var(--line);height:99px;padding:20px 36px;display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:25px;margin:3px 0 0}.topbar-right{display:flex;align-items:center;gap:20px;color:var(--muted);font-size:12px}.content{max-width:1600px;margin:auto;padding:32px 36px 80px}.page-intro,.panel-head,.modal-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.page-intro{margin-bottom:24px}.page-intro h2{font-size:29px;margin:4px 0}.page-intro p,.panel-head p{margin:0}.primary,.secondary,.icon-button,.table-action{border:0;border-radius:9px;padding:11px 17px;display:inline-flex;justify-content:center;align-items:center;font-weight:700;white-space:nowrap}.primary{background:var(--green);color:#fff}.primary:hover{background:#0d593d}.secondary{background:var(--mint);color:var(--green)}.icon-button{padding:0;width:34px;height:34px;background:#edf3ee;color:var(--ink);font-size:22px}.table-action{padding:7px 10px;background:#e6f3e9;color:var(--green);font-size:12px}.table-action.danger{background:#fcece8;color:#a34430}.full{width:100%}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 17px #19392b08}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:25px 0}.stat{padding:20px;min-height:135px;display:flex;flex-direction:column}.stat-icon{color:var(--green);font-size:21px}.stat strong{font:700 32px Outfit;margin-top:9px}.stat>span:last-child{color:var(--muted);font-size:12px}.table-panel{margin-top:20px;overflow:hidden}.panel-head{padding:22px 24px;border-bottom:1px solid var(--line)}.panel-head h2{margin:3px 0 0}.count-pill,.badge{border-radius:30px;padding:5px 10px;background:#e9f3eb;color:var(--green);font-size:11px;font-weight:700}.text-link{color:var(--green);font-weight:700}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th{background:#f9fbf9;color:#73837a;font-size:10px;letter-spacing:.09em;text-transform:uppercase}th,td{padding:15px 18px;border-bottom:1px solid #ebf0ec;white-space:nowrap}td{font-size:12px}td small{display:block;color:var(--muted);margin-top:3px}tr:last-child td{border-bottom:0}.table-empty{text-align:center;color:var(--muted);padding:34px}.muted{color:#a5b0a8}.badge-resolved,.badge-verified{background:#e7f3e8;color:#26734c}.badge-rejected{background:#feece7;color:#a74333}.priority{font-weight:700}.priority-high{color:#b95137}.priority-medium{color:#b57b20}.priority-low{color:#287c58}.schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px}.calendar-filter{margin-bottom:13px}.calendar-filter label{font-size:12px;font-weight:700}.calendar-filter select{margin-left:8px}.calendar-filter select,.field input,.field select,.field textarea,.note-input{border:1px solid #ccdcd0;background:#fff;border-radius:8px;color:var(--ink);padding:10px;outline:none}.calendar-filter select:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green)}.calendar-panel{overflow:hidden}.calendar-panel .panel-head{padding:19px 21px}.calendar-controls{display:flex;gap:5px;align-items:center}.calendar-controls .secondary{padding:9px 12px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{text-align:center;background:#f8faf8;padding:11px 2px;color:var(--muted);font-size:11px;font-weight:700}.calendar-cell{min-height:105px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:7px;overflow:hidden}.calendar-cell:nth-child(7n){border-right:0}.calendar-cell.outside{background:#fafcfa;color:#b3bcb6}.calendar-date{display:grid;place-items:center;width:25px;height:25px;font-weight:700;font-size:11px}.is-today .calendar-date{background:var(--green);color:#fff;border-radius:50%}.calendar-event{border-radius:5px;padding:4px 5px;margin-top:3px;font-size:10px;line-height:1.2;overflow:hidden;text-overflow:ellipsis}.calendar-event.weekly{background:#e6f2e9;color:#1b6b48}.calendar-event.dated{background:#e6ecf9;color:#4264a1}.calendar-legend{display:flex;gap:18px;padding:14px 18px;color:var(--muted);font-size:11px}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.legend-dot.weekly{background:#2e9864}.legend-dot.dated{background:#5c78b6}.schedule-side{padding:22px;height:max-content;margin-top:44px}.schedule-side p{font-size:12px}.week-list{margin:24px 0}.week-row{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:10px 0;font-size:12px}.week-row b{color:var(--green)}.modal{border:0;border-radius:16px;padding:25px;width:min(560px,calc(100vw - 30px));max-height:calc(100vh - 30px);overflow:auto;box-shadow:0 30px 80px #102d2650}.modal::backdrop{background:#102d2699}.modal h2{margin:4px 0}.modal-subtitle{font-size:12px;margin:12px 0 22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{display:block;margin-bottom:14px}.field span{display:block;font-weight:700;font-size:11px;margin-bottom:6px}.field input,.field select,.field textarea{width:100%}.weekday-form{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:18px}.weekday-form label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;background:#f8faf8;border-radius:8px}.weekday-form span{font-size:12px;font-weight:700}.weekday-form input{width:125px;max-width:60%;border:1px solid var(--line);border-radius:6px;padding:7px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;flex-wrap:wrap}.modal-actions form{display:flex;gap:6px}.note-input{max-width:140px}.case-meta,.assessment{background:#f6f9f6;padding:12px;border-radius:8px;font-size:12px;color:var(--muted);margin:13px 0}.assessment b,.assessment span{display:block}.notice,.error{padding:12px 15px;border-radius:9px;margin-bottom:17px;background:#e8f4e8;color:#12563d}.error{background:#fff0eb;color:#9e3b2a}.login-header{padding:23px 30px;background:#102b25}.login-shell{display:grid;place-items:center;min-height:calc(100vh - 84px);padding:20px}.login-card{padding:34px;width:min(440px,100%)}.login-card h1{font-size:32px;margin:8px 0}.login-card p{font-size:13px}.login-help{margin-top:18px;text-align:center}.login-help a{color:var(--green)}@media(max-width:1050px){.schedule-layout{grid-template-columns:1fr}.schedule-side{margin-top:0}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:750px){.app-layout{display:block}.sidebar{position:relative;width:100%;height:auto;padding:12px}.sidebar-section,.sidebar-foot{display:none}.side-nav{display:flex;overflow:auto}.side-nav a{white-space:nowrap;padding:9px}.topbar{height:auto;padding:19px}.content{padding:20px}.topbar-right .today{display:none}.page-intro{align-items:flex-start;flex-direction:column}.calendar-cell{min-height:70px;padding:3px}.calendar-event{font-size:8px}.calendar-date{width:20px;height:20px}.form-grid{grid-template-columns:1fr}}
.login{max-width:560px;padding:27px}.login .primary,.login .secondary{width:100%}.login .field{margin:13px 0}.login h1{font-size:27px}.login form{margin-top:20px}

/* Panitan blue theme: the requested accent uses dark text for readable contrast. */
:root{--ink:#18343a;--muted:#5d7377;--bg:#f3f8f9;--line:#dce8ea;--green:#86b0b9;--dark:#315e68;--mint:#e4f0f2;--deep:#315e68}
.sidebar{background:var(--green);color:var(--ink)}
.brand,.brand b,.sidebar-section,.admin-id b,.admin-id small,.logout{color:var(--ink)}
.brand-mark,.admin-avatar{background:var(--deep);color:#fff}
.sidebar-foot{border-color:#608d97}
.side-nav a:hover,.side-nav a.active{background:var(--deep);color:#fff}
.eyebrow,.stat-icon,.text-link,.week-row b,.login-help a{color:var(--deep)}
.primary{background:var(--green);color:var(--ink)}
.primary:hover{background:#719fa9}
.secondary,.table-action,.count-pill,.badge{background:var(--mint);color:var(--deep)}
.secondary:hover,.table-action:hover{background:#d2e6e9}
.icon-button{background:var(--mint)}
.calendar-event.weekly{background:var(--mint);color:var(--deep)}
.legend-dot.weekly{background:var(--green)}
.is-today .calendar-date{color:var(--ink)}
.notice{background:var(--mint);color:var(--deep)}
.login-header{background:var(--deep)}
.brand small{color:var(--deep)}.top-avatar{background:var(--deep);color:#fff}

.brand-logo{display:block;width:38px;height:38px;border-radius:11px;object-fit:cover;flex:none}
