:root {
    --brand: #0a6157;
    --brand-dark: #074740;
    --brand-soft: #e7f4f1;
    --ink: #172033;
    --muted: #6b7280;
    --line: #e7e9ee;
    --surface: #f5f7f9;
    --accent: #7d1128;
    --accent-dark: #5c0c1d;
    --accent-soft: #fbeff1;
}

* { box-sizing: border-box; }

body {
    background: var(--surface);
    color: var(--ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.text-brand { color: var(--brand) !important; }
.bg-brand { background-color: var(--brand) !important; }
.bg-brand-soft { background: var(--brand-soft) !important; }

.btn-brand {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--brand);
    --bs-btn-border-color: var(--brand);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-dark);
    --bs-btn-hover-border-color: var(--brand-dark);
    --bs-btn-active-bg: var(--brand-dark);
    --bs-btn-active-border-color: var(--brand-dark);
}

.auth-shell {
    width: 100%;
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(320px, 0.9fr) minmax(420px, 1.1fr);
    background: #fff;
}

.auth-aside {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(2rem, 5vw, 5rem);
    color: #fff;
    background:
        radial-gradient(circle at 80% 20%, rgba(255,255,255,.15), transparent 28%),
        linear-gradient(145deg, #073e39, #0a6c60 58%, #0e8575);
}

.auth-aside::after {
    content: "";
    position: absolute;
    width: 340px;
    height: 340px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 50%;
    right: -110px;
    bottom: -120px;
    box-shadow: 0 0 0 55px rgba(255,255,255,.035), 0 0 0 110px rgba(255,255,255,.025);
}

.brand-mark {
    display: inline-grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    color: #fff;
    font-weight: 800;
    letter-spacing: -.04em;
    background: rgba(255,255,255,.16);
    border: 1px solid rgba(255,255,255,.22);
    backdrop-filter: blur(6px);
}

.auth-copy { max-width: 520px; position: relative; z-index: 1; }
.auth-copy h1 { font-size: clamp(2.1rem, 4vw, 4rem); letter-spacing: -.045em; line-height: 1.04; }
.auth-form-wrap { display: grid; place-items: center; padding: 2rem; }
.auth-card { width: min(100%, 430px); }
.auth-card.auth-card-wide { width: min(100%, 620px); }
.auth-success-icon { display: inline-grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #e7f5ef; color: #14745f; font-size: 1.7rem; }

.form-control, .form-select {
    border-color: #dfe3e8;
    min-height: 44px;
}

.form-control:focus, .form-select:focus {
    border-color: #50a99d;
    box-shadow: 0 0 0 .22rem rgba(10, 97, 87, .12);
}

.form-check-input:checked {
    background-color: var(--brand);
    border-color: var(--brand);
}

.app-shell { min-height: 100vh; width: 100%; }

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 260px;
    z-index: 1030;
    display: flex;
    flex-direction: column;
    color: #dce9e7;
    background: #092f2c;
    padding: 1.35rem 1rem;
}

.sidebar .brand-mark { width: 42px; height: 42px; border-radius: 13px; }
.sidebar-brand { color: #fff; text-decoration: none; display: flex; gap: .8rem; align-items: center; padding: .2rem .45rem 1.5rem; }
.sidebar-brand small { color: #93b7b2; display: block; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }

.sidebar .nav-link {
    color: #a9c3bf;
    border-radius: 10px;
    padding: .72rem .8rem;
    margin-bottom: .25rem;
    display: flex;
    align-items: center;
    gap: .75rem;
}

.sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.07); }
.sidebar .nav-link.active { color: #fff; background: #116f63; box-shadow: 0 8px 24px rgba(0,0,0,.16); }
.sidebar-user { border-top: 1px solid rgba(255,255,255,.1); padding: 1rem .5rem 0; margin-top: auto; }

.main-wrap { margin-left: 260px; min-height: 100vh; }
.topbar { min-height: 74px; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.content { padding: clamp(1.25rem, 3vw, 2.25rem); }
.content-inner { max-width: 1440px; margin: 0 auto; }

.page-title { letter-spacing: -.025em; }
.eyebrow { color: var(--brand); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }

.stat-card, .panel-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: 0 8px 28px rgba(16, 24, 40, .045);
}

.stat-card { padding: 1.25rem; height: 100%; }
.stat-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: var(--brand-soft); color: var(--brand); font-size: 1.25rem; }
.stat-value { font-size: 1.75rem; font-weight: 800; line-height: 1; letter-spacing: -.04em; }

.active-term-card {
    color: #fff;
    padding: clamp(1.5rem, 3vw, 2.2rem);
    border-radius: 20px;
    overflow: hidden;
    position: relative;
    background:
        radial-gradient(circle at 88% 12%, rgba(255,255,255,.16), transparent 28%),
        linear-gradient(135deg, #073e39, #0b7568);
    box-shadow: 0 16px 40px rgba(7, 71, 64, .2);
}

.active-term-card::after {
    content: "";
    position: absolute;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.12);
    right: -80px;
    bottom: -145px;
}

.active-term-card > .row { position: relative; z-index: 1; }
.term-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.term-metrics > div { padding: .8rem; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; background: rgba(255,255,255,.08); text-align: center; }
.term-metrics strong { display: block; font-size: 1.45rem; line-height: 1.1; }
.term-metrics span { display: block; margin-top: .3rem; font-size: .7rem; color: rgba(255,255,255,.65); }

.selection-schedule {
    padding: .75rem 1rem;
    border-radius: 11px;
    background: #f7f9fa;
    color: var(--muted);
    font-size: .82rem;
}

.selection-window-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.4rem;
    border: 1px solid #cfe7e2;
    border-radius: 16px;
    background: linear-gradient(135deg, #fff, var(--brand-soft));
}

.advisor-card { transition: transform .16s ease, box-shadow .16s ease; }
.advisor-card:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(16, 24, 40, .08); }
.advisor-progress { height: 7px; background: #e7eceb; }
.advisor-progress .progress-bar { background: var(--brand); }

.decision-person {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fafbfc;
}

.decision-person strong,
.decision-person small { display: block; }
.decision-person small { margin-top: .2rem; color: var(--muted); }

.unassigned-list { display: grid; gap: .55rem; max-height: 360px; overflow: auto; }
.unassigned-list > div { display: flex; align-items: center; gap: .7rem; padding: .65rem; border-radius: 11px; background: #f8fafb; }
.unassigned-list strong,
.unassigned-list small { display: block; }
.unassigned-list strong { font-size: .86rem; }
.unassigned-list small { color: var(--muted); font-size: .72rem; }

.document-history-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .7rem .8rem;
    margin-top: .45rem;
    border: 1px solid var(--line);
    border-radius: 11px;
    color: inherit;
    text-decoration: none;
    background: #fafbfc;
}
.document-history-item:hover { border-color: #9dccC5; background: var(--brand-soft); }
.document-history-item strong,
.document-history-item small { display: block; }
.document-history-item strong { font-size: .84rem; }
.document-history-item small { color: var(--muted); font-size: .72rem; }

.document-student-panel {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 1rem;
    background: #fff;
}
.document-feedback-thread { display: grid; gap: .65rem; max-height: 360px; overflow-y: auto; padding-right: .2rem; }
.document-feedback-item { padding: .8rem .9rem; border-left: 3px solid var(--brand); border-radius: 0 10px 10px 0; background: #f4f9f8; overflow-wrap: anywhere; }
.document-feedback-item p { font-size: .9rem; white-space: normal; }

.message-recipient-list { display: grid; gap: .45rem; max-height: 280px; overflow-y: auto; }
.message-recipient { display: flex; align-items: center; gap: .7rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: 11px; cursor: pointer; background: #fafbfc; }
.message-recipient:hover { border-color: #9dccc5; background: var(--brand-soft); }
.message-recipient strong,
.message-recipient small { display: block; }
.message-recipient strong { font-size: .84rem; }
.message-recipient small { color: var(--muted); font-size: .72rem; }
.advisor-message-thread { display: flex; flex-direction: column; gap: .75rem; max-height: 520px; overflow-y: auto; padding: .25rem; }
.advisor-message { max-width: 82%; padding: .8rem 1rem; border-radius: 14px; overflow-wrap: anywhere; }
.advisor-message p { margin: 0 0 .35rem; font-size: .92rem; }
.advisor-message small { opacity: .7; font-size: .7rem; }
.advisor-message.is-mine { align-self: flex-end; background: var(--brand); color: #fff; border-bottom-right-radius: 4px; }
.advisor-message.is-other { align-self: flex-start; background: #f0f3f5; color: var(--ink); border-bottom-left-radius: 4px; }
.message-scope-badge { display: inline-flex; align-items: center; padding: .15rem .42rem; border-radius: 999px; background: rgba(255, 255, 255, .2); font-size: .64rem; font-weight: 700; }
.advisor-message.is-other .message-scope-badge { background: #fff; color: var(--brand); }

.group-header { background: linear-gradient(135deg, #f6fbfa 0%, #f8f9ff 100%); }
.group-workspace-summary { display: block; cursor: pointer; list-style: none; }
.group-workspace-summary::-webkit-details-marker { display: none; }
.group-panel-toggle { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 38px; padding: .35rem .7rem; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--brand); font-size: .78rem; font-weight: 700; }
.group-panel-toggle i { transition: transform .18s ease; }
.group-panel-toggle .when-open { display: none; }
.group-workspace-card[open] .group-panel-toggle i { transform: rotate(180deg); }
.group-workspace-card[open] .group-panel-toggle .when-open { display: inline; }
.group-workspace-card[open] .group-panel-toggle .when-closed { display: none; }
.group-member-list { display: flex; flex-wrap: wrap; gap: .55rem; }
.group-member-pill { display: flex; align-items: center; gap: .55rem; padding: .5rem .7rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.group-member-pill .avatar { width: 31px; height: 31px; border-radius: 9px; font-size: .72rem; }
.group-member-pill strong, .group-member-pill small { display: block; }
.group-member-pill strong { font-size: .8rem; }
.group-member-pill small { color: var(--muted); font-size: .68rem; }
.group-member-pill.is-leader { border-color: #e8bd5e; background: #fffaf0; }
.group-message-form { background: #fafbfc; }
.teacher-communication-section { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 5px 18px rgba(20, 55, 48, .045); }
.teacher-individual-section { border-top: 4px solid #438d80; background: #f8fcfb; }
.teacher-group-section { border-top: 4px solid #6676b9; background: #f9faff; }
.teacher-section-heading { display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; border-bottom: 1px solid var(--line); }
.teacher-individual-section .teacher-section-heading { background: linear-gradient(90deg, #edf8f5, #f8fcfb); }
.teacher-group-section .teacher-section-heading { background: linear-gradient(90deg, #f0f2fc, #fafaff); }
.teacher-section-content { padding: .8rem; }
.teacher-section-divider { display: flex; align-items: center; gap: .8rem; margin: 1.15rem 0; color: #71817e; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.teacher-section-divider::before, .teacher-section-divider::after { content: ''; height: 1px; flex: 1; background: linear-gradient(90deg, transparent, #cbd7d4); }
.teacher-section-divider::after { background: linear-gradient(90deg, #cbd7d4, transparent); }
.teacher-section-divider span { display: inline-flex; align-items: center; padding: .3rem .65rem; border: 1px solid #d8e1df; border-radius: 999px; background: #fff; white-space: nowrap; }
.teacher-message-purpose { display: flex; align-items: flex-start; gap: .45rem; margin-bottom: .65rem; padding: .55rem .6rem; border: 1px solid #cfe1dc; border-radius: 8px; background: #eef8f5; color: #41645d; font-size: .68rem; line-height: 1.4; }
.teacher-message-purpose i { margin-top: .08rem; color: #1f806d; }
.group-recipient-choices { display: grid; gap: .35rem; max-height: 190px; overflow-y: auto; padding: .55rem; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.group-recipient-choices .message-recipient { padding: .45rem .55rem; }
.ungrouped-message-card { overflow: hidden; }
.ungrouped-message-card > summary { display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; cursor: pointer; list-style: none; }
.ungrouped-message-card > summary::-webkit-details-marker { display: none; }
.ungrouped-message-card > summary::after { content: '\F282'; font-family: 'bootstrap-icons'; color: var(--muted); transition: transform .15s ease; }
.ungrouped-message-card[open] > summary::after { transform: rotate(180deg); }
.ungrouped-message-card > summary strong,
.ungrouped-message-card > summary small { display: block; }
.ungrouped-message-card > summary small { color: var(--muted); font-size: .72rem; }

.student-number-link {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    min-height: 25px;
    margin-top: .16rem;
    padding: .2rem .42rem;
    border: 1px solid #8fc6bf;
    border-radius: 6px;
    background: #f4fbf9;
    color: var(--brand);
    font: inherit;
    font-size: .72rem;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    transition: background .14s ease, border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}
.student-number-link i { font-size: .78rem; }
.student-number-link:hover { color: #fff; border-color: var(--brand); background: var(--brand); box-shadow: 0 3px 8px rgba(10, 97, 87, .16); transform: translateY(-1px); }
.student-number-link:focus-visible { outline: 3px solid rgba(10, 97, 87, .18); outline-offset: 1px; }

.project-2209-check {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .55rem .65rem;
    border: 1px solid #f1d38a;
    border-radius: .6rem;
    background: #fffaf0;
    cursor: pointer;
}
.project-2209-check strong,
.project-2209-check small { display: block; }
.project-2209-check strong { color: #74520b; font-size: .82rem; }
.project-2209-check small { margin-top: .1rem; color: #7b6a45; font-size: .74rem; }

.teaching-panel { border-top-width: 3px; }
.teaching-panel .teaching-panel-header { padding: .78rem 1rem !important; }
.teaching-panel .teaching-panel-header small { font-size: .72rem; }
.teaching-panel .teaching-panel-count { border: 1px solid currentColor; }
.teaching-panel tbody tr { transition: background-color .12s ease; }
.teaching-panel-first { border-top-color: #d89216; }
.teaching-panel-first .teaching-panel-header { background: #fff7e5; color: #76500d; border-bottom-color: #f1d49c !important; }
.teaching-panel-first .teaching-panel-header small { color: #8a6729; }
.teaching-panel-first .teaching-panel-count { background: #fff; color: #9a6810; }
.teaching-panel-first tbody { background: #fffdfa; }
.teaching-panel-first .table-hover > tbody > tr:hover > * { --bs-table-bg-state: #fff5dc; }
.teaching-panel-second { border-top-color: #5968bd; }
.teaching-panel-second .teaching-panel-header { background: #f0f2ff; color: #3f4d9b; border-bottom-color: #d6daf5 !important; }
.teaching-panel-second .teaching-panel-header small { color: #6771a5; }
.teaching-panel-second .teaching-panel-count { background: #fff; color: #4e5cae; }
.teaching-panel-second tbody { background: #fcfcff; }
.teaching-panel-second .table-hover > tbody > tr:hover > * { --bs-table-bg-state: #eef0ff; }
.observation-avatar { width: 56px; height: 56px; border-radius: 16px; font-size: 1.15rem; }
.observation-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; }
.observation-summary > div { padding: .75rem 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.observation-summary strong, .observation-summary span { display: block; }
.observation-summary strong { color: var(--brand); font-size: 1.2rem; }
.observation-summary span { color: var(--muted); font-size: .72rem; }
.profile-avatar-sm { width: 36px; height: 36px; min-width: 36px; font-size: .75rem; }

.attendance-meeting-completed { border-left: 5px solid #198754 !important; }
.attendance-meeting-completed .accordion-button { background: #eef9f3; }
.attendance-meeting-completed .accordion-button:not(.collapsed) { background: #dcf3e7; color: #145c38; box-shadow: inset 0 -1px 0 rgba(25, 135, 84, .18); }
.attendance-meeting-completed .accordion-body { background: #f6fcf8; border-top: 1px solid #ccebd9; }
.attendance-meeting-pending { border-left: 5px solid #e5a100 !important; }
.attendance-meeting-pending .accordion-button { background: #fffaf0; }
.attendance-meeting-pending .accordion-button:not(.collapsed) { background: #fff3d6; color: #725100; box-shadow: inset 0 -1px 0 rgba(229, 161, 0, .2); }
.attendance-meeting-pending .accordion-body { background: #fffdf7; border-top: 1px solid #f6dfaa; }
.meeting-minutes { display: grid; gap: .55rem; padding: .75rem; border-radius: 10px; background: #f6f8fb; border: 1px solid var(--line); }
.meeting-minutes strong { display: block; margin-bottom: .2rem; font-size: .78rem; color: var(--brand); }
.meeting-minutes p { margin: 0; font-size: .82rem; color: var(--text); }
.observation-details { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: .55rem .7rem; font-size: .8rem; }
.observation-details dt { color: var(--muted); font-weight: 500; }
.observation-details dd { margin: 0; overflow-wrap: anywhere; font-weight: 600; }
.observation-note-list { display: grid; gap: .6rem; max-height: 360px; overflow-y: auto; }
.observation-note { padding: .75rem; border: 1px solid var(--line); border-radius: 11px; background: #fafbfc; }
.observation-note p { font-size: .84rem; overflow-wrap: anywhere; }

.table > :not(caption) > * > * { padding: .9rem .8rem; border-bottom-color: #edf0f2; vertical-align: middle; }
.table thead th { color: #6b7280; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; white-space: nowrap; }
.avatar { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand); font-weight: 800; flex: 0 0 auto; }
.avatar.has-photo, .profile-avatar.has-photo { overflow: hidden; background: #eef1f4; }
.avatar.has-photo img, .profile-avatar.has-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.badge-soft-success { background: #e8f6ef; color: #16794c; }
.badge-soft-warning { background: #fff4db; color: #946200; }
.badge-soft-primary { background: #eaf0ff; color: #3158b8; }
.badge-soft-secondary { background: #f0f1f3; color: #5c6370; }

.quota-box { min-width: 185px; display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
.quota-box .form-control { min-height: 34px; padding: .3rem .45rem; font-size: .85rem; }
.quota-label { font-size: .68rem; color: var(--muted); display: block; }
.empty-state { padding: 4rem 1rem; text-align: center; color: var(--muted); }
.empty-state i { font-size: 2.5rem; color: #b9c2c9; }
.profile-avatar { width: 78px; height: 78px; border-radius: 22px; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand); font-size: 1.65rem; font-weight: 800; }
.loading-cover { min-height: 300px; display: grid; place-items: center; }
.modal-content { border: 0; border-radius: 18px; box-shadow: 0 24px 80px rgba(16,24,40,.18); }
.modal-header, .modal-footer { border-color: var(--line); }

/* Uygulama genelinde kompakt ve sade yoğunluk */
.sidebar { width: 232px; padding: 1rem .75rem; }
.sidebar .brand-mark { width: 36px; height: 36px; border-radius: 10px; font-size: .86rem; }
.sidebar-brand { gap: .65rem; padding: .1rem .35rem 1rem; }
.sidebar-brand strong { font-size: .9rem; }
.sidebar .nav-link { border-radius: 8px; padding: .55rem .65rem; margin-bottom: .12rem; gap: .6rem; font-size: .84rem; }
.sidebar .nav-link i { font-size: .92rem; }
.sidebar-user { padding: .75rem .35rem 0; }
.main-wrap { margin-left: 232px; }
.topbar { min-height: 60px; }
.content { padding: clamp(.9rem, 2vw, 1.35rem); }
.content-inner { max-width: 1500px; }

.content-inner .page-title { font-size: 1.45rem; margin-bottom: .25rem !important; }
.content-inner .eyebrow { font-size: .66rem; letter-spacing: .08em; }
.content-inner .h4 { font-size: 1.2rem; }
.content-inner .h5 { font-size: 1rem; }
.content-inner .h6 { font-size: .88rem; }
.content-inner p { line-height: 1.4; }
.content-inner > .mb-4,
.content-inner section.mb-4 { margin-bottom: 1rem !important; }
.content-inner .mb-3 { margin-bottom: .75rem !important; }
.content-inner .row.g-4 { --bs-gutter-x: 1rem; --bs-gutter-y: 1rem; }
.content-inner .row.g-3 { --bs-gutter-x: .75rem; --bs-gutter-y: .75rem; }

.stat-card, .panel-card { border-radius: 11px; box-shadow: 0 3px 14px rgba(16, 24, 40, .035); }
.stat-card { padding: .85rem; }
.stat-icon { width: 36px; height: 36px; border-radius: 9px; font-size: 1rem; }
.stat-value { font-size: 1.35rem; }
.panel-card.p-4 { padding: 1rem !important; }
.panel-card.p-3 { padding: .8rem !important; }
.panel-card .p-4 { padding: 1rem !important; }
.panel-card .p-3 { padding: .8rem !important; }

.active-term-card { padding: 1.15rem; border-radius: 13px; box-shadow: 0 8px 24px rgba(7, 71, 64, .15); }
.term-metrics { gap: .4rem; }
.term-metrics > div { padding: .55rem; border-radius: 9px; }
.term-metrics strong { font-size: 1.15rem; }
.selection-window-banner { padding: .85rem 1rem; border-radius: 11px; }
.selection-schedule { padding: .55rem .75rem; border-radius: 8px; }

.app-shell .form-control,
.app-shell .form-select { min-height: 37px; padding: .38rem .6rem; font-size: .84rem; border-radius: 7px; }
.app-shell textarea.form-control { line-height: 1.4; }
.app-shell .form-label { margin-bottom: .3rem; font-size: .79rem; }
.app-shell .form-text { margin-top: .25rem; font-size: .7rem; }
.app-shell .input-group-text { padding: .38rem .6rem; }
.content-inner .btn:not(.btn-sm):not(.btn-lg) { padding: .4rem .7rem; font-size: .82rem; border-radius: 7px; }
.content-inner .btn-sm { padding: .28rem .52rem; font-size: .74rem; border-radius: 6px; }
.content-inner .badge { font-size: .66rem; padding: .32rem .5rem; }

.table { font-size: .81rem; }
.table > :not(caption) > * > * { padding: .56rem .62rem; }
.table thead th { font-size: .64rem; letter-spacing: .045em; }
.avatar { width: 33px; height: 33px; border-radius: 9px; font-size: .74rem; }
.profile-avatar-sm { width: 32px; height: 32px; min-width: 32px; font-size: .68rem; }
.quota-box { min-width: 165px; }

.accordion-button { padding: .72rem .85rem; font-size: .84rem; }
.accordion-body { padding: .8rem; }
.alert { padding: .65rem .8rem; margin-bottom: .75rem; border-radius: 9px; font-size: .82rem; }
.empty-state { padding: 2.4rem .75rem; }
.empty-state i { font-size: 2rem; }
.loading-cover { min-height: 220px; }

.document-student-panel { border-radius: 11px; padding: .75rem; }
.document-history-item { padding: .5rem .6rem; border-radius: 8px; }
.document-feedback-item { padding: .6rem .7rem; }
.message-recipient { padding: .48rem .6rem; border-radius: 8px; }
.advisor-message-thread { gap: .5rem; max-height: 440px; }
.advisor-message { padding: .58rem .75rem; border-radius: 10px; }
.advisor-message p { font-size: .84rem; }
.group-workspace-card { margin-bottom: 1rem !important; }
.group-workspace-summary { padding: .85rem !important; }
.group-member-list { gap: .4rem; }
.group-member-pill { gap: .4rem; padding: .38rem .52rem; border-radius: 8px; }
.group-panel-toggle { min-height: 32px; padding: .25rem .55rem; border-radius: 7px; }
.ungrouped-message-card > summary { padding: .65rem .75rem; }

.observation-summary { gap: .45rem; }
.observation-summary > div { padding: .55rem .7rem; border-radius: 9px; }
.observation-summary strong { font-size: 1rem; }
.observation-note { padding: .55rem; border-radius: 8px; }
.decision-person { gap: .65rem; padding: .7rem; border-radius: 10px; }
.meeting-minutes { gap: .4rem; padding: .55rem; border-radius: 8px; }

.modal-content { border-radius: 12px; }
.modal-header { padding: .8rem 1rem; }
.modal-body { padding: 1rem; }
.modal-footer { padding: .7rem 1rem; }

.help-hero {
    display: grid;
    grid-template-columns: minmax(280px, .85fr) minmax(360px, 1.15fr);
    align-items: center;
    min-height: 260px;
    overflow: hidden;
    border: 1px solid #dce9e6;
    border-radius: 15px;
    background: linear-gradient(135deg, #f3faf8 0%, #fff 62%);
    box-shadow: 0 8px 28px rgba(12, 75, 68, .07);
}
.help-hero-copy { padding: 1.55rem 0 1.55rem 1.55rem; }
.help-hero h1 { margin: 0 0 .55rem; color: #143f39; font-size: clamp(1.55rem, 3vw, 2.3rem); font-weight: 800; letter-spacing: -.035em; }
.help-hero p { max-width: 520px; margin: 0; color: #607773; font-size: .9rem; }
.help-hero img { display: block; width: 100%; height: 260px; object-fit: contain; object-position: right center; }
.help-hero-meta { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.help-hero-meta span { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .55rem; border: 1px solid #cde1dc; border-radius: 999px; background: #fff; color: #315d56; font-size: .72rem; font-weight: 700; }
.help-role-tabs { display: flex; gap: .4rem; margin-bottom: .75rem; padding: .3rem; overflow-x: auto; border: 1px solid #dfe8e6; border-radius: 10px; background: #f5f8f7; }
.help-role-tabs .btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; flex: 1 0 max-content; border: 0; color: #667b77; font-size: .78rem; font-weight: 700; }
.help-role-tabs .btn.active { background: #fff; color: var(--brand); box-shadow: 0 3px 10px rgba(12, 75, 68, .09); }
.help-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.help-search { width: min(340px, 100%); }
.help-step-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.help-step-card { position: relative; display: grid; grid-template-columns: auto 1fr; gap: .75rem; min-height: 164px; padding: 1rem; overflow: hidden; border: 1px solid #dfe9e7; border-radius: 12px; background: #fff; box-shadow: 0 3px 14px rgba(16, 24, 40, .035); }
.help-step-card::after { content: ''; position: absolute; right: -25px; top: -25px; width: 82px; height: 82px; border-radius: 50%; background: #f2f8f6; }
.help-step-number { position: absolute; z-index: 1; top: .65rem; right: .78rem; color: #afc4c0; font-size: 1.7rem; font-weight: 800; line-height: 1; }
.help-step-icon { display: grid; place-items: center; align-self: start; width: 38px; height: 38px; border-radius: 10px; background: #e3f1ee; color: var(--brand); font-size: 1.05rem; }
.help-step-copy { min-width: 0; }
.help-step-copy h3 { margin: .15rem 2rem .4rem 0; color: #244842; font-size: .94rem; font-weight: 800; }
.help-step-copy p { margin: 0 0 .55rem; color: #687b78; font-size: .79rem; }
.help-step-copy ul { display: grid; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.help-step-copy li { position: relative; padding-left: 1.15rem; color: #4e6561; font-size: .74rem; line-height: 1.35; }
.help-step-copy li::before { content: '\F26E'; position: absolute; left: 0; top: .03rem; color: #319079; font-family: 'bootstrap-icons'; font-size: .78rem; }
.help-no-result { display: grid; place-items: center; gap: .35rem; padding: 2rem; border: 1px dashed #cbdad7; border-radius: 12px; color: #758783; text-align: center; }
.help-no-result i { color: #9eb5b0; font-size: 1.7rem; }
.help-no-result strong { color: #405c57; }
.help-document-guide { display: grid; grid-template-columns: minmax(360px, 1.1fr) minmax(280px, .9fr); align-items: center; }
.help-document-guide > img { display: block; width: 100%; height: 260px; object-fit: contain; background: #f2f8f7; }
.help-document-guide > div { padding: 1.2rem; }
.help-document-guide h2 { margin: 0 0 .5rem; color: #244842; font-size: 1.1rem; font-weight: 800; }
.help-document-guide p { margin-bottom: .75rem; color: #647975; font-size: .8rem; }
.help-callout { display: flex; align-items: flex-start; gap: .65rem; padding: .7rem; border: 1px solid #efd18a; border-radius: 9px; background: #fffaf0; color: #715414; font-size: .76rem; }
.help-callout > i { color: #bd8416; font-size: 1.05rem; }
.help-faq-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: #e3f1ee; color: var(--brand); font-size: 1rem; }
.help-document-guide + .panel-card .accordion-item { background: transparent; }
.help-document-guide + .panel-card .accordion-button { background: transparent; box-shadow: none; font-weight: 700; }
.public-help-shell { min-height: 100vh; background: #f3f7f6; }
.public-help-header { position: sticky; z-index: 1020; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 66px; padding: .65rem clamp(1rem, 4vw, 2.5rem); border-bottom: 1px solid #d9e5e2; background: rgba(9, 63, 58, .97); color: #fff; box-shadow: 0 5px 18px rgba(9, 63, 58, .12); }
.public-help-header .brand-mark { width: 38px; height: 38px; border-radius: 10px; font-size: .78rem; }
.public-help-header strong { font-size: .88rem; }
.public-help-header small { display: block; color: #b7d2cd; font-size: .68rem; }
.public-help-content { padding: 1.2rem; }
.public-help-content .content-inner { max-width: 1180px; margin: 0 auto; }
.nav-unread-badge { display: inline-grid; place-items: center; min-width: 19px; height: 19px; margin-left: auto; padding: 0 .3rem; border-radius: 999px; background: #d9a42e; color: #fff; font-size: .62rem; font-weight: 800; }
.topbar-unread-badge { position: absolute; top: -4px; right: -4px; display: grid; place-items: center; min-width: 18px; height: 18px; padding: 0 .25rem; border: 2px solid #fff; border-radius: 999px; background: #d49418; color: #fff; font-size: .58rem; font-weight: 800; line-height: 1; }
.announcement-channel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.announcement-channel-grid > label { display: flex; align-items: flex-start; gap: .55rem; min-height: 84px; padding: .7rem; border: 1px solid #dfe8e6; border-radius: 10px; background: #fafcfb; cursor: pointer; }
.announcement-channel-grid > label:has(input:checked) { border-color: #6fb4a7; background: #eef8f5; box-shadow: 0 0 0 2px rgba(17, 111, 99, .08); }
.announcement-channel-grid input { margin-top: .1rem; }
.announcement-channel-grid span { min-width: 0; }
.announcement-channel-grid i { margin-right: .35rem; color: var(--brand); }
.announcement-channel-grid strong, .announcement-channel-grid small { display: block; }
.announcement-channel-grid strong { margin-bottom: .2rem; color: #31504b; font-size: .8rem; }
.announcement-channel-grid small { color: #71817e; font-size: .68rem; line-height: 1.35; }
.announcement-history-list, .user-announcement-list { display: grid; gap: .65rem; }
.management-announcements-panel { border: 1px solid #0f7569; background: linear-gradient(135deg, #0b5d54 0%, #14786c 100%); box-shadow: 0 8px 24px rgba(9, 80, 71, .16); }
.management-announcements-head { display: flex; align-items: center; gap: .7rem; margin-bottom: .75rem; color: #fff; }
.management-announcements-head .eyebrow { color: #bfe0da; }
.management-announcements-icon { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 10px; background: #f0bd45; color: #664604; font-size: 1rem; box-shadow: 0 4px 12px rgba(0, 0, 0, .13); }
.management-announcements-count { padding: .32rem .55rem; border: 1px solid rgba(255, 255, 255, .28); border-radius: 999px; background: rgba(255, 255, 255, .13); color: #fff; font-size: .68rem; font-weight: 750; }
.management-announcements-panel .user-announcement-card { border-color: rgba(255, 255, 255, .55); box-shadow: 0 4px 13px rgba(0, 0, 0, .09); }
.management-announcements-panel .empty-state { border-radius: 10px; background: rgba(255, 255, 255, .94); }
.announcement-history-card { overflow: hidden; border: 1px solid #dfe8e6; border-radius: 11px; background: #fff; box-shadow: 0 3px 13px rgba(16, 24, 40, .035); }
.announcement-history-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .8rem .9rem .65rem; }
.announcement-history-head h3 { margin: 0 0 .3rem; color: #284b45; font-size: .88rem; font-weight: 800; }
.announcement-history-head p { display: -webkit-box; overflow: hidden; margin: 0; color: #647672; font-size: .77rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.announcement-history-meta { display: flex; flex-wrap: wrap; gap: .8rem; padding: .5rem .9rem; border-top: 1px solid #edf1f0; background: #f9fbfa; color: #6e7f7c; font-size: .68rem; }
.announcement-locked { display: grid; place-items: center; flex: 0 0 auto; width: 29px; height: 29px; border-radius: 8px; background: #f0f2f1; color: #8c9996; }
.user-announcement-card { overflow: hidden; border: 1px solid #dfe8e6; border-radius: 11px; background: #fff; box-shadow: 0 3px 13px rgba(16, 24, 40, .035); }
.user-announcement-card.is-unread { border-left: 4px solid #d9a42e; background: #fffdfa; }
.user-announcement-card summary { display: flex; align-items: center; gap: .7rem; padding: .82rem .9rem; cursor: pointer; list-style: none; }
.user-announcement-card summary::-webkit-details-marker { display: none; }
.user-announcement-card summary strong, .user-announcement-card summary small { display: block; }
.user-announcement-card summary strong { margin-bottom: .15rem; color: #294c46; font-size: .84rem; }
.user-announcement-card summary small { color: #7a8986; font-size: .68rem; }
.announcement-status-dot { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: #b7c5c2; }
.user-announcement-card.is-unread .announcement-status-dot { background: #d9a42e; box-shadow: 0 0 0 4px #fff2d2; }
.announcement-chevron { color: #83918e; transition: transform .15s ease; }
.user-announcement-card[open] .announcement-chevron { transform: rotate(180deg); }
.user-announcement-body { padding: .8rem .9rem .9rem 2.55rem; border-top: 1px solid #edf1f0; background: #fbfcfc; }
.user-announcement-body p { margin: 0 0 .55rem; color: #405b56; font-size: .82rem; line-height: 1.55; }
.user-announcement-body small { color: #7a8986; font-size: .68rem; }
.admin-request-list { display: grid; gap: .6rem; }
.admin-request-card { overflow: hidden; border: 1px solid #dfe8e6; border-radius: 11px; background: #fff; box-shadow: 0 3px 13px rgba(16, 24, 40, .035); }
.admin-request-card.is-unread { border-left: 4px solid #d9a42e; background: #fffdfa; }
.admin-request-card summary { display: flex; align-items: center; gap: .65rem; padding: .75rem .85rem; cursor: pointer; list-style: none; }
.admin-request-card summary::-webkit-details-marker { display: none; }
.admin-request-card summary strong, .admin-request-card summary small { display: block; }
.admin-request-card summary strong { margin-bottom: .12rem; color: #294c46; font-size: .82rem; }
.admin-request-card summary small { color: #788986; font-size: .67rem; }
.request-person-icon { display: grid; place-items: center; flex: 0 0 auto; width: 32px; height: 32px; border-radius: 9px; background: #e4f1ee; color: var(--brand); }
.admin-request-card[open] .announcement-chevron { transform: rotate(180deg); }
.admin-request-body { padding: .75rem .85rem .85rem 3.3rem; border-top: 1px solid #edf1f0; background: #fbfcfc; }
.admin-request-body p { margin: 0; color: #405b56; font-size: .8rem; line-height: 1.5; }
.sent-admin-request-list { display: grid; gap: .5rem; }
.sent-admin-request { padding: .65rem .7rem; border: 1px solid #e1e9e7; border-radius: 9px; background: #fafcfb; }
.sent-admin-request > div { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.sent-admin-request strong { color: #35534e; font-size: .78rem; }
.sent-admin-request small { margin-left: auto; color: #7c8c89; font-size: .66rem; }
.sent-admin-request p { margin: .45rem 0 0; color: #687a77; font-size: .73rem; line-height: 1.4; }
.registration-requests-panel { overflow: hidden; border-left: 4px solid #d9a42e; }
.registration-requests-toggle { width: 100%; display: flex; align-items: center; gap: .7rem; padding: .8rem 1rem; border: 0; background: #fffdf7; color: #294c46; }
.registration-requests-toggle strong, .registration-requests-toggle small { display: block; }
.registration-requests-toggle strong { font-size: .88rem; }
.registration-requests-toggle small { margin-top: .1rem; color: #798984; font-size: .68rem; }
.registration-requests-icon { display: inline-grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; background: #fff0c4; color: #9b6b00; }
.registration-requests-chevron { color: #7c8c89; transition: transform .2s ease; }
.registration-requests-toggle[aria-expanded="true"] .registration-requests-chevron { transform: rotate(180deg); }
.registration-requests-body { padding: .85rem 1rem 1rem; border-top: 1px solid #eee7d7; background: #fff; }
.registration-request-list { display: grid; gap: .5rem; }
.registration-request-card { display: grid; grid-template-columns: minmax(210px, 1.2fr) minmax(190px, 1fr) auto auto; align-items: center; gap: .7rem; padding: .65rem .7rem; border: 1px solid #e4eae8; border-radius: 10px; background: #fbfcfc; }
.registration-request-person { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.registration-request-person strong, .registration-request-person small, .registration-request-contact a, .registration-request-contact small { display: block; }
.registration-request-person strong { color: #31534d; font-size: .8rem; }
.registration-request-person small, .registration-request-contact a, .registration-request-contact small { font-size: .68rem; }
.registration-request-contact small { color: #7b8987; }
.registration-request-history { border-top: 1px solid #edf1f0; padding-top: .7rem; }
.registration-request-history > summary { cursor: pointer; color: #49645f; font-size: .75rem; font-weight: 700; }
.registration-student-note { min-height: 42px; padding: .7rem; border: 1px solid #e3e9e7; border-radius: 8px; background: #f8faf9; color: #526963; font-size: .78rem; white-space: pre-wrap; }
.user-request-toggle { display: flex; align-items: center; gap: .7rem; width: 100%; padding: 0; border: 0; background: transparent; color: #294c46; }
.user-request-toggle strong, .user-request-toggle small { display: block; }
.user-request-toggle strong { margin-bottom: .15rem; font-size: .9rem; }
.user-request-toggle small { color: #71817e; font-size: .72rem; line-height: 1.35; }
.user-request-toggle-chevron { color: #748682; transition: transform .18s ease; }
.user-request-toggle[aria-expanded="true"] .user-request-toggle-chevron { transform: rotate(180deg); }
.user-request-form-body { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid #e5ecea; }

.btn-outline-brand { --bs-btn-color: var(--brand); --bs-btn-border-color: #90bbb4; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--brand); --bs-btn-hover-border-color: var(--brand); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--brand-dark); --bs-btn-active-border-color: var(--brand-dark); }
.resource-hero { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 150px; padding: 1.25rem 1.4rem; overflow: hidden; border: 1px solid #d8e8e4; border-radius: 14px; background: linear-gradient(135deg, #f8fcfb 0%, #e7f4f1 100%); }
.resource-hero h1 { margin: 0 0 .35rem; color: #153f3a; font-size: clamp(1.55rem, 3vw, 2.15rem); font-weight: 800; letter-spacing: -.035em; }
.resource-hero p { max-width: 720px; margin: 0; color: #5f7470; font-size: .86rem; line-height: 1.55; }
.resource-hero-icon { display: grid; place-items: center; flex: 0 0 auto; width: 88px; height: 88px; border: 1px solid rgba(10, 97, 87, .14); border-radius: 26px; background: rgba(255, 255, 255, .75); color: var(--brand); font-size: 2.25rem; transform: rotate(-3deg); box-shadow: 0 12px 30px rgba(10, 97, 87, .09); }
.resource-current-rule { display: flex; align-items: flex-start; gap: .7rem; padding: .8rem .9rem; border: 1px solid #efd18a; border-radius: 11px; background: #fffaf0; color: #715414; }
.resource-current-rule > i { margin-top: .05rem; color: #b67d0d; font-size: 1rem; }
.resource-current-rule strong, .resource-current-rule span { display: block; }
.resource-current-rule strong { margin-bottom: .08rem; font-size: .8rem; }
.resource-current-rule span { font-size: .73rem; line-height: 1.45; }
.resource-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.resource-section-heading > div { display: flex; align-items: center; gap: .55rem; }
.resource-section-heading h2 { margin: 0; color: #294b46; font-size: 1rem; font-weight: 800; }
.resource-section-heading > small { color: #7b8b88; font-size: .7rem; }
.resource-step { display: inline-grid; place-items: center; min-width: 32px; height: 24px; border-radius: 7px; background: #dfeeea; color: var(--brand); font-size: .65rem; font-weight: 850; letter-spacing: .05em; }
.resource-file-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.resource-file-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; min-height: 104px; padding: .8rem; border: 1px solid #dfe8e6; border-radius: 11px; background: #fff; box-shadow: 0 3px 14px rgba(16, 24, 40, .035); }
.resource-file-card:first-child { grid-column: span 2; }
.resource-file-icon { display: grid; place-items: center; width: 43px; height: 43px; flex: 0 0 auto; border-radius: 11px; font-size: 1.15rem; }
.resource-file-pdf { background: #fff0ef; color: #bd3f35; }
.resource-file-word { background: #edf3ff; color: #3b64b6; }
.resource-file-design { background: #e8f5f1; color: #16715f; }
.resource-file-form { background: #fff7df; color: #9d7015; }
.resource-file-example { background: #f1edff; color: #6852af; }
.resource-file-copy { min-width: 0; }
.resource-file-copy small { display: block; margin-bottom: .15rem; color: #84918f; font-size: .62rem; font-weight: 750; letter-spacing: .04em; }
.resource-file-copy h2 { margin: 0 0 .22rem; color: #304f4a; font-size: .84rem; font-weight: 800; }
.resource-file-copy p { margin: 0; color: #72817e; font-size: .69rem; line-height: 1.4; }
.resource-download { white-space: nowrap; font-size: .7rem; font-weight: 750; }
.resource-course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.resource-course-card { overflow: hidden; border: 1px solid #dfe8e6; border-top: 4px solid; border-radius: 12px; background: #fff; box-shadow: 0 4px 16px rgba(16, 24, 40, .04); }
.resource-course-card header { display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; border-bottom: 1px solid #e8eeec; }
.resource-course-card header > span { display: grid; place-items: center; width: 37px; height: 37px; border-radius: 10px; font-size: 1rem; }
.resource-course-card header small, .resource-course-card header h2 { display: block; }
.resource-course-card header small { margin-bottom: .08rem; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.resource-course-card header h2 { margin: 0; font-size: .92rem; font-weight: 800; }
.resource-course-design { border-top-color: #d89216; }
.resource-course-design header { background: #fffaf0; color: #76500d; }
.resource-course-design header > span { background: #fff0c9; color: #9a6810; }
.resource-course-graduation { border-top-color: #5968bd; }
.resource-course-graduation header { background: #f4f5ff; color: #3f4d9b; }
.resource-course-graduation header > span { background: #e4e7ff; color: #4e5cae; }
.resource-check-list { display: grid; gap: .5rem; margin: 0; padding: .85rem 1rem .95rem; list-style: none; }
.resource-check-list li { position: relative; padding-left: 1.25rem; color: #536b66; font-size: .73rem; line-height: 1.45; }
.resource-check-list li::before { content: '\F26E'; position: absolute; left: 0; top: .02rem; color: #319079; font-family: 'bootstrap-icons'; font-size: .8rem; }
.resource-template-guide, .resource-checklist-section { padding: 1rem; }
.resource-section-intro { max-width: 960px; margin: -.15rem 0 .8rem; color: #687d79; font-size: .76rem; line-height: 1.5; }
.resource-template-columns, .resource-final-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.resource-template-box { padding: .8rem .9rem; border: 1px solid #e0e8e6; border-radius: 10px; background: #fafcfb; }
.resource-template-box.keep { border-left: 4px solid #23866f; }
.resource-template-box.shorten { border-left: 4px solid #d5961d; }
.resource-template-box h3 { display: flex; align-items: center; gap: .42rem; margin: 0 0 .55rem; color: #365650; font-size: .79rem; font-weight: 800; }
.resource-template-box h3 i { color: var(--brand); }
.resource-template-box ul { display: grid; gap: .3rem; margin: 0; padding-left: 1.05rem; }
.resource-template-box li { color: #647672; font-size: .69rem; line-height: 1.4; }
.resource-mini-note { margin-top: .65rem; padding: .55rem .6rem; border-radius: 8px; background: #fff7df; color: #785b1f; font-size: .67rem; line-height: 1.4; }
.resource-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.resource-detail-card { display: flex; align-items: flex-start; gap: .75rem; padding: .85rem .9rem; }
.resource-detail-icon { display: grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px; border-radius: 10px; background: #e3f1ee; color: var(--brand); }
.resource-detail-card h2 { margin: .05rem 0 .28rem; color: #34534e; font-size: .82rem; font-weight: 800; }
.resource-detail-card p { margin: 0; color: #6b7d79; font-size: .7rem; line-height: 1.48; }
.resource-final-checks > div { padding: .75rem .85rem; border: 1px solid #e2e9e7; border-radius: 10px; background: #fafcfb; }
.resource-final-checks h3 { display: flex; align-items: center; gap: .45rem; margin: 0 0 .55rem; color: #34534e; font-size: .8rem; font-weight: 800; }
.resource-final-checks h3 i { color: var(--brand); }
.resource-final-checks label { display: flex; align-items: flex-start; gap: .45rem; margin: .38rem 0; color: #657773; font-size: .69rem; line-height: 1.4; }
.resource-final-checks label i { flex: 0 0 auto; color: #5d8d84; }
.resource-writing-notes { overflow: hidden; }
.resource-writing-notes summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; cursor: pointer; list-style: none; color: #34534e; }
.resource-writing-notes summary::-webkit-details-marker { display: none; }
.resource-writing-notes summary > span { display: flex; align-items: center; gap: .55rem; font-size: .8rem; }
.resource-writing-notes summary > span i { color: var(--brand); font-size: 1rem; }
.resource-writing-notes summary > i { color: #82928f; transition: transform .18s ease; }
.resource-writing-notes[open] summary > i { transform: rotate(180deg); }
.resource-writing-notes > div { border-top: 1px solid #e7edeb; background: #fbfcfc; }

@media (max-width: 991.98px) {
    .registration-request-card { grid-template-columns: 1fr auto; }
    .registration-request-contact { grid-column: 1; }
    .auth-shell { grid-template-columns: 1fr; }
    .auth-aside { min-height: 280px; padding: 2rem; }
    .auth-copy h1 { font-size: 2.3rem; }
    .sidebar { transform: translateX(-100%); transition: transform .2s ease; box-shadow: 20px 0 60px rgba(0,0,0,.18); }
    .sidebar.open { transform: translateX(0); }
    .main-wrap { margin-left: 0; }
    .help-hero { grid-template-columns: 1fr; }
    .help-hero-copy { padding: 1.25rem 1.25rem 0; }
    .help-hero img { height: 230px; object-position: center; }
    .help-document-guide { grid-template-columns: 1fr; }
    .help-document-guide > img { height: 230px; }
    .announcement-channel-grid { grid-template-columns: 1fr; }
    .announcement-channel-grid > label { min-height: auto; }
    .resource-file-grid, .resource-course-grid, .resource-template-columns, .resource-detail-grid, .resource-final-checks { grid-template-columns: 1fr; }
    .resource-file-card:first-child { grid-column: auto; }
}

@media (max-width: 575.98px) {
    .auth-form-wrap { padding: 1.35rem; }
    .auth-aside { min-height: 235px; }
    .auth-copy p { display: none; }
    .content { padding: 1rem; }
    .panel-card { border-radius: 13px; }
    .observation-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .help-toolbar { align-items: stretch; flex-direction: column; }
    .help-search { width: 100%; }
    .help-step-list { grid-template-columns: 1fr; }
    .help-hero img { height: 190px; }
    .help-step-card { min-height: auto; }
    .help-document-guide > img { height: 190px; }
    .resource-hero { min-height: 125px; padding: 1rem; }
    .resource-hero-icon { display: none; }
    .resource-file-card { grid-template-columns: auto minmax(0, 1fr); }
    .resource-download { grid-column: 2; justify-self: start; }
    .resource-section-heading { align-items: flex-start; }
    .resource-section-heading > small { display: none; }
}

/* Dönemdeki öğrenci sayıları - hoca ekranı */
.student-pool-card { border-top-width: 3px; }
.student-pool-head { display: flex; align-items: center; gap: .7rem; padding: .7rem .9rem; border-bottom: 1px solid; }
.student-pool-head strong, .student-pool-head small { display: block; }
.student-pool-head strong { font-size: .9rem; font-weight: 700; }
.student-pool-head small { font-size: .68rem; opacity: .8; }
.student-pool-icon { display: inline-grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; background: #fff; font-size: 1rem; }
.student-pool-total { font-size: 1.55rem; font-weight: 800; line-height: 1; letter-spacing: -.03em; }
.student-pool-bar { height: 5px; background: #eef1f4; }
.student-pool-bar > div { height: 100%; transition: width .3s ease; }
.student-pool-figures { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; padding: .75rem .9rem; }
.student-pool-figures > div { display: flex; flex-direction: column; gap: .1rem; }
.student-pool-figures strong { font-size: 1.15rem; font-weight: 800; line-height: 1.1; color: var(--ink); }
.student-pool-figures span { color: var(--muted); font-size: .7rem; }
.student-pool-waiting { padding-left: .6rem; border-left: 1px solid var(--line); }
.student-pool-waiting strong { color: var(--accent); }

.student-pool-first { border-top-color: #d89216; }
.student-pool-first .student-pool-head { background: #fff7e5; color: #76500d; border-bottom-color: #f1d49c; }
.student-pool-first .student-pool-icon { color: #9a6810; }
.student-pool-first .student-pool-bar > div { background: #d89216; }
.student-pool-second { border-top-color: #5968bd; }
.student-pool-second .student-pool-head { background: #f0f2ff; color: #3f4d9b; border-bottom-color: #d6daf5; }
.student-pool-second .student-pool-icon { color: #4e5cae; }
.student-pool-second .student-pool-bar > div { background: #5968bd; }

@media (max-width: 420px) {
    .student-pool-figures { grid-template-columns: 1fr; }
    .student-pool-waiting { padding-left: 0; border-left: 0; padding-top: .5rem; border-top: 1px solid var(--line); }
}

/* ---------------------------------------------------------------
   Açılır panel tetikleyicileri - bordo aşağı ok
   Butonun kendisi sade kalır; dikkat çeken öğe aşağı ok işaretidir.
   Panel açıldığında ok 180° dönüp yukarı bakar.
   Durum rengi taşıyan toplantı kartları (.attendance-meeting-*)
   kapsam dışıdır; oradaki yeşil/sarı "yapıldı / bekliyor" demektir.
   --------------------------------------------------------------- */
.registration-requests-chevron,
.user-request-toggle-chevron {
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    box-shadow: 0 3px 10px rgba(125, 17, 40, .3);
    transition: transform .2s ease, background-color .16s ease;
}

.registration-requests-toggle:hover .registration-requests-chevron,
.user-request-toggle:hover .user-request-toggle-chevron {
    background: var(--accent-dark);
}

/* SSS: Bootstrap'in kendi ok simgesi bordo yapılır ve büyütülür */
#helpFaq .accordion-button::after {
    width: 1.4rem;
    height: 1.4rem;
    background-size: 1.4rem;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%237d1128'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

#helpFaq .accordion-button { font-weight: 700; }
#helpFaq .accordion-button:not(.collapsed) { color: var(--accent); background: var(--accent-soft); box-shadow: none; }

/* ---------------------------------------------------------------
   Başvuru durumu renklendirmesi
   Kabul ve ret, listede tek bakışta ayrılsın diye hem satır zemini
   hem de rozet belirgin renk taşır.
   --------------------------------------------------------------- */
.badge-status-accepted { background: #147a45 !important; color: #fff !important; }
.badge-status-rejected { background: var(--accent) !important; color: #fff !important; }

.application-row > td { transition: background-color .12s ease; }
.application-row-accepted > td { background: #edf9f2; box-shadow: inset 3px 0 0 #147a45; }
.application-row-accepted > td:first-child { box-shadow: inset 4px 0 0 #147a45; }
.application-row-rejected > td { background: #fdf1f3; box-shadow: inset 3px 0 0 var(--accent); }
.application-row-rejected > td:first-child { box-shadow: inset 4px 0 0 var(--accent); }
.application-row-cancelled > td { background: #f7f8f9; color: var(--muted); }

.table-hover > tbody > tr.application-row-accepted:hover > * { --bs-table-bg-state: #dff3e8; }
.table-hover > tbody > tr.application-row-rejected:hover > * { --bs-table-bg-state: #fbe4e8; }

/* Hocanın kendi kontenjan girişi */
.own-quota-panel { border-left: 3px solid var(--brand); }
.own-quota-panel .form-text { font-size: .7rem; }

/* Öğrenci ekranı: kendisini reddetmiş hoca kartı */
.advisor-card-rejected { border-color: #e8cfd5; background: #fdfafb; opacity: .92; }
.advisor-card-rejected .avatar { background: var(--accent-soft); color: var(--accent); }
.advisor-rejected-note {
    display: flex;
    align-items: flex-start;
    padding: .6rem .7rem;
    border: 1px solid #e8cfd5;
    border-radius: 10px;
    background: var(--accent-soft);
    color: var(--accent);
    font-size: .74rem;
    line-height: 1.4;
}
.advisor-rejected-note > i { margin-top: .1rem; }

/* Hoca ekranı: kararı yöneticinin verdiğini belirten kısa not */
.admin-action-note {
    padding: .18rem .45rem;
    border: 1px solid #cfe0f5;
    border-radius: 7px;
    background: #eef5fd;
    color: #2c5a8f;
    font-size: .66rem;
    line-height: 1.3;
}
