:root {
    --ttu-primary-green: #006400;
    --ttu-secondary-green: #228B22;
    --ttu-dark-green: #004D00;
    --ttu-gold: #D4AF37;
    --ttu-light-green: #F0F9F0;
    --ttu-white: #FFFFFF;
    --ttu-off-white: #F8F9FA;
    --ttu-dark-gray: #343A40;
    --ttu-medium-gray: #6C757D;
    --ttu-danger: #DC3545;
}
* { box-sizing: border-box; }
html { min-height: 100%; -webkit-text-size-adjust: 100%; }
body { background: var(--ttu-off-white); color: var(--ttu-dark-gray); font-family: "Poppins", sans-serif; font-size: .94rem; min-height: 100vh; overflow-x: hidden; }
img, svg { max-width: 100%; }
button, input, select, textarea { max-width: 100%; }
body.app-public { display: flex; flex-direction: column; }
h1, h2, h3 { color: var(--ttu-dark-green); font-family: "Cormorant Garamond", serif; font-weight: 700; }
h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1; }
h2 { font-size: 1.7rem; }
h3 { font-size: 1.25rem; margin-top: 1.25rem; }
a { color: var(--ttu-primary-green); }
.public-navbar { background: linear-gradient(105deg, var(--ttu-dark-green), var(--ttu-primary-green)); box-shadow: 0 4px 18px rgba(0,77,0,.18); padding: .6rem 1.25rem; }
.public-brand { align-items: center; color: var(--ttu-white); display: inline-flex; gap: 1rem; line-height: 1.15; max-width: 680px; text-decoration: none; }
.public-brand:hover { color: var(--ttu-white); }
.public-brand strong { display: block; font-size: clamp(.9rem, 2vw, 1.15rem); }
.public-brand small { color: #f5e6a6; display: block; font-size: .76rem; margin-top: .25rem; white-space: nowrap; }
.public-logo { background: var(--ttu-white); border: 2px solid var(--ttu-gold); border-radius: 50%; height: 68px; object-fit: cover; padding: .12rem; width: 68px; }
.hub-header { background: var(--ttu-gold); color: #253025; font-size: .82rem; }
.hub-footer { background: var(--ttu-dark-green); color: rgba(255,255,255,.86); flex: 0 0 auto; font-size: .82rem; width: 100%; }
.login-layout { background: var(--ttu-white); border: 1px solid rgba(0,100,0,.1); border-radius: 1.15rem; box-shadow: 0 20px 55px rgba(31,55,31,.14); display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr); margin: 1rem auto; max-width: 1080px; min-height: 620px; overflow: hidden; }
.login-welcome-panel { align-items: center; background: linear-gradient(145deg, #003f00, var(--ttu-primary-green) 58%, #087708); color: var(--ttu-white); display: flex; overflow: hidden; padding: 3rem; position: relative; }
.login-welcome-panel::before, .login-welcome-panel::after { border: 1px solid rgba(212,175,55,.22); border-radius: 50%; content: ""; position: absolute; }
.login-welcome-panel::before { height: 330px; right: -170px; top: -120px; width: 330px; }
.login-welcome-panel::after { bottom: -180px; height: 380px; left: -190px; width: 380px; }
.login-welcome-content { margin: 0 auto; max-width: 510px; position: relative; text-align: center; width: 100%; z-index: 1; }
.login-logo-frame { align-items: center; background: var(--ttu-white); border: 4px solid var(--ttu-gold); border-radius: 50%; box-shadow: 0 12px 30px rgba(0,0,0,.24); display: flex; height: 202px; justify-content: center; margin: 0 auto 1.35rem; overflow: hidden; padding: .2rem; width: 202px; }
.login-logo-frame img { border-radius: 50%; height: 100%; object-fit: cover; width: 100%; }
.login-welcome-label { color: #f4dfa0; font-size: .7rem; font-weight: 600; letter-spacing: .14em; margin: 0 0 .45rem; text-transform: uppercase; }
.login-welcome-content h1 { color: var(--ttu-white); font-size: clamp(2.35rem, 4vw, 3.35rem); line-height: 1.02; margin: 0 0 .7rem; }
.login-welcome-content > strong { color: var(--ttu-gold); display: block; font-size: .84rem; letter-spacing: .04em; margin-bottom: 1rem; text-transform: uppercase; }
.login-welcome-content > p:last-child { color: rgba(255,255,255,.82); font-size: .78rem; line-height: 1.8; margin: 0 auto; max-width: 450px; }
.login-form-panel { align-items: center; background: var(--ttu-white); display: flex; padding: 3rem clamp(2rem, 5vw, 4rem); }
.login-form-content { margin: 0 auto; max-width: 410px; width: 100%; }
.login-form-content .eyebrow { margin-bottom: .4rem !important; }
.login-form-content h2 { font-size: 2.35rem; margin-bottom: .4rem; }
.login-form-intro { color: var(--ttu-medium-gray); font-size: .77rem; line-height: 1.65; margin-bottom: 1.45rem; }
.login-form-panel .form-label { font-size: .78rem; }
.login-form-panel .form-control { background: #fcfdfc; min-height: 49px; transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.login-form-panel .form-control:focus { background: var(--ttu-white); }
.login-submit-button { margin-top: .35rem; min-height: 49px; }
.login-support-links { display: flex; flex-wrap: wrap; font-size: .72rem; font-weight: 600; gap: .65rem 1rem; justify-content: space-between; margin-top: 1rem; }
.login-support-links a { text-decoration: none; }
.password-reset-layout { min-height: 660px; }
.password-reset-layout .login-logo-frame { height: 150px; width: 150px; }
.password-reset-welcome-content { max-width: 530px; }
.password-reset-welcome-content h1 { font-size: clamp(2.2rem, 3.5vw, 3rem); }
.recovery-guidelines { background: rgba(0, 45, 0, .3); border: 1px solid rgba(255, 255, 255, .18); border-radius: .9rem; margin-top: 1.5rem; padding: 1.15rem 1.25rem; text-align: left; }
.recovery-guidelines h2 { color: var(--ttu-gold); font-family: "Poppins", sans-serif; font-size: .76rem; letter-spacing: .08em; margin: 0 0 .85rem; text-transform: uppercase; }
.recovery-guidelines ol { display: grid; gap: .72rem; list-style: none; margin: 0; padding: 0; }
.recovery-guidelines li { align-items: flex-start; display: grid; gap: .7rem; grid-template-columns: 28px minmax(0, 1fr); }
.recovery-guidelines li > span { align-items: center; background: var(--ttu-gold); border-radius: 50%; color: #263526; display: inline-flex; font-size: .68rem; font-weight: 700; height: 28px; justify-content: center; width: 28px; }
.recovery-guidelines li p { color: rgba(255, 255, 255, .9); font-size: .72rem; line-height: 1.55; margin: .15rem 0 0; }
.password-reset-form-content h2 { font-size: 2.2rem; }
.password-reset-notice { align-items: flex-start; background: var(--ttu-light-green); border: 1px solid #d6e8d6; border-radius: .7rem; color: #385238; display: flex; font-size: .7rem; gap: .65rem; line-height: 1.55; margin-top: 1.2rem; padding: .85rem; }
.password-reset-notice i { color: var(--ttu-primary-green); font-size: 1rem; margin-top: .05rem; }
.password-reset-notice p { margin: 0; }
.password-reset-support-link { justify-content: flex-start; }
.app-shell { --app-sidebar-width: clamp(285px, 19vw, 400px); align-items: stretch; display: flex; min-height: 100vh; min-height: 100dvh; width: 100%; }
.hub-sidebar { --bs-offcanvas-width: var(--app-sidebar-width); background: linear-gradient(180deg, #003f00 0%, var(--ttu-dark-green) 55%, #003600 100%); border: 0; color: var(--ttu-white); flex: 0 0 var(--app-sidebar-width); max-width: var(--app-sidebar-width); width: var(--app-sidebar-width); }
.sidebar-inner { display: flex; flex-direction: column; height: 100%; min-height: 100vh; min-height: 100dvh; padding: 1rem; }
.sidebar-mobile-header { border-bottom: 1px solid rgba(255,255,255,.12); }
.sidebar-brand { color: var(--ttu-white); display: block; padding: .2rem .25rem 1.2rem; text-align: center; text-decoration: none; }
.sidebar-brand:hover { color: var(--ttu-white); }
.sidebar-logo-panel { background: var(--ttu-white); border: 3px solid var(--ttu-gold); border-radius: 50%; box-shadow: 0 8px 20px rgba(0,0,0,.2); display: flex; height: 132px; justify-content: center; margin: 0 auto .8rem; overflow: hidden; padding: .2rem; width: 132px; }
.sidebar-logo { border-radius: 50%; display: block; height: 100%; object-fit: cover; width: 100%; }
.sidebar-brand-name { color: #f7e8a8; display: block; font-size: .7rem; font-weight: 600; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
.sidebar-navigation { flex: 1; padding-top: .65rem; }
.sidebar-section-label { color: rgba(255,255,255,.55); font-size: .67rem; font-weight: 600; letter-spacing: .12em; margin: 0 .75rem .6rem; text-transform: uppercase; }
.sidebar-link { align-items: center; border-left: 3px solid transparent; border-radius: .55rem; color: rgba(255,255,255,.82); display: flex; font-weight: 500; gap: .85rem; margin-bottom: .35rem; padding: .8rem .85rem; text-decoration: none; transition: background-color .18s ease, color .18s ease, transform .18s ease; }
.sidebar-link i { color: #efda86; font-size: 1.08rem; width: 1.35rem; }
.sidebar-link:hover { background: rgba(255,255,255,.09); color: var(--ttu-white); transform: translateX(2px); }
.sidebar-link.active { background: rgba(212,175,55,.19); border-left-color: var(--ttu-gold); color: var(--ttu-white); }
.sidebar-link.active i { color: var(--ttu-gold); }
.sidebar-account { align-items: center; border-top: 1px solid rgba(255,255,255,.13); display: flex; gap: .75rem; margin-top: 1rem; padding: 1rem .45rem .2rem; }
.sidebar-user-icon { align-items: center; background: var(--ttu-gold); border-radius: 50%; color: var(--ttu-dark-green); display: flex; flex: 0 0 38px; font-size: 1.15rem; height: 38px; justify-content: center; }
.sidebar-user-copy { min-width: 0; }
.sidebar-user-copy strong, .sidebar-user-copy span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user-copy strong { color: var(--ttu-white); font-size: .78rem; }
.sidebar-user-copy span { color: rgba(255,255,255,.62); font-size: .68rem; margin-top: .1rem; }
.app-main { display: flex; flex: 1; flex-direction: column; min-width: 0; min-height: 100vh; min-height: 100dvh; }
.app-topbar { align-items: center; background: rgba(255,255,255,.97); border-bottom: 1px solid #e2e9e2; box-shadow: 0 3px 16px rgba(31,55,31,.05); display: flex; gap: .85rem; min-height: 72px; padding: .65rem 1.5rem; position: sticky; top: 0; width: 100%; z-index: 1020; }
.topbar-title { min-width: 0; }
.topbar-title strong, .topbar-title span { display: block; }
.topbar-title strong { color: var(--ttu-dark-green); font-family: "Cormorant Garamond", serif; font-size: 1.18rem; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar-title span { color: var(--ttu-medium-gray); font-size: .68rem; margin-top: .18rem; }
.sidebar-toggle { align-items: center; background: var(--ttu-light-green); color: var(--ttu-primary-green); display: inline-flex; font-size: 1.5rem; height: 43px; justify-content: center; padding: 0; width: 43px; }
.account-menu-button { align-items: center; background: var(--ttu-light-green); color: var(--ttu-dark-green); display: inline-flex; gap: .5rem; }
.account-menu-button i { font-size: 1.1rem; }
.app-content { flex: 1 0 auto; margin-inline: auto; max-width: 1600px; min-width: 0; width: 100%; }
.app-main > .hub-footer, body.app-public > .hub-footer { margin-top: auto; }
.min-vh-75 { min-height: 75vh; }
.page-heading { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; margin-bottom: 1.5rem; }
.page-heading p { color: var(--ttu-medium-gray); margin-bottom: 0; }
.eyebrow { color: var(--ttu-secondary-green) !important; font-size: .72rem; font-weight: 600; letter-spacing: .12em; margin-bottom: .5rem !important; text-transform: uppercase; }
.card { border: 0; }
.content-card, .auth-card, .summary-card, .attendance-hero { border: 1px solid rgba(0,100,0,.08); border-radius: .9rem; box-shadow: 0 8px 26px rgba(31,55,31,.07); }
.content-card { background: var(--ttu-white); }
.narrow-card { margin-left: auto; margin-right: auto; max-width: 780px; }
.innovator-list-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.innovator-directory-page { max-width: 100%; min-width: 0; width: 100%; }
.innovator-directory-table-card { max-width: 100%; overflow: hidden; }
.innovator-directory-page .pagination { margin-bottom: 0; }
.create-innovator-card { margin-top: clamp(.25rem, 2vw, 1.5rem); }
.form-card-heading { align-items: center; display: flex; gap: 1rem; }
.form-card-heading h1 { font-size: clamp(2rem, 4vw, 2.7rem); margin-bottom: .35rem; }
.form-card-heading p { color: var(--ttu-medium-gray); margin: 0; }
.form-card-icon { align-items: center; background: var(--ttu-light-green); border: 1px solid rgba(0,100,0,.12); border-radius: .8rem; color: var(--ttu-primary-green); display: flex; flex: 0 0 58px; font-size: 1.55rem; height: 58px; justify-content: center; }
.form-heading-divider { border-color: rgba(0,100,0,.13); margin: 1.4rem 0 1.6rem; opacity: 1; }
.attendance-page-heading { margin-bottom: 1.25rem; }
.attendance-search-card { background: linear-gradient(125deg, var(--ttu-white), var(--ttu-light-green)); border: 1px solid rgba(0,100,0,.12); border-radius: 1rem; box-shadow: 0 8px 26px rgba(31,55,31,.06); margin-bottom: 1.5rem; padding: 1.4rem; }
.attendance-search-intro { align-items: center; display: flex; gap: .9rem; margin-bottom: 1.15rem; }
.attendance-search-intro h2 { font-size: 1.45rem; margin: 0 0 .15rem; }
.attendance-search-intro p { color: var(--ttu-medium-gray); font-size: .82rem; margin: 0; }
.attendance-search-icon { align-items: center; background: var(--ttu-primary-green); border-radius: .75rem; color: var(--ttu-white); display: flex; flex: 0 0 48px; font-size: 1.25rem; height: 48px; justify-content: center; }
.attendance-name-form { align-items: end; display: grid; gap: .85rem; grid-template-columns: minmax(240px, 1fr) auto; }
.attendance-name-field { max-width: 720px; }
.search-input-wrap { position: relative; }
.search-input-wrap > i { color: var(--ttu-medium-gray); font-size: 1rem; left: 1rem; pointer-events: none; position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.search-input-wrap .form-control { background: var(--ttu-white); font-size: .95rem; min-height: 49px; padding-left: 2.7rem; }
.attendance-search-actions { display: flex; gap: .5rem; }
.attendance-search-actions .btn { min-height: 49px; }
.attendance-results-card { overflow: hidden; }
.attendance-results-header { align-items: center; border-bottom: 1px solid #e8eee8; display: flex; gap: 1rem; justify-content: space-between; padding: 1.2rem 1.35rem; }
.attendance-results-header h2 { font-size: 1.5rem; margin: 0 0 .15rem; }
.attendance-results-header p { color: var(--ttu-medium-gray); font-size: .8rem; margin: 0; }
.record-count { align-items: center; background: var(--ttu-light-green); border-radius: 999px; color: var(--ttu-dark-green); display: inline-flex; font-size: .75rem; font-weight: 600; gap: .4rem; padding: .45rem .75rem; white-space: nowrap; }
.attendance-records-table tbody tr { transition: background-color .15s ease; }
.attendance-records-table tbody tr:hover { background: #fbfdfb; }
.attendance-person { align-items: center; display: flex; gap: .7rem; min-width: 190px; }
.attendance-person strong, .attendance-person small { display: block; }
.attendance-person strong { color: var(--ttu-dark-gray); font-size: .82rem; }
.attendance-person small { color: var(--ttu-medium-gray); font-size: .68rem; margin-top: .12rem; }
.attendance-avatar { align-items: center; background: var(--ttu-light-green); border: 1px solid rgba(0,100,0,.13); border-radius: 50%; color: var(--ttu-primary-green); display: flex; flex: 0 0 38px; font-size: .72rem; font-weight: 700; height: 38px; justify-content: center; }
.registration-pill { background: #f1f3f5; border-radius: .35rem; color: #4f585f; display: inline-block; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; padding: .3rem .45rem; white-space: nowrap; }
.project-name { color: var(--ttu-dark-green); font-size: .78rem; }
.date-stack strong, .date-stack small { display: block; white-space: nowrap; }
.date-stack strong { font-size: .76rem; font-weight: 600; }
.date-stack small { color: var(--ttu-medium-gray); font-size: .7rem; margin-top: .1rem; }
.record-view-button { align-items: center; border-radius: 50%; display: inline-flex; height: 34px; justify-content: center; padding: 0; width: 34px; }
.attendance-empty-state { color: var(--ttu-medium-gray); padding: 3.5rem 1rem; text-align: center; }
.attendance-empty-state > i { color: #9bb39b; display: block; font-size: 2rem; margin-bottom: .65rem; }
.attendance-empty-state h3 { font-size: 1.35rem; margin: 0 0 .35rem; }
.attendance-empty-state p { margin: 0; }
.presence-dashboard-heading { align-items: flex-end; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1.5rem; }
.presence-dashboard-heading h1 { margin-bottom: .5rem; }
.presence-dashboard-heading > div > p:last-child { color: var(--ttu-medium-gray); margin: 0; }
.presence-updated { align-items: center; background: var(--ttu-white); border: 1px solid #e0e8e0; border-radius: 999px; color: var(--ttu-medium-gray); display: inline-flex; font-size: .72rem; gap: .45rem; padding: .48rem .75rem; white-space: nowrap; }
.presence-updated i { color: var(--ttu-primary-green); }
.presence-summary-row { margin-bottom: 1.5rem; }
.presence-stat-card { align-items: center; background: var(--ttu-white); border: 1px solid rgba(0,100,0,.09); border-radius: 1rem; box-shadow: 0 8px 26px rgba(31,55,31,.07); display: flex; gap: 1rem; min-height: 150px; overflow: hidden; padding: 1.4rem; position: relative; }
.presence-stat-card::after { border-radius: 50%; content: ""; height: 125px; opacity: .08; position: absolute; right: -38px; top: -45px; width: 125px; }
.active-innovators-card::after { background: var(--ttu-secondary-green); }
.in-hub-card::after { background: var(--ttu-gold); }
.presence-stat-icon { align-items: center; border-radius: .9rem; display: flex; flex: 0 0 62px; font-size: 1.6rem; height: 62px; justify-content: center; }
.active-innovators-card .presence-stat-icon { background: var(--ttu-light-green); color: var(--ttu-primary-green); }
.in-hub-card .presence-stat-icon { background: #fff7d9; color: #8b6c00; }
.bookings-today-card .presence-stat-icon { background: #e6f1fb; color: #17547b; }
.awaiting-card .presence-stat-icon { background: #fff3cd; color: #6b5509; }
.presence-stat-card span, .presence-stat-card strong, .presence-stat-card small { display: block; position: relative; z-index: 1; }
.presence-stat-card span { color: var(--ttu-medium-gray); font-size: .76rem; font-weight: 600; letter-spacing: .035em; text-transform: uppercase; }
.presence-stat-card strong { color: var(--ttu-dark-green); font-family: "Cormorant Garamond", serif; font-size: 2.75rem; line-height: 1; margin: .25rem 0; }
.presence-stat-card small { color: #899189; font-size: .68rem; }
.presence-table-card { background: var(--ttu-white); border: 1px solid rgba(0,100,0,.09); border-radius: 1rem; box-shadow: 0 10px 30px rgba(31,55,31,.07); overflow: hidden; }
.presence-table-header { align-items: center; border-bottom: 1px solid #e8eee8; display: flex; gap: 1rem; justify-content: space-between; padding: 1.3rem 1.4rem; }
.presence-title-line { align-items: center; display: flex; gap: .8rem; }
.presence-title-line h2 { font-size: 1.6rem; margin: 0; }
.today-indicator { background: #fff7d9; border: 1px solid rgba(212, 175, 55, .45); border-radius: 999px; color: #725900; font-size: .68rem; font-weight: 800; letter-spacing: .08em; padding: .28rem .62rem; text-transform: uppercase; }
.still-in-hub { align-items: center; color: var(--ttu-primary-green); display: inline-flex; font-size: .76rem; font-weight: 700; gap: .4rem; white-space: nowrap; }
.still-in-hub i { font-size: .48rem; }
.session-duration { color: var(--ttu-dark-green); font-size: .85rem; white-space: nowrap; }
.work-done-summary { color: #515951; display: inline-block; font-size: .76rem; line-height: 1.5; min-width: 180px; }
.presence-table-header p { color: var(--ttu-medium-gray); font-size: .78rem; margin: .25rem 0 0; }
.present-count { background: var(--ttu-light-green); border: 1px solid rgba(0,100,0,.1); border-radius: 999px; color: var(--ttu-primary-green); font-size: .72rem; font-weight: 600; padding: .45rem .75rem; white-space: nowrap; }
.presence-table tbody tr { transition: background-color .15s ease; }
.presence-table tbody tr:hover { background: #fbfdfb; }
.live-duration { color: var(--ttu-primary-green); font-size: .76rem; white-space: nowrap; }
.presence-empty-state { padding: 4rem 1.25rem; text-align: center; }
.presence-empty-icon { align-items: center; background: var(--ttu-light-green); border-radius: 50%; color: var(--ttu-primary-green); display: flex; font-size: 1.7rem; height: 68px; justify-content: center; margin: 0 auto .9rem; width: 68px; }
.presence-empty-state h3 { font-size: 1.45rem; margin: 0 0 .35rem; }
.presence-empty-state p { color: var(--ttu-medium-gray); margin: 0; }
.student-dashboard-heading { align-items: center; display: flex; flex-direction: column; gap: .85rem; justify-content: center; margin: 0 auto 1.5rem; max-width: 900px; text-align: center; }
.student-dashboard-heading .eyebrow { background: var(--ttu-light-green); border: 1px solid rgba(0,100,0,.1); border-radius: 999px; display: inline-flex; margin-bottom: .7rem !important; padding: .35rem .75rem; }
.student-dashboard-heading h1 { font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1.08; margin: 0 auto .55rem; max-width: 850px; }
.student-dashboard-heading > div > p:last-child { color: var(--ttu-medium-gray); font-size: .8rem; line-height: 1.65; margin: 0 auto; max-width: 620px; }
.student-dashboard-date { align-items: center; background: var(--ttu-white); border: 1px solid #e0e8e0; border-radius: 999px; box-shadow: 0 5px 16px rgba(31,55,31,.05); color: var(--ttu-dark-green); display: inline-flex; font-size: .72rem; font-weight: 500; gap: .45rem; padding: .5rem .78rem; white-space: nowrap; }
.student-dashboard-date i { color: var(--ttu-primary-green); }
.student-dashboard-grid { margin-bottom: 1.5rem; }
.daily-attendance-card { background: var(--ttu-white); border: 1px solid rgba(0,100,0,.1); border-radius: 1rem; box-shadow: 0 10px 30px rgba(31,55,31,.07); height: 100%; overflow: hidden; }
.daily-attendance-header { align-items: center; background: linear-gradient(120deg, var(--ttu-light-green), var(--ttu-white)); border-bottom: 1px solid #e5ece5; display: flex; gap: .9rem; padding: 1.3rem 1.4rem; }
.daily-attendance-header h2 { font-size: 1.65rem; margin: 0 0 .2rem; }
.daily-attendance-header p { color: var(--ttu-medium-gray); font-size: .78rem; margin: 0; }
.daily-attendance-icon { align-items: center; background: var(--ttu-primary-green); border-radius: .8rem; color: var(--ttu-white); display: flex; flex: 0 0 52px; font-size: 1.3rem; height: 52px; justify-content: center; }
.daily-attendance-form { padding: 1.4rem; }
.time-field-wrap { position: relative; }
.time-field-wrap > i { color: var(--ttu-primary-green); font-size: 1rem; left: .95rem; pointer-events: none; position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.time-field-wrap .form-control { min-height: 49px; padding-left: 2.65rem; }
.daily-attendance-form textarea { resize: vertical; }
.daily-form-footer { align-items: center; border-top: 1px solid #e8eee8; display: flex; gap: 1rem; justify-content: space-between; margin-top: 1.25rem; padding-top: 1.2rem; }
.daily-form-footer > span { color: var(--ttu-medium-gray); font-size: .7rem; }
.daily-form-footer > span i { color: var(--ttu-primary-green); margin-right: .3rem; }
.student-summary-stack { display: grid; gap: 1rem; }
.student-stat-card { align-items: center; background: var(--ttu-white); border: 1px solid rgba(0,100,0,.1); border-radius: 1rem; box-shadow: 0 8px 24px rgba(31,55,31,.06); display: flex; gap: 1rem; min-height: 126px; padding: 1.2rem; }
.student-stat-icon { align-items: center; background: var(--ttu-light-green); border-radius: .8rem; color: var(--ttu-primary-green); display: flex; flex: 0 0 54px; font-size: 1.35rem; height: 54px; justify-content: center; }
.gold-stat-card .student-stat-icon { background: #fff7d9; color: #8b6c00; }
.student-stat-card span, .student-stat-card strong, .student-stat-card small { display: block; }
.student-stat-card span { color: var(--ttu-medium-gray); font-size: .72rem; font-weight: 600; letter-spacing: .035em; text-transform: uppercase; }
.student-stat-card strong { color: var(--ttu-dark-green); font-family: "Cormorant Garamond", serif; font-size: 2.35rem; line-height: 1; margin: .2rem 0; }
.student-stat-card small { color: #899189; font-size: .67rem; }
.attendance-guidance-card { align-items: flex-start; background: #fffaf0; border: 1px solid rgba(212,175,55,.3); border-radius: 1rem; color: #5d501e; display: flex; gap: .75rem; padding: 1rem; }
.attendance-guidance-card > i { color: #9b7a05; font-size: 1.1rem; margin-top: .05rem; }
.attendance-guidance-card strong { display: block; font-size: .78rem; margin-bottom: .2rem; }
.attendance-guidance-card p { font-size: .7rem; line-height: 1.55; margin: 0; }
.student-history-card { overflow: hidden; }
.student-history-header { align-items: center; border-bottom: 1px solid #e8eee8; display: flex; gap: 1rem; justify-content: space-between; padding: 1.2rem 1.35rem; }
.student-history-header h2 { font-size: 1.5rem; margin: 0 0 .15rem; }
.student-history-header p { color: var(--ttu-medium-gray); font-size: .76rem; margin: 0; }
.student-history-header a { font-size: .76rem; font-weight: 600; text-decoration: none; }
.student-history-empty { color: var(--ttu-medium-gray); padding: 2.75rem 1rem; text-align: center; }
.student-history-empty i { color: #9bb39b; display: block; font-size: 1.8rem; margin-bottom: .5rem; }
.student-history-empty p { margin: 0; }
.project-dashboard-grid { margin-bottom: 1.5rem; }
.project-page-heading { align-items: center; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1.5rem; }
.project-page-heading h1 { margin-bottom: .45rem; }
.project-page-heading > div > p:last-child { color: var(--ttu-medium-gray); margin: 0; }
.project-form-card, .project-portfolio-card { background: var(--ttu-white); border: 1px solid rgba(0,100,0,.1); border-radius: 1rem; box-shadow: 0 10px 30px rgba(31,55,31,.07); padding: 1.35rem; }
.project-section-heading { align-items: flex-start; display: flex; gap: .85rem; margin-bottom: 1.2rem; }
.project-section-heading > span { align-items: center; background: var(--ttu-light-green); border-radius: .8rem; color: var(--ttu-primary-green); display: flex; flex: 0 0 50px; font-size: 1.25rem; height: 50px; justify-content: center; }
.project-section-heading h2, .project-portfolio-heading h2 { font-size: 1.55rem; margin: 0 0 .15rem; }
.project-section-heading small, .project-portfolio-heading span { color: var(--ttu-medium-gray); font-size: .72rem; line-height: 1.55; }
.project-portfolio-heading { align-items: center; border-bottom: 1px solid #e8eee8; display: flex; gap: 1rem; justify-content: space-between; margin: -1.35rem -1.35rem 1.1rem; padding: 1.2rem 1.35rem; }
.project-portfolio-heading strong, .project-focus-badge { background: var(--ttu-light-green); border: 1px solid rgba(0,100,0,.12); border-radius: 999px; color: var(--ttu-dark-green); font-size: .7rem; font-weight: 600; padding: .38rem .68rem; white-space: nowrap; }
.project-card-list { display: grid; gap: .85rem; }
.project-card-item { background: #fbfdfb; border: 1px solid #dfe8df; border-left: 4px solid var(--ttu-primary-green); border-radius: .75rem; padding: 1rem; }
.project-card-title { align-items: flex-start; display: flex; gap: .75rem; justify-content: space-between; }
.project-card-title h3 { font-family: "Poppins", sans-serif; font-size: .94rem; margin: .12rem 0 .5rem; }
.project-card-item p { color: #586258; font-size: .76rem; line-height: 1.65; margin: 0 0 .6rem; }
.project-card-item > small { color: #899189; font-size: .65rem; }
.project-empty-state { color: var(--ttu-medium-gray); padding: 2rem 1rem; text-align: center; }
.project-empty-state i { color: #9bb39b; display: block; font-size: 1.7rem; margin-bottom: .45rem; }
.project-empty-state p { margin: 0; }
.project-count-line { align-items: baseline; background: var(--ttu-light-green); border-radius: .7rem; display: flex; gap: .55rem; margin-bottom: 1rem; padding: .8rem 1rem; }
.project-count-line strong { color: var(--ttu-dark-green); font-family: "Cormorant Garamond", serif; font-size: 1.8rem; line-height: 1; }
.project-count-line span { color: var(--ttu-medium-gray); font-size: .72rem; }
.admin-project-list { max-height: 430px; overflow-y: auto; padding-right: .2rem; }
.directory-project-list { display: flex; flex-wrap: wrap; gap: .35rem; max-width: 330px; }
.directory-project-list > span { background: var(--ttu-light-green); border-radius: .45rem; color: var(--ttu-dark-green); display: inline-flex; flex-direction: column; font-size: .7rem; padding: .3rem .5rem; }
.directory-project-list small { color: var(--ttu-medium-gray); font-size: .58rem; }
.attendance-history-heading { margin: 0 auto 1.5rem; max-width: 720px; text-align: center; }
.attendance-history-heading .eyebrow { background: var(--ttu-light-green); border: 1px solid rgba(0,100,0,.1); border-radius: 999px; display: inline-flex; margin-bottom: .7rem !important; padding: .35rem .75rem; }
.attendance-history-heading h1 { font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: .55rem; }
.attendance-history-heading > p:last-child { color: var(--ttu-medium-gray); font-size: .8rem; line-height: 1.65; margin: 0; }
.attendance-history-card { background: var(--ttu-white); border: 1px solid rgba(0,100,0,.09); border-radius: 1rem; box-shadow: 0 10px 30px rgba(31,55,31,.07); overflow: hidden; }
.attendance-history-card-header { align-items: center; background: linear-gradient(120deg, var(--ttu-light-green), var(--ttu-white)); border-bottom: 1px solid #e5ece5; display: flex; gap: 1rem; justify-content: space-between; padding: 1.2rem 1.35rem; }
.attendance-history-card-header h2 { font-size: 1.55rem; margin: 0 0 .18rem; }
.attendance-history-card-header p { color: var(--ttu-medium-gray); font-size: .72rem; margin: 0; }
.attendance-history-table tbody tr { transition: background-color .15s ease; }
.attendance-history-table tbody tr:hover { background: #fbfdfb; }
.history-date-cell strong, .history-date-cell small { display: block; white-space: nowrap; }
.history-date-cell strong { color: var(--ttu-dark-gray); font-size: .78rem; }
.history-date-cell small { color: var(--ttu-medium-gray); font-size: .64rem; margin-top: .15rem; }
.history-time { color: #4f584f; font-size: .77rem; font-weight: 500; white-space: nowrap; }
.history-duration { color: var(--ttu-dark-green); font-size: .77rem; white-space: nowrap; }
.attendance-history-empty { align-items: center; display: flex; flex-direction: column; padding: 3.8rem 1rem; text-align: center; }
.attendance-history-empty > span { align-items: center; background: var(--ttu-light-green); border-radius: 50%; color: var(--ttu-primary-green); display: flex; font-size: 1.45rem; height: 62px; justify-content: center; margin-bottom: .75rem; width: 62px; }
.attendance-history-empty h3 { font-size: 1.35rem; margin: 0 0 .3rem; }
.attendance-history-empty p { color: var(--ttu-medium-gray); font-size: .73rem; margin: 0; }
.auth-wrap { align-items: center; display: flex; justify-content: center; min-height: 65vh; }
.auth-card { max-width: 520px; width: 100%; }
.password-auth-card { border-top: 4px solid var(--ttu-primary-green); overflow: hidden; }
.password-auth-heading { margin-bottom: 1.35rem; text-align: center; }
.password-auth-heading .eyebrow { margin-bottom: .35rem; }
.password-auth-heading h1 { font-size: 2rem; margin-bottom: .4rem; }
.password-auth-heading > p:last-child { color: var(--ttu-medium-gray); font-size: .78rem; line-height: 1.6; margin: 0 auto; max-width: 390px; }
.password-fields { display: grid; gap: 1.15rem; }
.password-form-field .form-label { font-size: .8rem; margin-bottom: .42rem; }
.password-input-shell { position: relative; }
.password-input-shell .form-control { background: #fcfdfc; border: 1px solid #cbd7cb; border-radius: .65rem; height: 50px; padding: .75rem 3rem .75rem 1rem; transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; width: 100%; }
.password-input-shell .form-control:hover { border-color: #aebfae; }
.password-input-shell .form-control:focus { background: var(--ttu-white); border-color: var(--ttu-secondary-green); box-shadow: 0 0 0 .22rem rgba(34,139,34,.13); }
.password-input-shell.has-error .form-control { border-color: var(--ttu-danger); }
.password-visibility-toggle { align-items: center; background: transparent; border: 0; border-radius: .35rem; color: var(--ttu-medium-gray); display: flex; height: 36px; justify-content: center; padding: 0; position: absolute; right: .45rem; top: 50%; transform: translateY(-50%); width: 38px; }
.password-visibility-toggle:hover, .password-visibility-toggle:focus { background: var(--ttu-light-green); color: var(--ttu-primary-green); outline: none; }
.password-visibility-toggle:focus-visible { box-shadow: 0 0 0 .18rem rgba(34,139,34,.18); }
.password-field-error { color: var(--ttu-danger); font-size: .72rem; margin-top: .4rem; }
.password-rules-panel { background: #fff8e3; border: 1px solid rgba(212,175,55,.38); border-radius: .7rem; color: #5d501e; margin-top: 1.25rem; padding: .9rem 1rem; }
.password-rules-panel strong { display: block; font-size: .78rem; margin-bottom: .3rem; }
.password-rules-panel ul { font-size: .7rem; line-height: 1.65; margin: 0; padding-left: 1.1rem; }
.password-submit-button { margin-top: 1.35rem; min-height: 48px; }
.password-auth-footer { border-top: 1px solid #e7eee7; color: var(--ttu-medium-gray); display: flex; flex-wrap: wrap; font-size: .68rem; gap: .35rem; justify-content: center; margin-top: 1rem; padding-top: 1rem; text-align: center; }
.password-auth-footer a { font-weight: 600; margin-left: .35rem; text-decoration: none; }
.first-login-password-card { border-top: 4px solid var(--ttu-gold); }
.first-login-password-footer { align-items: center; display: flex; flex-wrap: wrap; gap: .35rem .65rem; justify-content: center; }
.first-login-password-footer form { display: inline; }
.first-login-password-footer .btn-link { font-size: inherit; font-weight: 600; text-decoration: none; }
.form-label { color: var(--ttu-dark-gray); font-weight: 600; }
.form-control, .form-select { border-color: #cbd7cb; border-radius: .55rem; min-height: 44px; }
textarea.form-control { min-height: auto; }
.form-control, .form-select, .form-text, .invalid-feedback, .alert, td, dd, p { overflow-wrap: anywhere; }
.form-control:focus, .form-select:focus { border-color: var(--ttu-secondary-green); box-shadow: 0 0 0 .22rem rgba(34,139,34,.15); }
.btn { border-radius: .5rem; font-weight: 600; padding: .58rem 1rem; }
.btn-primary { background: var(--ttu-primary-green); border-color: var(--ttu-primary-green); }
.btn-primary:hover, .btn-primary:focus { background: var(--ttu-dark-green); border-color: var(--ttu-dark-green); }
.btn-outline-primary { border-color: var(--ttu-primary-green); color: var(--ttu-primary-green); }
.btn-outline-primary:hover { background: var(--ttu-primary-green); border-color: var(--ttu-primary-green); }
.btn-gold { background: var(--ttu-gold); border-color: var(--ttu-gold); color: #1d2b1d; }
.btn-gold:hover { background: #bd9828; border-color: #bd9828; }
.btn-danger { background: var(--ttu-danger); }
.summary-card { background: var(--ttu-white); display: flex; flex-direction: column; height: 100%; justify-content: space-between; min-height: 118px; padding: 1.15rem; }
.summary-card span { color: var(--ttu-medium-gray); font-size: .75rem; font-weight: 500; }
.summary-card strong { color: var(--ttu-primary-green); font-family: "Cormorant Garamond", serif; font-size: 2.25rem; }
.warning-card { border-top: 4px solid var(--ttu-danger); }
.warning-card strong { color: var(--ttu-danger); }
.attendance-hero { background: linear-gradient(135deg, var(--ttu-white), var(--ttu-light-green)); height: 100%; }
.attendance-hero.is-active { background: linear-gradient(135deg, var(--ttu-dark-green), var(--ttu-primary-green)); color: white; }
.attendance-hero.is-active h2, .attendance-hero.is-active .eyebrow { color: white !important; }
.elapsed-display { color: var(--ttu-gold); font-family: "Cormorant Garamond", serif; font-size: 2rem; font-weight: 700; }
.check-in-button { min-width: 180px; }
.table { --bs-table-bg: transparent; }
.table-responsive { max-width: 100%; overscroll-behavior-inline: contain; scrollbar-color: rgba(0,100,0,.35) transparent; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.table thead th { background: var(--ttu-light-green); color: var(--ttu-dark-green); font-size: .72rem; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }
.table td { border-color: #e8eee8; vertical-align: middle; }
.empty-cell { color: var(--ttu-medium-gray); padding: 2.5rem !important; text-align: center; }
.status-badge { border-radius: 999px; display: inline-block; font-size: .7rem; font-weight: 600; padding: .3rem .62rem; white-space: nowrap; }
.status-active { background: #d9f5df; color: #075e18; }
.status-completed { background: #e6f1fb; color: #17547b; }
.status-incomplete, .status-inactive { background: #fde3e6; color: #9e1c2b; }
.status-admin_closed, .status-pending { background: #fff3cd; color: #6b5509; }
.status-booked { background: #fff3cd; color: #6b5509; }
.status-admitted { background: #d9f5df; color: #075e18; }
.admit-booking-button { white-space: nowrap; }
.detail-list { display: grid; gap: .8rem; grid-template-columns: minmax(120px, 35%) 1fr; margin-bottom: 0; }
.detail-list dt { color: var(--ttu-medium-gray); font-size: .78rem; }
.detail-list dd { margin: 0; }
.innovator-record-toolbar { align-items: center; color: var(--ttu-medium-gray); display: flex; font-size: .7rem; justify-content: space-between; margin-bottom: .8rem; }
.innovator-back-link { align-items: center; color: var(--ttu-primary-green); display: inline-flex; font-weight: 600; gap: .4rem; text-decoration: none; }
.innovator-back-link:hover { color: var(--ttu-dark-green); }
.innovator-record-hero { align-items: center; background: linear-gradient(120deg, var(--ttu-white) 55%, var(--ttu-light-green)); border: 1px solid rgba(0,100,0,.1); border-radius: 1rem; box-shadow: 0 10px 30px rgba(31,55,31,.07); display: flex; gap: 1.5rem; justify-content: space-between; padding: 1.5rem; }
.innovator-record-identity { align-items: center; display: flex; gap: 1.15rem; min-width: 0; }
.innovator-record-avatar { border: 3px solid var(--ttu-gold); border-radius: 50%; flex: 0 0 92px; height: 92px; object-fit: cover; width: 92px; }
.innovator-record-initials { align-items: center; background: var(--ttu-dark-green); color: var(--ttu-white); display: flex; font-family: "Cormorant Garamond", serif; font-size: 2rem; font-weight: 700; justify-content: center; }
.innovator-record-name { min-width: 0; }
.innovator-record-name .eyebrow { margin-bottom: .25rem; }
.innovator-name-line { align-items: center; display: flex; flex-wrap: wrap; gap: .7rem; }
.innovator-name-line h1 { font-size: 2.15rem; margin: 0; }
.innovator-record-meta { color: var(--ttu-medium-gray); display: flex; flex-wrap: wrap; font-size: .73rem; gap: .5rem 1rem; margin-top: .45rem; }
.innovator-record-meta span { align-items: center; display: inline-flex; gap: .38rem; overflow-wrap: anywhere; }
.innovator-record-meta i { color: var(--ttu-primary-green); }
.innovator-record-actions { align-items: stretch; display: flex; flex-wrap: wrap; gap: .55rem; justify-content: flex-end; }
.innovator-record-actions form { display: flex; }
.innovator-record-actions .btn { white-space: nowrap; }
.innovator-record-grid { margin-bottom: 1.5rem; }
.record-detail-card, .record-attendance-card, .record-access-card { background: var(--ttu-white); border: 1px solid rgba(0,100,0,.09); border-radius: 1rem; box-shadow: 0 8px 26px rgba(31,55,31,.06); }
.record-detail-card { padding: 1.35rem; }
.record-card-heading { align-items: center; border-bottom: 1px solid #e7eee7; display: flex; justify-content: space-between; margin-bottom: 1rem; padding-bottom: .9rem; }
.record-card-heading .eyebrow, .record-attendance-heading .eyebrow, .record-access-card .eyebrow { margin-bottom: .15rem; }
.record-card-heading h2, .record-attendance-heading h2, .record-access-card h2 { font-size: 1.5rem; margin: 0; }
.record-card-heading > i { color: var(--ttu-primary-green); font-size: 1.2rem; }
.record-detail-list { margin: 0; }
.record-detail-list > div { border-bottom: 1px solid #edf1ed; display: grid; gap: .7rem; grid-template-columns: minmax(115px, 38%) 1fr; padding: .72rem 0; }
.record-detail-list > div:last-child { border-bottom: 0; padding-bottom: 0; }
.record-detail-list dt { color: var(--ttu-medium-gray); font-size: .7rem; font-weight: 500; }
.record-detail-list dd { font-size: .78rem; font-weight: 600; margin: 0; overflow-wrap: anywhere; }
.record-detail-list dd a { text-decoration: none; }
.record-project-name { background: var(--ttu-light-green); border-left: 4px solid var(--ttu-primary-green); border-radius: .45rem; color: var(--ttu-dark-green); font-family: "Cormorant Garamond", serif; font-size: 1.45rem; font-weight: 700; margin-bottom: 1rem; padding: .8rem 1rem; }
.record-narrative { display: grid; gap: 1rem; }
.record-narrative > div { border-bottom: 1px solid #edf1ed; padding-bottom: .85rem; }
.record-narrative > div:last-child { border-bottom: 0; padding-bottom: 0; }
.record-narrative h3 { font-family: "Poppins", sans-serif; font-size: .72rem; font-weight: 600; margin: 0 0 .35rem; text-transform: uppercase; }
.record-narrative p { color: #596159; font-size: .75rem; line-height: 1.7; margin: 0; }
.record-attendance-card { margin-bottom: 1.5rem; overflow: hidden; }
.record-attendance-heading { align-items: center; border-bottom: 1px solid #e7eee7; display: flex; justify-content: space-between; padding: 1.2rem 1.35rem; }
.record-attendance-heading > div > span { color: var(--ttu-medium-gray); font-size: .7rem; }
.record-attendance-table tbody tr { transition: background-color .15s ease; }
.record-attendance-table tbody tr:hover { background: #fbfdfb; }
.record-work-summary { color: #596159; display: inline-block; font-size: .73rem; line-height: 1.5; min-width: 180px; }
.record-attendance-empty { align-items: center; color: var(--ttu-medium-gray); display: flex; flex-direction: column; gap: .3rem; padding: 2.8rem 1rem; text-align: center; }
.record-attendance-empty i { color: #9bb39b; font-size: 1.7rem; }
.record-attendance-empty strong { color: var(--ttu-dark-gray); font-size: .85rem; }
.record-attendance-empty span { font-size: .72rem; }
.record-access-card { align-items: center; border-left: 4px solid var(--ttu-danger); display: flex; gap: 1.5rem; justify-content: space-between; padding: 1.2rem 1.35rem; }
.record-access-card p:last-child { color: var(--ttu-medium-gray); font-size: .72rem; margin: .25rem 0 0; }
.record-access-card .btn { white-space: nowrap; }
.critical-action-modal { border: 0; border-radius: 1rem; box-shadow: 0 22px 60px rgba(52,58,64,.24); overflow: hidden; }
.critical-action-header { align-items: center; background: #fff5f6; border-bottom: 1px solid #f2d7da; display: flex; gap: .9rem; padding: 1.2rem 1.3rem; }
.critical-action-header .eyebrow { color: #a42432; margin-bottom: .1rem; }
.critical-action-header h2 { color: var(--ttu-dark-gray); font-size: 1.55rem; margin: 0; }
.critical-warning-icon { align-items: center; background: var(--ttu-danger); border-radius: .7rem; color: var(--ttu-white); display: flex; flex: 0 0 48px; font-size: 1.2rem; height: 48px; justify-content: center; }
.critical-action-body { padding: 1.2rem 1.3rem; }
.critical-action-body > p { color: #4f5650; font-size: .82rem; line-height: 1.65; margin-bottom: 1rem; }
.critical-impact-list { background: var(--ttu-off-white); border: 1px solid #e5e8e5; border-radius: .7rem; overflow: hidden; }
.critical-impact-list > div { align-items: flex-start; border-bottom: 1px solid #e5e8e5; color: #555d55; display: flex; font-size: .73rem; gap: .65rem; line-height: 1.55; padding: .72rem .8rem; }
.critical-impact-list > div:last-child { border-bottom: 0; }
.critical-impact-list i { color: var(--ttu-danger); margin-top: .1rem; }
.critical-impact-list > div:last-child i { color: var(--ttu-primary-green); }
.critical-action-footer { background: var(--ttu-white); border-top: 1px solid #e8ece8; gap: .55rem; padding: 1rem 1.3rem; }
.critical-action-footer form { display: flex; }
.attendance-record-toolbar { align-items: center; color: var(--ttu-medium-gray); display: flex; font-size: .7rem; justify-content: space-between; margin-bottom: .8rem; }
.attendance-record-toolbar a { align-items: center; color: var(--ttu-primary-green); display: inline-flex; font-weight: 600; gap: .4rem; text-decoration: none; }
.attendance-record-toolbar a:hover { color: var(--ttu-dark-green); }
.attendance-record-hero { align-items: center; background: linear-gradient(120deg, var(--ttu-dark-green), var(--ttu-primary-green)); border: 1px solid rgba(0,77,0,.3); border-radius: 1rem; box-shadow: 0 12px 32px rgba(0,77,0,.16); color: var(--ttu-white); display: flex; gap: 1.5rem; justify-content: space-between; padding: 1.4rem 1.5rem; }
.attendance-record-person { align-items: center; display: flex; gap: 1.05rem; min-width: 0; }
.attendance-record-avatar { border: 3px solid var(--ttu-gold); border-radius: 50%; flex: 0 0 82px; height: 82px; object-fit: cover; width: 82px; }
.attendance-record-initials { align-items: center; background: var(--ttu-white); color: var(--ttu-dark-green); display: flex; font-family: "Cormorant Garamond", serif; font-size: 1.8rem; font-weight: 700; justify-content: center; }
.attendance-record-hero .eyebrow { color: #cbe8cb; margin-bottom: .2rem; }
.attendance-record-name-line { align-items: center; display: flex; flex-wrap: wrap; gap: .7rem; }
.attendance-record-name-line h1 { color: var(--ttu-white); font-size: 2rem; margin: 0; }
.attendance-record-meta { color: #d7ebd7; display: flex; flex-wrap: wrap; font-size: .72rem; gap: .45rem 1rem; margin-top: .4rem; }
.attendance-record-meta span { align-items: center; display: inline-flex; gap: .35rem; }
.attendance-record-meta i { color: var(--ttu-gold); }
.attendance-record-hero > .btn { background: var(--ttu-white); border-color: var(--ttu-white); color: var(--ttu-dark-green); white-space: nowrap; }
.attendance-record-hero > .btn:hover { background: var(--ttu-gold); border-color: var(--ttu-gold); color: #243124; }
.attendance-section-heading { align-items: flex-end; display: flex; justify-content: space-between; margin: 1.5rem 0 .8rem; }
.attendance-section-heading .eyebrow { margin-bottom: .15rem; }
.attendance-section-heading h2 { font-size: 1.55rem; margin: 0; }
.attendance-section-heading > span { color: var(--ttu-medium-gray); font-size: .68rem; }
.session-timing-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 1.5rem; }
.session-timing-card { align-items: center; background: var(--ttu-white); border: 1px solid rgba(0,100,0,.09); border-radius: .85rem; box-shadow: 0 7px 22px rgba(31,55,31,.05); display: flex; gap: .75rem; min-height: 92px; padding: 1rem; }
.session-timing-icon { align-items: center; background: var(--ttu-light-green); border-radius: .65rem; color: var(--ttu-primary-green); display: flex; flex: 0 0 42px; font-size: 1rem; height: 42px; justify-content: center; }
.session-duration-card .session-timing-icon { background: #fff7d9; color: #8b6c00; }
.session-timing-card small, .session-timing-card strong { display: block; }
.session-timing-card small { color: var(--ttu-medium-gray); font-size: .65rem; margin-bottom: .2rem; text-transform: uppercase; }
.session-timing-card strong { color: var(--ttu-dark-green); font-size: .88rem; white-space: nowrap; }
.session-activity-card { background: var(--ttu-white); border: 1px solid rgba(0,100,0,.09); border-radius: 1rem; box-shadow: 0 10px 30px rgba(31,55,31,.07); margin-bottom: 1.5rem; overflow: hidden; }
.session-activity-heading { align-items: center; background: linear-gradient(120deg, var(--ttu-light-green), var(--ttu-white)); border-bottom: 1px solid #e4ece4; display: flex; justify-content: space-between; padding: 1.2rem 1.35rem; }
.session-activity-heading .eyebrow { margin-bottom: .15rem; }
.session-activity-heading h2 { font-size: 1.55rem; margin: 0; }
.session-activity-heading > div > span { color: var(--ttu-medium-gray); font-size: .7rem; }
.session-project-label { background: var(--ttu-white); border: 1px solid rgba(0,100,0,.12); border-radius: 999px; color: var(--ttu-dark-green) !important; font-size: .7rem !important; font-weight: 600; max-width: 260px; overflow: hidden; padding: .45rem .75rem; text-overflow: ellipsis; white-space: nowrap; }
.session-activity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.session-activity-item { align-items: flex-start; border-bottom: 1px solid #e8eee8; display: flex; gap: .8rem; min-height: 155px; padding: 1.25rem 1.35rem; }
.session-activity-item:nth-child(odd) { border-right: 1px solid #e8eee8; }
.session-activity-item:nth-last-child(-n+2) { border-bottom: 0; }
.activity-item-number { align-items: center; background: var(--ttu-light-green); border-radius: 50%; color: var(--ttu-primary-green); display: flex; flex: 0 0 34px; font-size: .65rem; font-weight: 700; height: 34px; justify-content: center; }
.completed-item .activity-item-number { background: var(--ttu-primary-green); color: var(--ttu-white); }
.challenge-item .activity-item-number { background: #fff7d9; color: #725900; }
.session-activity-item h3 { font-family: "Poppins", sans-serif; font-size: .73rem; font-weight: 600; margin: .35rem 0 .45rem; text-transform: uppercase; }
.session-activity-item p { color: #596159; font-size: .76rem; line-height: 1.7; margin: 0; }
.attendance-correction-note { align-items: flex-start; background: #fffaf0; border: 1px solid rgba(212,175,55,.38); border-left: 4px solid var(--ttu-gold); border-radius: .8rem; display: flex; gap: .9rem; padding: 1.1rem 1.2rem; }
.attendance-correction-note > span { align-items: center; background: #fff2c2; border-radius: .55rem; color: #806300; display: flex; flex: 0 0 42px; height: 42px; justify-content: center; }
.attendance-correction-note .eyebrow { color: #806300; margin-bottom: .1rem; }
.attendance-correction-note h2 { font-size: 1.35rem; margin: 0; }
.attendance-correction-note p { color: #5d501e; font-size: .75rem; margin: .35rem 0; }
.attendance-correction-note small { color: #7a7047; font-size: .67rem; }
.callout { background: var(--ttu-light-green); border-left: 4px solid var(--ttu-secondary-green); border-radius: .4rem; padding: 1rem; }
.empty-state { background: white; border-radius: 1rem; box-shadow: 0 8px 30px rgba(31,55,31,.08); margin: 4rem auto; max-width: 700px; padding: 3rem 1.5rem; text-align: center; }
.not-found-page { align-items: center; display: flex; justify-content: center; min-height: min(68vh, 680px); padding: 1.5rem 0; }
.not-found-card { background: linear-gradient(145deg, var(--ttu-white), #f7fcf7); border: 1px solid rgba(0,100,0,.12); border-radius: 1.25rem; box-shadow: 0 22px 55px rgba(31,55,31,.13); max-width: 720px; overflow: hidden; padding: 3.25rem clamp(1.25rem, 5vw, 4rem); position: relative; text-align: center; width: 100%; }
.not-found-code { color: rgba(0,100,0,.055); font-family: "Cormorant Garamond", serif; font-size: clamp(9rem, 24vw, 16rem); font-weight: 700; left: 50%; line-height: .72; position: absolute; top: 2rem; transform: translateX(-50%); user-select: none; }
.not-found-icon { align-items: center; background: var(--ttu-dark-green); border: 4px solid var(--ttu-gold); border-radius: 50%; box-shadow: 0 10px 26px rgba(0,77,0,.2); color: var(--ttu-white); display: flex; font-size: 2rem; height: 82px; justify-content: center; margin: 0 auto 1.35rem; position: relative; width: 82px; }
.not-found-card .eyebrow { margin-bottom: .45rem; position: relative; }
.not-found-card h1 { font-size: clamp(2.15rem, 5vw, 3.25rem); margin-bottom: .8rem; position: relative; }
.not-found-message { color: var(--ttu-medium-gray); line-height: 1.75; margin: 0 auto 1rem; max-width: 520px; position: relative; }
.not-found-path { background: #edf5ed; border-radius: .5rem; color: #526052; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: .75rem; margin: 0 auto 1.5rem; max-width: 100%; overflow-wrap: anywhere; padding: .55rem .75rem; position: relative; width: fit-content; }
.not-found-action { min-width: 220px; position: relative; }
.success-mark { align-items: center; background: var(--ttu-light-green); border-radius: 50%; color: var(--ttu-primary-green); display: flex; font-size: 2.5rem; height: 70px; justify-content: center; margin: 0 auto 1rem; width: 70px; }
.profile-photo, .profile-placeholder { border: 4px solid var(--ttu-gold); border-radius: 50%; height: 150px; margin: auto; object-fit: cover; width: 150px; }
.profile-placeholder { align-items: center; background: var(--ttu-dark-green); color: white; display: flex; font-family: "Cormorant Garamond", serif; font-size: 3rem; justify-content: center; }
.self-profile-toolbar { align-items: center; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1rem; }
.self-profile-toolbar .eyebrow { margin-bottom: .1rem !important; }
.self-profile-toolbar h1 { font-size: 2.4rem; margin: 0; }
.self-profile-hero { align-items: center; background: linear-gradient(120deg, var(--ttu-white) 55%, var(--ttu-light-green)); border: 1px solid rgba(0,100,0,.1); border-radius: 1rem; box-shadow: 0 12px 34px rgba(31,55,31,.08); display: flex; gap: 1.5rem; justify-content: space-between; padding: 1.5rem; }
.self-profile-identity { align-items: center; display: flex; gap: 1.2rem; min-width: 0; }
.self-profile-avatar { border: 4px solid var(--ttu-gold); border-radius: 50%; flex: 0 0 106px; height: 106px; object-fit: cover; width: 106px; }
.self-profile-initials { align-items: center; background: var(--ttu-dark-green); color: var(--ttu-white); display: flex; font-family: "Cormorant Garamond", serif; font-size: 2.35rem; font-weight: 700; justify-content: center; }
.self-profile-name { min-width: 0; }
.self-profile-name-line { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem; }
.self-profile-name-line h2 { font-size: 2rem; margin: 0; }
.self-profile-name > p { color: var(--ttu-secondary-green); font-size: .82rem; font-weight: 600; margin: .3rem 0 .45rem; }
.self-profile-meta { color: var(--ttu-medium-gray); display: flex; flex-wrap: wrap; font-size: .72rem; gap: .45rem 1rem; }
.self-profile-meta span { align-items: center; display: inline-flex; gap: .38rem; overflow-wrap: anywhere; }
.self-profile-meta i { color: var(--ttu-primary-green); }
.self-profile-verification { align-items: center; background: var(--ttu-white); border: 1px solid rgba(0,100,0,.1); border-radius: .8rem; display: flex; flex: 0 0 auto; gap: .65rem; padding: .75rem .9rem; }
.self-profile-verification > span { align-items: center; background: var(--ttu-light-green); border-radius: .55rem; color: var(--ttu-primary-green); display: flex; font-size: 1rem; height: 38px; justify-content: center; width: 38px; }
.self-profile-verification small, .self-profile-verification strong { display: block; }
.self-profile-verification small { color: var(--ttu-medium-gray); font-size: .62rem; text-transform: uppercase; }
.self-profile-verification strong { color: var(--ttu-dark-green); font-size: .75rem; margin-top: .1rem; }
.self-profile-grid { margin-top: 1.5rem; }
.self-profile-card { background: var(--ttu-white); border: 1px solid rgba(0,100,0,.09); border-radius: 1rem; box-shadow: 0 8px 26px rgba(31,55,31,.06); padding: 1.35rem; }
.self-profile-card-heading { align-items: center; border-bottom: 1px solid #e7eee7; display: flex; justify-content: space-between; margin-bottom: .9rem; padding-bottom: .85rem; }
.self-profile-card-heading .eyebrow { margin-bottom: .12rem !important; }
.self-profile-card-heading h2 { font-size: 1.5rem; margin: 0; }
.self-profile-card-heading > i { color: var(--ttu-primary-green); font-size: 1.15rem; }
.self-profile-detail-list { margin: 0; }
.self-profile-detail-list > div { border-bottom: 1px solid #edf1ed; display: grid; gap: .65rem; grid-template-columns: minmax(120px, 38%) 1fr; padding: .7rem 0; }
.self-profile-detail-list > div:last-child { border-bottom: 0; padding-bottom: 0; }
.self-profile-detail-list dt { color: var(--ttu-medium-gray); font-size: .7rem; font-weight: 500; }
.self-profile-detail-list dd { font-size: .77rem; font-weight: 600; margin: 0; overflow-wrap: anywhere; }
.self-profile-detail-list a { text-decoration: none; }
.self-project-name { background: var(--ttu-light-green); border-left: 4px solid var(--ttu-primary-green); border-radius: .45rem; color: var(--ttu-dark-green); font-family: "Cormorant Garamond", serif; font-size: 1.5rem; font-weight: 700; padding: .8rem 1rem; }
.self-project-description { padding: 1rem 0; }
.self-project-description h3 { font-family: "Poppins", sans-serif; font-size: .7rem; font-weight: 600; margin: 0 0 .4rem; text-transform: uppercase; }
.self-project-description p { color: #596159; font-size: .76rem; line-height: 1.75; margin: 0; }
.self-project-action { align-items: center; border-top: 1px solid #e7eee7; display: flex; gap: 1rem; justify-content: space-between; padding-top: .9rem; }
.self-project-action > span { color: var(--ttu-medium-gray); font-size: .67rem; line-height: 1.5; }
.self-project-action a { align-items: center; display: inline-flex; flex: 0 0 auto; font-size: .72rem; font-weight: 600; gap: .35rem; text-decoration: none; }
.profile-edit-heading { margin: 0 auto 1.5rem; max-width: 720px; text-align: center; }
.profile-edit-heading .eyebrow { background: var(--ttu-light-green); border: 1px solid rgba(0,100,0,.1); border-radius: 999px; display: inline-flex; margin-bottom: .7rem !important; padding: .35rem .75rem; }
.profile-edit-heading h1 { font-size: clamp(2rem, 4vw, 2.75rem); margin-bottom: .55rem; }
.profile-edit-heading > p:last-child { color: var(--ttu-medium-gray); font-size: .78rem; line-height: 1.65; margin: 0 auto; max-width: 560px; }
.profile-edit-card { border-top: 4px solid var(--ttu-primary-green); }
.profile-edit-actions { align-items: center; border-top: 1px solid #e7eee7; display: flex; gap: .6rem; justify-content: flex-end; margin-top: 1.4rem; padding-top: 1.2rem; }
.section-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 1rem; }
.live-indicator { color: var(--ttu-danger); font-size: .75rem; font-weight: 600; text-transform: uppercase; }
.live-indicator::before { animation: pulse 1.8s infinite; background: var(--ttu-danger); border-radius: 50%; content: ""; display: inline-block; height: 8px; margin-right: .4rem; width: 8px; }
@keyframes pulse { 50% { opacity: .35; } }
@media (min-width: 992px) {
    .hub-sidebar { align-self: flex-start; height: 100vh; height: 100dvh; min-height: 100vh; min-height: 100dvh; overflow-y: auto; position: sticky; top: 0; }
    .sidebar-inner { height: auto; min-height: 100%; }
}
@media (min-width: 1600px) {
    .sidebar-inner { padding: 1.25rem clamp(1.1rem, 1.2vw, 1.5rem); }
    .sidebar-logo-panel { height: 150px; margin-bottom: 1rem; width: 150px; }
    .sidebar-brand-name { font-size: .76rem; letter-spacing: .055em; }
    .sidebar-navigation { padding-top: .85rem; }
    .sidebar-link { font-size: .96rem; gap: 1rem; padding: .9rem 1rem; }
    .sidebar-link i { font-size: 1.18rem; width: 1.45rem; }
    .sidebar-account { padding-top: 1.2rem; }
    .sidebar-user-copy strong { font-size: .84rem; }
    .sidebar-user-copy span { font-size: .72rem; }
}
@media (max-width: 991.98px) {
    .hub-sidebar { --bs-offcanvas-width: min(86vw, 320px); flex-basis: auto; max-width: var(--bs-offcanvas-width); width: var(--bs-offcanvas-width); }
    .sidebar-inner { min-height: calc(100vh - 61px); min-height: calc(100dvh - 61px); }
}
@media (max-width: 767.98px) { .public-navbar { padding: .5rem .75rem; } .public-logo { height: 58px; width: 58px; } .app-topbar { min-height: 64px; padding: .55rem .75rem; } .topbar-title strong { font-size: 1rem; } .topbar-title span { display: none; } .page-heading { align-items: stretch; flex-direction: column; } .page-heading > .btn, .page-heading > div:last-child { width: 100%; } .form-card-heading { align-items: flex-start; } .form-card-icon { flex-basis: 48px; font-size: 1.3rem; height: 48px; } .attendance-search-card { padding: 1rem; } .attendance-name-form { grid-template-columns: 1fr; } .attendance-name-field { max-width: none; } .attendance-search-actions { flex-wrap: wrap; } .attendance-search-actions .btn:first-child { flex: 1; } .attendance-results-header, .presence-dashboard-heading, .presence-table-header, .student-dashboard-heading, .student-history-header { align-items: flex-start; flex-direction: column; } .presence-stat-card { min-height: 130px; } .presence-updated, .student-dashboard-date { align-self: flex-start; } .daily-attendance-header { align-items: flex-start; padding: 1rem; } .daily-attendance-form { padding: 1rem; } .daily-form-footer { align-items: stretch; flex-direction: column; } .daily-form-footer .btn { width: 100%; } .detail-list { grid-template-columns: 1fr; gap: .2rem; } .detail-list dd { margin-bottom: .7rem; } .content-card > .table-responsive { border-radius: .9rem; } }
@media (max-width: 767.98px) { .password-auth-heading h1 { font-size: 1.75rem; } .password-auth-footer a { flex-basis: 100%; margin-left: 0; } }
@media (max-width: 767.98px) { .innovator-record-toolbar > span { display: none; } .innovator-record-hero, .innovator-record-identity, .record-attendance-heading, .record-access-card { align-items: flex-start; flex-direction: column; } .innovator-record-hero { padding: 1.15rem; } .innovator-record-avatar { flex-basis: 76px; height: 76px; width: 76px; } .innovator-name-line h1 { font-size: 1.8rem; } .innovator-record-actions, .innovator-record-actions form, .innovator-record-actions .btn, .record-access-card form, .record-access-card .btn { width: 100%; } .record-detail-list > div { grid-template-columns: 1fr; gap: .25rem; } .record-attendance-heading { gap: .8rem; } }
@media (max-width: 575.98px) { .critical-action-footer { align-items: stretch; flex-direction: column-reverse; } .critical-action-footer form, .critical-action-footer .btn { width: 100%; } }
@media (max-width: 575.98px) { .profile-edit-actions { display: grid; grid-template-columns: 1fr 1fr; } }
@media (max-width: 767.98px) { .self-profile-toolbar, .self-profile-hero, .self-profile-identity, .self-project-action { align-items: flex-start; flex-direction: column; } .self-profile-toolbar .btn { width: 100%; } .self-profile-hero { padding: 1.15rem; } .self-profile-avatar { flex-basis: 84px; height: 84px; width: 84px; } .self-profile-name-line h2 { font-size: 1.75rem; } .self-profile-verification { width: 100%; } .self-profile-detail-list > div { grid-template-columns: 1fr; gap: .25rem; } }
@media (max-width: 767.98px) { .attendance-history-card-header { align-items: flex-start; flex-direction: column; } }
@media (max-width: 767.98px) { .student-dashboard-heading { align-items: center; flex-direction: column; text-align: center; } .student-dashboard-date { align-self: center; } }
@media (max-width: 991.98px) { .session-timing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .attendance-record-toolbar > span { display: none; } .attendance-record-hero, .attendance-record-person, .attendance-section-heading, .session-activity-heading { align-items: flex-start; flex-direction: column; } .attendance-record-hero { padding: 1.15rem; } .attendance-record-avatar { flex-basis: 72px; height: 72px; width: 72px; } .attendance-record-name-line h1 { font-size: 1.75rem; } .attendance-record-hero > .btn { width: 100%; } .attendance-section-heading { gap: .3rem; } .session-timing-grid, .session-activity-grid { grid-template-columns: 1fr; } .session-timing-card { min-height: 78px; } .session-project-label { max-width: 100%; } .session-activity-item, .session-activity-item:nth-child(odd), .session-activity-item:nth-last-child(-n+2) { border-bottom: 1px solid #e8eee8; border-right: 0; min-height: 0; } .session-activity-item:last-child { border-bottom: 0; } }
@media (max-width: 991.98px) and (min-width: 768px) { .login-layout { grid-template-columns: minmax(0, 1fr) minmax(350px, .92fr); } .login-welcome-panel { padding: 2.25rem; } .login-form-panel { padding: 2.5rem 2rem; } }
@media (max-width: 767.98px) { .login-layout { grid-template-columns: 1fr; max-width: 650px; } .login-welcome-panel { min-height: 410px; padding: 2.3rem; } .login-form-panel { padding: 2.5rem 2rem; } }
@media (max-width: 575.98px) { .login-layout { border-radius: .9rem; margin: 0 auto; } .login-welcome-panel { min-height: 430px; padding: 1.6rem; } .login-logo-frame { height: 150px; margin-bottom: 1rem; width: 150px; } .login-welcome-content h1 { font-size: 2.25rem; } .login-form-panel { padding: 2rem 1.35rem; } }

/* Responsive system refinements */
@media (max-width: 1199.98px) and (min-width: 768px) {
    .student-summary-stack { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .student-stat-card, .attendance-guidance-card { min-height: 126px; }
}

@media (max-width: 991.98px) {
    .app-main { width: 100%; }
    .sidebar-inner { height: auto; max-height: calc(100dvh - 61px); overflow-y: auto; }
    .presence-table, .attendance-records-table { min-width: 940px; }
    .attendance-history-table, .record-attendance-table { min-width: 720px; }
    .innovator-directory-table-card .table { min-width: 650px; }
}

@media (max-width: 767.98px) {
    .project-page-heading { align-items: flex-start; flex-direction: column; }
    body { font-size: .9rem; }
    h1 { font-size: clamp(1.85rem, 9vw, 2.35rem); }
    h2 { font-size: 1.45rem; }
    .app-content { padding: 1.15rem .9rem !important; }
    .app-topbar { gap: .6rem; padding-inline: .7rem; }
    .app-topbar > .dropdown { flex: 0 0 auto; }
    .topbar-title { flex: 1 1 auto; }
    .topbar-title strong { font-size: .96rem; }
    .account-menu-button { height: 43px; justify-content: center; padding: 0; width: 43px; }
    .dropdown-menu { max-width: calc(100vw - 1.4rem); }
    .dropdown-item-text, .dropdown-item-text small { overflow-wrap: anywhere; white-space: normal; }
    .hub-footer .container-fluid { align-items: center; flex-direction: column; text-align: center; }
    .public-brand { gap: .7rem; min-width: 0; }
    .public-brand > span { min-width: 0; }
    .public-brand small { line-height: 1.35; white-space: normal; }
    .page-heading { gap: .8rem; margin-bottom: 1.15rem; }
    .page-heading h1 { margin-bottom: .35rem; }
    .innovator-list-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .innovator-list-actions .btn { align-items: center; display: inline-flex; justify-content: center; white-space: normal; }
    .content-card .card-body.p-4, .auth-card .card-body.p-4 { padding: 1.2rem !important; }
    .content-card .card-body.p-lg-5 { padding: 1.2rem !important; }
    .form-card-heading h1 { font-size: 1.9rem; }
    .attendance-search-intro, .daily-attendance-header { align-items: flex-start; }
    .attendance-search-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .attendance-search-actions .btn { width: 100%; }
    .attendance-results-header, .presence-table-header, .student-history-header, .attendance-history-card-header, .record-attendance-heading { padding: 1rem; }
    .presence-title-line { align-items: flex-start; flex-wrap: wrap; }
    .presence-stat-card { padding: 1.1rem; }
    .presence-stat-card strong { font-size: 2.3rem; }
    .student-summary-stack { grid-template-columns: 1fr; }
    .student-stat-card { min-height: 108px; }
    .student-dashboard-heading h1 { font-size: clamp(1.85rem, 8vw, 2.3rem); }
    .student-dashboard-date { white-space: normal; }
    .daily-attendance-header h2 { font-size: 1.4rem; }
    .daily-form-footer > span { line-height: 1.55; text-align: center; }
    .auth-wrap { min-height: auto; padding-block: .5rem; }
    .empty-state { margin: 1.5rem auto; padding: 2rem 1rem; }
    .empty-state .d-flex { align-items: stretch; flex-direction: column; }
    .empty-state .btn { width: 100%; }
    .not-found-page { min-height: 60vh; padding: .5rem 0; }
    .not-found-card { padding: 2.5rem 1.1rem; }
    .not-found-code { font-size: 9rem; top: 1.75rem; }
    .not-found-action { min-width: 0; width: 100%; }
    .record-detail-card, .self-profile-card { padding: 1.05rem; }
    .record-project-name, .self-project-name { font-size: 1.28rem; overflow-wrap: anywhere; }
    .self-profile-meta, .innovator-record-meta, .attendance-record-meta { align-items: flex-start; flex-direction: column; }
    .self-profile-meta span, .innovator-record-meta span, .attendance-record-meta span { width: 100%; }
    .session-timing-card strong { white-space: normal; }
    .attendance-correction-note { padding: .9rem; }

    .mobile-card-table-wrap { overflow: visible; }
    .mobile-card-table { display: block; min-width: 0 !important; width: 100%; }
    .mobile-card-table > thead { display: none; }
    .mobile-card-table > tbody { display: grid; gap: .9rem; padding: .9rem; width: 100%; }
    .mobile-card-table > tbody > tr { background: var(--ttu-white); border: 1px solid #dfe8df; border-radius: .8rem; box-shadow: 0 5px 16px rgba(31,55,31,.05); display: block; overflow: hidden; width: 100%; }
    .mobile-card-table > tbody > tr > td { align-items: start; border-bottom: 1px solid #edf1ed; display: grid; gap: .75rem; grid-template-columns: minmax(92px, 34%) minmax(0, 1fr); padding: .7rem .8rem; text-align: left; width: 100%; }
    .mobile-card-table > tbody > tr > td:last-child { border-bottom: 0; }
    .mobile-card-table > tbody > tr > td[data-label]::before { color: var(--ttu-medium-gray); content: attr(data-label); font-size: .64rem; font-weight: 600; letter-spacing: .04em; padding-top: .12rem; text-transform: uppercase; }
    .mobile-card-table > tbody > tr > td:not([data-label]) { display: block; padding: 0; }
    .mobile-card-table > tbody > tr > td:not([data-label])::before { display: none; }
    .mobile-card-table .attendance-person, .mobile-card-table .work-done-summary, .mobile-card-table .record-work-summary { min-width: 0; width: 100%; }
    .mobile-card-table .record-view-button { border-radius: .5rem; height: 38px; width: 100%; }
    .mobile-card-table .presence-empty-state, .mobile-card-table .attendance-empty-state, .mobile-card-table .attendance-history-empty, .mobile-card-table .record-attendance-empty, .mobile-card-table .student-history-empty { padding: 2.2rem 1rem; }
}

@media (max-width: 575.98px) {
    .app-content { padding-inline: .75rem !important; }
    .sidebar-logo-panel { height: 108px; width: 108px; }
    .innovator-list-actions, .attendance-search-actions { grid-template-columns: 1fr; }
    .form-card-heading { flex-direction: column; }
    .form-card-icon { flex-basis: 46px; height: 46px; width: 46px; }
    .narrow-card form > .btn { margin: .2rem 0; width: 100%; }
    .profile-edit-actions { grid-template-columns: 1fr; }
    .login-welcome-panel { min-height: 350px; padding: 1.35rem 1rem; }
    .login-logo-frame { height: 122px; width: 122px; }
    .login-welcome-content h1 { font-size: 1.95rem; }
    .login-form-panel { padding: 1.6rem 1rem; }
    .login-form-content h2, .password-reset-form-content h2 { font-size: 1.85rem; }
    .recovery-guidelines { padding: 1rem; }
    .presence-stat-card { min-height: 116px; }
    .presence-stat-icon { flex-basis: 52px; height: 52px; }
    .mobile-card-table > tbody { padding: .7rem; }
    .mobile-card-table > tbody > tr > td { gap: .55rem; grid-template-columns: minmax(82px, 31%) minmax(0, 1fr); padding: .65rem .7rem; }
    .pagination { flex-wrap: wrap; row-gap: .4rem; }
}

@media (max-width: 389.98px) {
    .topbar-title strong { font-size: .88rem; }
    .app-topbar { gap: .45rem; padding-inline: .55rem; }
    .sidebar-toggle, .account-menu-button { height: 40px; width: 40px; }
    .mobile-card-table > tbody > tr > td { display: block; }
    .mobile-card-table > tbody > tr > td[data-label]::before { display: block; margin-bottom: .3rem; }
    .critical-action-header { align-items: flex-start; }
}

@media (max-width: 767.98px) {
    .project-form-card, .project-portfolio-card { padding: 1rem; }
    .project-portfolio-heading { align-items: flex-start; flex-direction: column; margin: -1rem -1rem 1rem; padding: 1rem; }
    .project-card-title { flex-direction: column; }
    .project-focus-badge { white-space: normal; }
    .project-count-line { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 991.98px) and (max-height: 620px) {
    .sidebar-logo-panel { height: 76px; width: 76px; }
    .sidebar-brand { padding-bottom: .5rem; }
    .sidebar-link { margin-bottom: .15rem; padding-block: .55rem; }
}

@media (pointer: coarse) {
    .btn, .sidebar-link, .page-link, .dropdown-item { min-height: 44px; }
    .record-view-button { height: 44px; width: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
