*{box-sizing:border-box}body{margin:0;background:#f4f6f8;color:#1d2936;font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}.hidden{display:none!important}.topbar{height:78px;background:linear-gradient(110deg,#142b45,#244664);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100% - 1160px)/2));color:white}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none}.logo{width:43px;height:43px;border:1px solid #ffffff55;border-radius:12px;display:grid;place-items:center;color:#d7ad62;font-size:24px}.brand b{display:block;font-size:16px}.brand small{display:block;font-size:9px;letter-spacing:1.5px;color:#cfdae4}.top-user{display:flex;align-items:center;gap:13px;font-size:12px}.private{border:1px solid #ffffff55;border-radius:20px;padding:6px 10px;color:#e4edf5}.main{max-width:1160px;margin:auto;padding:38px 22px 60px}.hero{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#a47b3e;font-weight:800}.hero h1,.login-card h1{font-size:32px;line-height:1.2;color:#142b45;margin:7px 0}.hero p,.login-card p{color:#718093;margin:0}.btn{border:0;border-radius:9px;padding:11px 15px;font-weight:700;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.gold{background:#d7ad62;color:#172e45}.gold:hover{background:#e3bd78}.light{background:#fff;color:#142b45}.outline{background:white;color:#142b45;border:1px solid #dfe6ec}.small{padding:8px 11px}.full{width:100%;margin-top:8px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:23px}.stat{background:white;border:1px solid #e2e8ee;border-radius:12px;padding:14px 17px}.stat b{display:block;font-size:22px;color:#142b45}.stat span{font-size:11px;color:#718093}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:18px}.toolbar input{flex:1;border:1px solid #dfe6ec;border-radius:9px;padding:12px;background:white;min-width:0}.toolbar span{font-size:12px;color:#718093}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{background:white;border:1px solid #e2e8ee;border-radius:13px;overflow:hidden;position:relative}.photo{height:175px;background:linear-gradient(135deg,#e4ebf0,#f5f7f9);display:grid;place-items:center;color:#142b45;font-size:35px;font-weight:800}.photo img{width:100%;height:100%;object-fit:cover}.cardbody{padding:16px}.job{font-size:10px;color:#a47b3e;text-transform:uppercase;letter-spacing:1.2px;font-weight:800}.card h3{font-size:18px;color:#142b45;margin:5px 0}.dept{font-size:11px;color:#68798b;font-weight:700}.bio{font-size:12px;color:#718093;min-height:38px;margin:10px 0}.contact{display:grid;gap:4px;font-size:11px;overflow-wrap:anywhere}.contact a{color:#365a7c;text-decoration:none}.card-actions{position:absolute;right:10px;top:10px;display:flex;gap:6px}.card-actions button,.x{border:1px solid #e0e7ed;background:#ffffffed;border-radius:8px;padding:7px;color:#29445f;cursor:pointer}.card-actions .delete{color:#a43b3b}.empty{grid-column:1/-1;text-align:center;padding:50px 20px;background:white;border:1px dashed #cbd5df;border-radius:13px;color:#718093}.empty h3{color:#142b45;margin:0 0 5px}.footnote{text-align:center;color:#8492a0;font-size:11px;margin-top:28px}.login-wrap{min-height:calc(100vh - 135px);display:grid;place-items:center;padding:25px}.login-card{width:min(420px,100%);background:white;border:1px solid #e2e8ee;border-radius:17px;padding:32px;box-shadow:0 18px 55px #17334c12}.login-card form{margin-top:22px}.login-card label,.fields label{display:grid;gap:6px;margin-bottom:13px;font-size:11px;font-weight:700;color:#45566a}.login-card input,.fields input,.fields textarea,.fields select{width:100%;border:1px solid #dce4ea;border-radius:8px;padding:11px 12px;font:inherit;font-size:13px;outline:none;background:white}.login-card input:focus,.fields input:focus,.fields textarea:focus{border-color:#91a9be}.secure{text-align:center;color:#718093;font-size:11px;margin-top:18px}.error{color:#9c3d39;background:#fff0ef;border:1px solid #f0d3d0;border-radius:8px;padding:10px;margin-top:12px;font-size:12px}.message{background:#eef8f1;border:1px solid #d2e9d9;color:#2c7047;padding:10px 13px;border-radius:8px;margin-bottom:14px;font-size:12px}.overlay{position:fixed;inset:0;background:#0d2034b8;display:grid;place-items:center;padding:18px;z-index:5}.modal{width:min(650px,100%);max-height:94vh;overflow:auto;background:white;border-radius:15px;padding:24px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal h2{color:#142b45;margin:3px 0}.x{font-size:22px;line-height:1}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.fields .wide{grid-column:1/-1}.fields textarea{resize:vertical}.fields small{font-weight:400;color:#7a8997}.modal-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid #e2e8ee;padding-top:15px;margin-top:10px}.users-list{margin-top:20px;border-top:1px solid #e2e8ee;padding-top:12px}.user-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf0f3;font-size:12px}.user-row small{display:block;color:#718093}.user-row button{border:1px solid #eed4d4;color:#a43b3b;background:white;border-radius:7px;padding:5px 8px;cursor:pointer}footer{text-align:center;border-top:1px solid #e2e8ee;padding:18px;color:#8995a1;font-size:11px}
@media(max-width:800px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{padding:0 16px}}@media(max-width:570px){.topbar{height:70px}.private{display:none}.top-user{gap:7px}.brand b{font-size:13px}.brand small{font-size:8px}.logo{width:37px;height:37px}.main{padding:28px 14px}.hero{align-items:start;flex-direction:column}.hero h1{font-size:28px}.stats{grid-template-columns:1fr 1fr}.stat:last-child{grid-column:1/-1}.grid{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.toolbar input{flex-basis:100%}.fields{grid-template-columns:1fr}.fields .wide{grid-column:auto}.modal{padding:18px}.login-card{padding:25px}}

.message-item{padding:13px 0;border-bottom:1px solid #e8edf1}.message-item h4{margin:8px 0 5px;color:#142b45}.message-item p{font-size:13px;color:#526579;line-height:1.55;white-space:normal;overflow-wrap:anywhere;margin:0 0 10px}.message-meta{display:flex;justify-content:space-between;gap:12px;font-size:11px}.message-meta small{color:#8492a0;text-align:right}.message-item .btn{font-size:11px}

.user-group-edit{display:flex;gap:6px;margin-top:7px}.user-group-edit select{border:1px solid #dfe6ec;border-radius:6px;padding:5px;font-size:11px}.user-group-edit button{border:1px solid #dfe6ec;background:#f7f9fb;border-radius:6px;padding:5px 8px;font-size:11px;cursor:pointer}

.message-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.message-actions .btn{cursor:pointer}


/* Shared calendar and team task board */
.workspace{margin-top:42px}
.workspace-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 17px}
.workspace-heading h2{margin:4px 0;color:#142b45;font-size:24px}
.workspace-heading p,.muted-note{margin:0;color:#718093;font-size:12px}
.calendar-toolbar{display:flex;align-items:center;gap:10px;margin:16px 0 12px}
.calendar-toolbar h3{margin:0 auto 0 0;color:#142b45;font-size:17px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;background:#e6ebef;border:1px solid #e6ebef;border-radius:12px;overflow:hidden}
.calendar-day-name{background:#f0f3f6;text-align:center;padding:9px 3px;font-size:10px;font-weight:800;color:#617386}
.calendar-cell{background:#fff;min-height:100px;padding:7px;min-width:0;cursor:pointer}
.calendar-cell:hover{background:#fbfcfd}
.calendar-blank{background:#f7f9fa;cursor:default}
.calendar-date{font-size:11px;font-weight:800;color:#43566a;margin-bottom:6px}
.calendar-cell.is-today .calendar-date{display:inline-grid;place-items:center;background:#142b45;color:white;border-radius:50%;width:23px;height:23px}
.calendar-event-chip{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;border:0;border-left:3px solid #d7ad62;background:#fff5e2;color:#5e4825;border-radius:3px;padding:3px 5px;margin:3px 0;font-size:10px;cursor:pointer}
.calendar-more{font-size:9px;color:#718093}
.calendar-event-list{margin-top:14px}
.calendar-event-list h3{font-size:14px;color:#142b45}
.calendar-list-item{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid #e4e9ee;border-radius:9px;padding:12px 14px;margin:7px 0}
.calendar-list-item b{display:block;color:#243b52;font-size:13px}
.calendar-list-item small{display:block;color:#718093;font-size:10px;margin-top:3px}
.calendar-list-item p{font-size:11px;color:#596b7d;margin:6px 0 0;white-space:pre-wrap}
.event-actions{display:flex;gap:6px;flex-shrink:0}
.task-heading{margin-top:40px}
.task-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.task-column{background:#edf1f4;border:1px solid #e2e8ee;border-radius:12px;padding:12px;min-height:150px}
.task-column-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.task-column-head h3{font-size:13px;color:#243b52;margin:0}
.task-column-head span{background:#fff;border-radius:20px;padding:2px 8px;font-size:10px;color:#627487}
.task-card{background:#fff;border:1px solid #e0e7ed;border-radius:9px;padding:12px;margin:8px 0;box-shadow:0 2px 5px #142b4508}
.task-card-top{display:flex;align-items:center;justify-content:space-between}
.priority{font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:.5px;border-radius:4px;padding:3px 6px;background:#edf1f4;color:#526579}
.priority-high{background:#fff0ed;color:#a7473c}
.priority-low{background:#eef6f0;color:#39724d}
.task-edit,.task-delete{border:0;background:transparent;color:#426384;font-size:10px;font-weight:700;cursor:pointer}
.task-card h4{font-size:13px;color:#203950;margin:8px 0 5px;overflow-wrap:anywhere}
.task-card p{font-size:11px;color:#657689;margin:0 0 8px;white-space:pre-wrap}
.task-meta{display:grid;gap:4px;font-size:10px;color:#6e7e8d}
.task-created{display:block;color:#98a2ac;font-size:9px;margin-top:7px}
.task-controls{display:flex;gap:8px;align-items:center;border-top:1px solid #edf0f2;padding-top:8px;margin-top:9px}
.task-controls select{min-width:0;flex:1;border:1px solid #dfe6ec;border-radius:6px;padding:6px;background:#fff;color:#40566c;font-size:10px}
.task-delete{color:#a34b45}
.task-empty{font-size:11px;color:#8492a0;text-align:center;padding:17px 4px}
@media(max-width:760px){.workspace-heading{align-items:flex-start}.calendar-cell{min-height:76px;padding:4px}.calendar-event-chip{font-size:8px;padding:2px 3px}.task-board{grid-template-columns:1fr}.calendar-list-item{align-items:flex-start}.event-actions{flex-direction:column}.toolbar{flex-wrap:wrap}.toolbar input{flex-basis:100%}}
@media(max-width:430px){.calendar-day-name{font-size:9px;padding:7px 1px}.calendar-cell{min-height:62px}.calendar-date{font-size:9px}.calendar-cell.is-today .calendar-date{width:19px;height:19px}.calendar-more{font-size:8px}}


/* In-portal notifications */
.top-user{position:relative}
.notification-wrap{position:relative;display:inline-flex;align-items:center}
.notification-button{position:relative;width:38px;height:36px;border:1px solid #ffffff55;border-radius:9px;background:#ffffff18;color:#fff;font-size:19px;cursor:pointer}
.notification-button:hover,.notification-button.has-unread{background:#ffffff2b}
.notification-count{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:20px;background:#c84e46;color:#fff;border:2px solid #142b45;font-size:9px;font-weight:800}
.notification-count.hidden{display:none}
.notification-panel{position:absolute;z-index:1000;right:0;top:calc(100% + 12px);width:min(360px,calc(100vw - 28px));max-height:440px;overflow:hidden;background:#fff;border:1px solid #e1e7ed;border-radius:13px;box-shadow:0 14px 40px #10263d30;color:#243b52}
.notification-panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border-bottom:1px solid #edf0f3}
.notification-panel-head b{font-size:14px}
.notification-mark-all{border:0;background:none;color:#8a682e;font-size:10px;font-weight:700;cursor:pointer}
.notification-list{max-height:375px;overflow:auto}
.notification-item{width:100%;display:flex;align-items:flex-start;gap:10px;text-align:left;padding:12px 14px;border:0;border-bottom:1px solid #f0f2f4;background:#fff;cursor:pointer}
.notification-item:hover{background:#f7f9fb}
.notification-item.is-unread{background:#fffaf0}
.notification-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#d2a34f;margin-top:5px}
.notification-item.is-read .notification-dot{background:#d9e0e6}
.notification-copy{display:grid;gap:4px;min-width:0}
.notification-copy b{font-size:11px;color:#243b52}
.notification-copy small{font-size:10px;color:#68798a;line-height:1.4;overflow-wrap:anywhere}
.notification-copy time{font-size:9px;color:#98a3ad}
.notification-empty{padding:22px 15px;text-align:center;color:#7b8997;font-size:11px}
@media(max-width:650px){.notification-panel{right:-54px;top:calc(100% + 10px)}.top-user{gap:8px}.notification-button{width:34px;height:34px}}

/* Admin user ID card printing controls */
.users-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 8px}
.users-heading h3{margin:0}
.user-row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.btn.small{padding:7px 10px;font-size:11px}
@media(max-width:520px){.users-heading{align-items:flex-start;flex-direction:column}.user-row-actions{justify-content:flex-start}}

/* User profile photographs in administrator account management */
.user-account{display:flex;align-items:flex-start;gap:11px;min-width:0}
.user-photo-preview{width:48px;height:48px;flex:0 0 48px;border-radius:50%;overflow:hidden;background:#edf1f4;color:#748394;display:grid;place-items:center;font-size:9px;border:1px solid #dbe2e8}
.user-photo-preview img{width:100%;height:100%;object-fit:cover}
.user-photo-actions{display:flex;align-items:center;gap:8px;margin-top:6px}
.user-photo-actions label{cursor:pointer}
@media(max-width:520px){.user-account{max-width:100%}.user-photo-preview{width:42px;height:42px;flex-basis:42px}}
