.sidebar-section-title{display:block;font-size:12px;color:#61736a;padding:14px 12px 3px;font-weight:700}.sidebar-service-group .nav-link{margin:3px 0;padding:10px 12px;font-size:14px}.management-alert-link{display:flex;gap:6px;align-items:center;border:1px solid #a5bdac;padding:8px 10px;border-radius:8px;font-size:12px;background:#fff}.management-alert-link span{border-radius:20px;background:#28583a;color:white;min-width:22px;text-align:center;padding:3px}.management-alert-link small{font-size:10px;color:#65796c}.attention-panel,.leave-surface{padding:24px;border:1px solid var(--line);border-radius:12px;background:white;margin:20px 0 28px}.attention-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.attention-heading h2{font-size:21px;margin:0 0 12px}.attention-item{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px;background:#edf5ef;border-left:4px solid #618f6d;border-radius:6px;margin:12px 0}.attention-pending{font-size:14px;margin-top:12px}.leave-surface{max-width:1000px}.leave-surface h2{font-size:21px;margin-top:0}.leave-surface form>p{margin:16px 0}.leave-surface textarea{font:inherit;font-size:15px;line-height:1.6;width:100%;border:1px solid var(--line);border-radius:7px;padding:12px;resize:vertical;box-sizing:border-box}.leave-request{padding:20px 0;border-top:1px solid var(--line)}.leave-request-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.leave-request h3{font-size:17px;margin:0 0 10px}.leave-status{font-size:13px;padding:5px 9px;border-radius:6px;background:#edf3ee;text-transform:capitalize}.leave-request p{margin:8px 0}.resource-response{background:#f0f6f2;padding:12px;margin:12px 0;border-radius:7px}.resource-response strong{font-size:14px}.leave-request form label{display:block;margin:20px 0 8px}.leave-request form button{margin-top:10px}.access-pending{padding:12px;background:#eef4f0;margin:16px 0}#leave-error,#resource-error{color:#873f44}@media(max-width:1100px){.topbar{height:auto;min-height:88px;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}.top-right{flex-wrap:wrap;gap:8px}}@media(max-width:650px){.attention-panel,.leave-surface{padding:18px}.attention-item,.attention-heading{align-items:flex-start;flex-direction:column}.management-alert-link{font-size:11px}.leave-request .actions{flex-wrap:wrap}}

.top-right{align-items:flex-end}.top-right .management-alert-link{box-sizing:border-box;min-height:42px;align-self:flex-end;white-space:nowrap;margin-bottom:0}.management-alert-link.has-pending{background:#b42332;border-color:#b42332;color:#fff}.management-alert-link.has-pending span{background:#fff;color:#9f1c29}.management-alert-link.has-pending small{color:#fff}.management-alert-link.has-pending:hover{background:#951c28}.top-right .profile{align-self:flex-end}
.top-right .preview-role select{box-sizing:border-box;height:42px}

.management-alert-link.has-pending{background:#fbecee;border-color:#dfb3b8;color:#873941}.management-alert-link.has-pending span{background:#efd0d5;color:#762e37}.management-alert-link.has-pending small{color:#873941}.management-alert-link.has-pending:hover{background:#f5dfe3}
.resource-entry{border:1px solid var(--line);border-radius:10px;padding:18px;margin:18px 0}.resource-entry legend{font-weight:700;padding:0 6px}.resource-line{padding:20px;margin:16px 0;border:1px solid var(--line);border-radius:10px;background:#f8faf8}.resource-line h4{margin:0;font-size:16px}.resource-line .actions{flex-wrap:wrap}.resource-history{margin:20px 0}.notification-entry{display:block;padding:20px 0;border-bottom:1px solid var(--line)}.notification-entry time{font-size:12px;color:var(--muted)}.notification-entry>span{display:block;margin-top:10px;color:var(--green);font-size:13px}.topbar .top-right{flex-wrap:wrap;justify-content:flex-end;max-width:100%}.topbar{height:auto;min-height:94px;padding-block:12px}
/* Keep search beside the brand and notification controls together on the right. */
.topbar{justify-content:flex-start;gap:16px;flex-wrap:wrap}.topbar .banner-search{order:0;flex:0 1 240px;max-width:260px;margin:0}.topbar .top-right{margin-left:auto;gap:8px;flex:0 1 auto}.topbar .banner-search input{min-width:150px}.topbar .management-alert-link{font-size:11px;padding:8px}.topbar .preview-role select{max-width:185px}@media(max-width:950px){.topbar .banner-search{flex:1 1 180px;max-width:280px}.topbar .top-right{flex-basis:100%;justify-content:flex-end}}@media(max-width:550px){.topbar .banner-search{max-width:none;flex-basis:100%}.topbar .top-right{justify-content:flex-start}}
.notification-control{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:42px;padding:7px 12px;border:1px solid #b3c6b6;border-radius:8px;background:#fff;font-size:12px;box-sizing:border-box}.notification-count{display:inline-block;border-radius:20px;padding:5px 8px;font-size:11px;line-height:1.3;white-space:nowrap}.notification-count.is-unread{background:#fff0d6;color:#8b510d}.notification-count.needs-action{background:#fbe6e9;color:#8c3843}.notification-count.is-clear{background:#e4f1e7;color:#285b36}.topbar .banner-search{align-self:flex-end}.topbar .banner-search input{height:42px;box-sizing:border-box}.topbar .top-right{align-items:flex-end}.notification-entry>.notification-count{display:inline-block;margin-left:8px}.notification-control:hover{border-color:#72977c}

/* Leave room between nested field labels and the keyboard focus ring. */
.resource-entry .field>label{display:flex;flex-direction:column;gap:10px;line-height:1.5}.resource-entry .field>label>input,.resource-entry .field>label>textarea{display:block;margin:0}.resource-entry :is(input,textarea):focus-visible{outline:3px solid #669fc4;outline-offset:2px}
.resource-tabs a{display:block;padding:14px 20px;border-bottom:3px solid transparent;font-size:14px}.resource-tabs a[aria-current=page]{border-bottom-color:#699ec2;color:#295f43;font-weight:700}.resource-tabs a:hover{background:#edf4f0}

/* Search and the entire notification/profile group share the same bottom edge. */
.topbar .top-right{align-self:flex-end}.topbar .notification-control{min-height:42px}.topbar .banner-search{align-self:flex-end}
.workspace-switch-label{display:block;font-size:12px;font-weight:700;margin:0 0 8px;color:var(--muted)}#workspace-switch{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:14px}.sidebar-hint{font-size:13px;padding:12px}.sidebar .nav-home[aria-current=page]{background:#dceefa;color:#224e68;font-weight:700}

/* Greeting stays compact independently of the panels below it. */
.workspace-welcome{height:auto;min-height:54px;box-sizing:border-box;padding:9px 18px}

/* Keep navigation reachable below the sticky header at any document scroll position. */
.workspace .sidebar{position:sticky;top:var(--header-height,94px);align-self:flex-start;max-height:calc(100dvh - var(--header-height,94px));overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
@media(max-width:650px){.workspace .sidebar{position:fixed;left:0;bottom:0;width:min(300px,88vw);z-index:4;box-shadow:8px 0 24px #183f2b26;background:#fff}}
.management-board{margin:0 0 28px}.management-board>h2{font-size:22px;margin:0 0 10px}.management-board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.management-board-card{display:flex;flex-direction:column;gap:16px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:14px;min-height:180px}.management-board-card:hover{border-color:#8fae9b;background:#fcfdfb}.management-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.management-card-heading h3{font-size:18px;margin:0}.management-board-card p{font-size:13px}.management-card-action{margin-top:auto;color:var(--green);font-weight:700;font-size:13px}.board-unconnected{background:#edf0ee;color:#5c6b62}.board-note{font-size:12px;margin-top:16px}@media(max-width:750px){.management-board-grid{grid-template-columns:1fr}.management-board-card{padding:20px}}
.board-notices{padding-left:18px;margin:0}.board-notices li{margin:8px 0;font-size:13px;line-height:1.5}.board-notices a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.management-board-toggle{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;padding:12px 0;margin-bottom:10px}.management-board-toggle::-webkit-details-marker{display:none}.management-board-toggle:before{content:'▸';color:var(--green)}.management-board[open]>.management-board-toggle:before{content:'▾'}.management-board-toggle h2{font-size:22px;margin:0}.board-toggle-hint{margin-left:auto;font-size:12px;color:var(--muted)}.board-toggle-hint:after{content:'Expand'}.management-board[open] .board-toggle-hint:after{content:'Collapse'}.management-board-toggle:focus-visible{outline:3px solid #669fc4;outline-offset:3px}

/* Shared notification lists: compact rows with independently scrollable history. */
.notifications-section{padding:16px 20px;margin-block:16px}
.notifications-section h2{margin:0;font-size:20px}
.notifications-section .attention-heading{flex-wrap:wrap;gap:10px}
.notifications-scroll{max-height:clamp(180px,42dvh,440px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;margin-top:10px;padding-inline:4px}
.notifications-scroll:focus-visible{outline:2px solid #6499bb;outline-offset:2px}
.notifications-section .notification-entry{padding:10px 4px;line-height:1.35}
.notifications-section .notification-entry p{margin:4px 0;font-size:13px}
.notifications-section .notification-entry>span{margin-top:4px;font-size:12px}
.notifications-section .notification-entry>.notification-count{padding:3px 7px}
.notifications-section .notification-entry:last-child{border-bottom:0}

/* Every workspace greeting controls its top overview, with services left visible. */
.workspace-overview{margin-bottom:20px}
.workspace-overview>.workspace-welcome{cursor:pointer;list-style:none;margin-bottom:12px}
.workspace-overview>.workspace-welcome::-webkit-details-marker{display:none}
.workspace-overview>.workspace-welcome:focus-visible{outline:3px solid #6499bb;outline-offset:3px}
.workspace-collapse-hint{margin-left:auto;font-size:12px;white-space:nowrap}
.workspace-collapse-hint::before{content:'Show overview ▾'}
.workspace-overview[open]>.workspace-welcome .workspace-collapse-hint::before{content:'Hide overview ▴'}
.workspace-overview:not([open])>.workspace-welcome{margin-bottom:0}

.student-published-timetable .tt-grid{min-width:820px}.student-published-timetable .table-scroll{max-height:60dvh;overflow:auto}.student-published-timetable .tt-grid th{position:sticky;top:0;z-index:1}

/* Summary strips keep text and actions centred, and wrap rather than clip. */
.reg-now-mini{height:auto;min-height:54px;padding:10px 16px;overflow:visible;flex-wrap:wrap;align-items:center}
.reg-now-mini .eyebrow,.reg-now-mini .reg-now-line,.reg-now-mini .reg-now-open{margin-block:0;align-self:center}
.reg-now-mini .reg-now-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;white-space:normal;overflow:visible;min-width:0}
.reg-now-mini .reg-now-line strong,.reg-now-mini .reg-now-line small{margin:0;white-space:normal;overflow:visible}
.quick-row,.attention-heading,.management-card-heading{align-items:center}
@media(max-width:650px){.reg-now-mini .reg-now-line{flex-basis:100%}.reg-now-mini .reg-now-open{margin-left:auto}}

.student-clubs-card{border:1px solid var(--line);border-radius:12px;padding:16px}.student-clubs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.club-booking{display:flex;flex-direction:column;gap:5px;padding:12px;border-left:5px solid var(--club-accent,#a0aaa2);border-radius:8px;background:var(--club-bg,#f0f3f1);color:#253b30;box-sizing:border-box}.club-booking small{display:block}.club-mon{--club-bg:#fff7cd;--club-accent:#b69a15}.club-tue{--club-bg:#fce4ee;--club-accent:#b5537c}.club-wed{--club-bg:#e4f2df;--club-accent:#548641}.club-thu{--club-bg:#ffead4;--club-accent:#bb732c}.club-list>details{border-left:5px solid var(--club-accent);background:var(--club-bg)}.club-list summary{cursor:pointer;padding:8px}.club-none{background:#f0f3f1}.tt-grid .club-booking{min-height:100px}@media(max-width:600px){.student-clubs-grid{grid-template-columns:1fr}}

#student-dialog.student-timetable-wide{width:calc(100vw - 40px);max-width:1400px;max-height:92dvh}#student-dialog.student-timetable-wide .student-published-timetable .table-scroll{max-height:none}#student-dialog.student-timetable-wide .editor-top{position:relative}.student-published-timetable>[data-print-student-timetable]{float:right;margin:0 0 12px 12px}@media(max-width:600px){#student-dialog.student-timetable-wide{width:calc(100vw - 16px)}}

/* Sidebar categories need stronger contrast than secondary descriptions. */
.sidebar .sidebar-section-title,.sidebar .side-heading{color:#24553b;font-weight:800;font-size:12px;letter-spacing:.04em;opacity:1}

/* Club sessions are distinct from academic subject fills, with Thai weekday accents. */
.club-mon{--club-day-colour:#f5d65c}.club-tue{--club-day-colour:#f2a8c9}.club-wed{--club-day-colour:#a6d894}.club-thu{--club-day-colour:#f6b16a}
.club-kind{font-size:10px;font-weight:800;letter-spacing:.1em;line-height:1.2}
.tt-grid a.club-booking,.day-row.day-club{background:#243b35;color:#fff;border:1px solid #243b35;border-left:7px solid var(--club-day-colour);border-radius:8px}
.tt-grid a.club-booking .club-kind,.day-row.day-club .club-kind{color:var(--club-day-colour)}
.tt-grid a.club-booking small,.day-row.day-club small,.day-row.day-club .day-time,.day-row.day-club .day-go{color:#edf4ef}
.tt-grid a.club-booking strong,.day-row.day-club strong{color:#fff}
.tt-grid a.club-booking:hover,.day-row.day-club:hover{background:#324e44;outline:2px solid var(--club-day-colour);outline-offset:-2px}
.tt-grid .club-none{background:#edf1ee;color:#52645a;border-left:5px dashed #9eada4}
