@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing: .25rem;--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor}@supports (color: color-mix(in lab,red,red)){{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border-width:0}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{color-scheme:light;--blue: #2563eb;--blue-dark: #1d4ed8;--sky: #eff6ff;--bg: #f6f8fb;--panel: rgba(255, 255, 255, .94);--panel-soft: rgba(255, 255, 255, .9);--line: #e2e8f0;--border: #e2e8f0;--line-strong: #cbd5e1;--table-line: #e2e8f0;--text: #0f172a;--muted: #64748b;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-soft: rgba(37, 99, 235, .1);--success: #16a34a;--success-soft: #dcfce7;--warning: #d97706;--warning-soft: #fef3c7;--danger: #dc2626;--danger-soft: #fee2e2;--info: #2563eb;--info-soft: #dbeafe;--shadow: 0 22px 60px rgba(30, 41, 59, .09);--shadow-soft: 0 12px 24px rgba(30, 41, 59, .08);--radius: 22px;--skeleton: linear-gradient(90deg, rgba(37, 99, 235, .08), rgba(255, 255, 255, .92), rgba(37, 99, 235, .08))}@media (prefers-color-scheme: dark){:root{color-scheme:light}}*{box-sizing:border-box}html,body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(37,99,235,.1),transparent 34rem),linear-gradient(180deg,#fbfdff 0%,var(--bg) 100%)}body{min-height:100vh;color:var(--text)}button,input,select,textarea{font:inherit}button:disabled{opacity:.6;cursor:not-allowed;transform:none}a{color:inherit;text-decoration:none}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at top left,rgba(204,122,74,.26),transparent 28%),radial-gradient(circle at bottom right,rgba(39,92,122,.2),transparent 34%),linear-gradient(135deg,#fcf5eb,#f7efe5 52%,#f0e2d5)}.hero-panel,.profile-card,.info-card,.table-card,.state-card,.form-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.hero-panel{width:min(700px,100%);border-radius:32px;padding:32px;display:grid;gap:22px}.brand-lockup{display:flex;align-items:center;gap:16px}.brand-lockup.compact{margin-bottom:12px}.brand-mark{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#c77043,#e29861 55%,#2a6d86);color:#fff;font-weight:800;letter-spacing:.08em;font-size:20px}.eyebrow{margin:0 0 6px;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:700;color:#9b6844}.hero-copy h2,.page-header h1,.page-header h2,.info-card h3,.section-heading h2{margin:0 0 8px}.hero-copy p,.page-header p,.subtle{color:var(--muted)}.profile-card,.info-card,.state-card,.form-card{border-radius:18px;padding:20px}.state-card{display:grid;gap:12px;justify-items:center;text-align:center}.state-card.inline{justify-items:start;text-align:left;box-shadow:none;background:var(--panel-soft)}.state-card.error,.feedback.error{color:var(--danger)}.stack-md,.stack-lg{display:grid}.stack-md{gap:16px}.stack-lg{gap:24px}.field{display:grid;gap:8px}.field span,.checkbox-field span{font-weight:600;font-size:14px}input,select{width:100%;border-radius:14px;border:1px solid rgba(173,140,99,.34);background:#fffffff0;padding:12px 14px;color:var(--text)}input:focus,select:focus{outline:2px solid rgba(199,112,67,.22);border-color:#c77043b3}.checkbox-field{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.checkbox-field input{width:22px;height:22px;margin:0;cursor:pointer;accent-color:var(--accent)}.checkbox-field input:focus-visible{outline:3px solid rgba(199,112,67,.24);outline-offset:3px}.primary-button,.ghost-button,.danger-button,.logout-button,.tab-button,.nav-link,.button-link,.icon-button,.page-chip,.sort-button{border:0;cursor:pointer;font:inherit;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,border-color .18s ease,background-color .18s ease,color .18s ease}.primary-button,.ghost-button,.danger-button,.logout-button,.tab-button,.nav-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:14px}.primary-button{color:#fff;background:linear-gradient(135deg,#c77043,#b85734);box-shadow:0 12px 24px #b8573438}.ghost-button,.logout-button,.tab-button,.nav-link{color:var(--text);background:var(--panel-soft);border:1px solid var(--line)}.danger-button{color:var(--danger);background:var(--danger-soft);border:1px solid rgba(168,58,50,.18)}.tab-button.active,.nav-link.active{background:#c7704324;color:#9c512f;border-color:#c7704352}.primary-button:hover,.ghost-button:hover,.danger-button:hover,.logout-button:hover,.tab-button:hover,.nav-link:hover,.button-link:hover,.icon-button:hover,.page-chip:hover,.sort-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}.button-link{background:transparent;padding:0;color:#9c512f;font-weight:700;text-align:left}.button-link:hover{text-decoration:underline}.auth-tabs,.badge-row,.action-row,.sidebar-actions,.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.guide-list{margin:0;padding-left:20px;display:grid;gap:8px}.guide-list.compact{gap:10px;font-size:14px}.workspace-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.app-header{position:sticky;top:0;z-index:30;padding:14px 20px 18px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--bg),var(--bg));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 28px #4c30180f}@supports (color: color-mix(in lab,red,red)){.app-header{border-bottom:1px solid color-mix(in srgb,var(--line) 86%,transparent)}}@supports (color: color-mix(in lab,red,red)){.app-header{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 98%,transparent),color-mix(in srgb,var(--bg) 82%,transparent))}}.app-header__inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;width:100%;max-width:1440px;margin:0 auto;padding:16px 22px;border:1px solid var(--line);border-radius:22px;background:var(--panel);box-shadow:0 18px 34px #4c301814}@supports (color: color-mix(in lab,red,red)){.app-header__inner{background:color-mix(in srgb,var(--panel) 96%,transparent)}}.app-brand{display:inline-flex;align-items:center;gap:14px;min-width:0}.app-brand__mark{width:52px;height:52px;border-radius:16px}.app-brand__copy{display:grid;gap:2px}.app-brand__copy small{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;font-size:10px}.app-brand__copy strong{font-size:18px}.top-nav{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.top-nav__link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:999px;border:1px solid transparent;color:var(--muted);background:transparent;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;position:relative}.top-nav__link:hover,.top-nav__link:focus-visible{background:var(--panel-soft);border-color:var(--line);color:var(--text);transform:translateY(-1px)}.top-nav__link.active{background:var(--accent-soft);border-color:#c7704352;color:#8c4328;box-shadow:0 10px 22px #a03d2b1f}@supports (color: color-mix(in lab,red,red)){.top-nav__link.active{background:color-mix(in srgb,var(--accent-soft) 92%,#fff)}}.app-header__actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:12px}.app-header__download{min-height:46px;padding-inline:18px}.app-header__switch{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding-inline:18px;white-space:nowrap}.notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--danger);color:#fff;font-size:12px;font-weight:900;line-height:1;box-shadow:0 10px 22px #b7463b33}.app-header__approval-badge{margin-right:-8px}.user-menu{position:relative}.user-menu summary{list-style:none}.user-menu summary::-webkit-details-marker{display:none}.user-menu__trigger{display:inline-flex;align-items:center;gap:12px;min-height:54px;padding:8px 14px;border-radius:18px;border:1px solid var(--line);background:var(--panel-soft);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.user-menu__trigger:hover,.user-menu[open] .user-menu__trigger{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.user-chip{display:inline-flex;align-items:center;gap:12px}.user-avatar{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,#c77043,#2a6d86)}.user-menu__identity{display:grid;gap:3px;text-align:left}.user-menu__identity strong,.user-menu__identity small{line-height:1.1}.user-menu__identity strong{font-size:14px;margin:0}.user-menu__identity small{color:var(--muted);font-size:12px}.user-menu__panel{min-width:240px;display:grid;gap:8px;padding:8px;border-radius:16px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);position:absolute;top:calc(100% + 10px);right:0}@supports (color: color-mix(in lab,red,red)){.user-menu__panel{background:color-mix(in srgb,var(--panel) 96%,transparent)}}.user-menu:not([open]) .user-menu__panel{display:none}.user-menu__headline{display:grid;gap:4px;padding:8px 12px 10px}.user-menu__item--active{background:var(--accent-soft);color:#9c512f}.user-menu__section{display:grid;gap:10px}.user-menu__label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.user-menu__actions{display:flex;gap:8px;flex-wrap:wrap}.user-menu__action{display:inline-flex;width:100%;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel-soft);color:var(--text)}.user-menu__action.active{background:var(--accent-soft);border-color:#c7704352;color:#9c512f}.user-menu__logout{width:100%}.dashboard-shell{display:grid;grid-template-columns:288px minmax(0,1fr);gap:24px;width:100%;max-width:1440px;margin:0 auto;padding:20px}.dashboard-sidebar{position:sticky;top:108px;height:fit-content;display:grid;align-content:start;gap:14px}.dashboard-content{min-width:0;padding:4px 4px 28px}.profile-name{margin:0 0 10px;font-size:18px;font-weight:700}.nav-group{display:grid;gap:8px}.nav-title{margin:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#7e6b57}.download-card,.sidebar-assistant-card{display:grid;gap:12px}.sidebar-assistant-card{padding:18px;background:var(--panel)}@supports (color: color-mix(in lab,red,red)){.sidebar-assistant-card{background:color-mix(in srgb,var(--panel) 90%,transparent)}}.sidebar-assistant-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.sidebar-assistant-card__actions{display:grid;gap:8px;justify-items:start}.sidebar-assistant-card__guide{display:grid;gap:10px;padding-top:8px;border-top:1px solid var(--table-line)}.page-section{display:grid;gap:22px}.page-header{display:flex;gap:16px;justify-content:space-between;align-items:flex-start}.page-header>:first-child{flex:1 1 420px;min-width:min(420px,100%)}.page-header>.toolbar{flex:0 1 auto;justify-content:flex-end}.page-header.compact{margin-bottom:6px}.split-header{flex-wrap:wrap}.search-field{width:min(360px,100%);min-width:240px}.toolbar-field{width:min(180px,100%);min-width:140px}.table-card{border-radius:20px;padding:22px;display:grid;gap:16px;overflow:visible;box-shadow:0 18px 38px #4c301814}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.info-card{display:grid;gap:14px}.course-code{margin:0 0 6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#9c512f}.split-row{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.status-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;background:#7a85921f;color:#46525f}.status-badge.accent{background:#c7704324;color:#9c512f}.status-badge.success{background:#256f4f24;color:#1b6d4b}.status-badge.warning{background:#b27a1024;color:#996300}.status-badge.danger{background:#b7463b1f;color:#8a2e2e}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th,.data-table td{padding:18px 16px;border-bottom:1px solid var(--table-line);text-align:left;vertical-align:top}.data-table th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7e6b57;position:sticky;top:0;z-index:1;background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}@supports (color: color-mix(in lab,red,red)){.data-table th{background:color-mix(in srgb,var(--panel) 92%,transparent)}}.data-table tbody tr{transition:background-color .18s ease,transform .18s ease}.data-table tbody tr:nth-child(2n){background:#a03d2b06}.data-table tbody tr:hover{background:#a03d2b14}.approvals-shell__header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.section-tabs{display:inline-flex;gap:10px;padding:6px;border-radius:16px;background:var(--panel-soft);border:1px solid var(--line)}@supports (color: color-mix(in lab,red,red)){.section-tabs{background:color-mix(in srgb,var(--panel-soft) 92%,transparent)}}.section-tabs__button{min-height:44px;min-width:138px;border-radius:12px}.section-tabs__button.active:not(:disabled){background:var(--accent-soft);border-color:#c7704347;color:#8c4328;box-shadow:var(--shadow-soft)}.approvals-table .table-meta{gap:6px}.approvals-table .table-meta strong{font-size:15px}.approvals-table .table-note{font-size:12px}.approvals-empty-state{gap:14px;padding:36px 24px}.approvals-empty-state--success .empty-state__icon{background:var(--success-soft);color:var(--success)}.empty-state__icon{width:64px;height:64px;border-radius:18px;display:inline-grid;place-items:center;font-size:28px;background:var(--warning-soft);color:var(--warning)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.selector-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.selector-card{width:100%;border:1px solid rgba(173,140,99,.18);border-radius:18px;padding:14px;background:#ffffffc7;display:flex;gap:12px;align-items:flex-start;text-align:left}.selector-copy{display:grid;gap:4px}.selector-copy small{color:var(--muted)}.section-heading p,.section-heading h2{margin:0}.materials-panel{display:grid;gap:16px}.materials-table{min-width:860px}.material-name-edit,.material-name-edit input{min-width:260px}.pagination-bar{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.table-scroll{width:100%;overflow:auto;border:0;border-radius:0;background:transparent}.table-list-shell{gap:18px}.table-list-content{display:grid;gap:0}.table-list-skeleton{display:grid;gap:18px}.table-list-skeleton__header{display:grid;gap:10px}.skeleton-block{display:block;border-radius:999px;background:var(--skeleton);background-size:200% 100%;animation:skeleton-shimmer 1.4s linear infinite}.skeleton-block--title{width:180px;height:18px}.skeleton-block--text{width:100px;height:12px}.skeleton-block--cell{width:100%;height:14px}.search-control{width:min(340px,100%);min-width:min(300px,100%);flex:0 1 340px;margin:0}.search-input-shell{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;min-height:50px;border-radius:16px;border:1px solid rgba(173,140,99,.34);background:#fffffff0;padding:0 8px 0 12px}.search-input-shell input{border:0;background:transparent;padding-left:0;padding-right:0}.search-input-shell input:focus{outline:0;border-color:transparent}.search-input-shell input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.search-input-shell:focus-within{outline:2px solid rgba(199,112,67,.22);border-color:#c77043b3}.search-input-shell__icon{color:var(--muted);font-size:16px}.search-input-shell__clear{margin-right:-2px}.search-input-shell__submit{min-height:38px;padding:0 14px;border-radius:12px;box-shadow:none;white-space:nowrap}.icon-button{width:38px;height:38px;border-radius:12px;display:inline-grid;place-items:center;border:1px solid var(--line);background:var(--panel-soft);color:var(--text);box-shadow:none}.icon-button--ghost{background:transparent}.page-chip,.sort-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--panel-soft);color:var(--text)}.page-chip.active,.sort-button.active{background:var(--accent-soft);border-color:#c770434d;color:#9c512f;box-shadow:var(--shadow-soft)}.sort-button{padding:0 10px;min-width:unset;height:auto;border:0;background:transparent;border-radius:10px;text-transform:inherit;letter-spacing:inherit;font-size:inherit;color:inherit}.sort-button__arrow{font-size:13px;color:var(--muted)}.sort-button.active .sort-button__arrow{color:currentColor}.pagination-shell{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:18px 0 0;border-radius:0;background:transparent;border:0;border-top:1px solid var(--table-line)}.pagination-summary{margin:0;color:var(--muted);font-weight:600}.pagination-controls,.pagination-buttons,.pagination-nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pagination-buttons .icon-button,.pagination-buttons .page-chip{min-width:44px;min-height:44px}.table-meta{display:grid;gap:4px}.table-meta strong,.table-meta p{margin:0}.table-meta strong{font-size:15px;font-weight:700;color:var(--text)}.table-primary-link{font-size:15px;font-weight:700;color:var(--text);text-decoration:none;transition:color .18s ease,opacity .18s ease}.table-primary-link:hover,.table-primary-link:focus-visible{color:#9c512f;text-decoration:underline}.table-note{color:var(--muted);font-size:13px}.action-row--table{justify-content:flex-end}.status-badge{white-space:nowrap}.status-badge.info{background:var(--info-soft);color:var(--info)}.toast-stack{position:fixed;top:18px;right:18px;z-index:2000;display:grid;gap:12px;width:min(360px,calc(100vw - 24px))}.toast{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}@supports (color: color-mix(in lab,red,red)){.toast{background:color-mix(in srgb,var(--panel) 94%,transparent)}}.toast--success{border-color:#1f7a523d}.toast--error{border-color:#a83a323d}.toast__copy{display:grid;gap:4px}.toast__copy strong,.toast__copy p{margin:0}.table-action-button{min-width:120px;justify-content:center;white-space:nowrap}.table-action-button--compact{min-width:108px}.danger-button.table-action-button:not(:disabled){border-color:#a83a3247;color:var(--danger)}.page-chip.active:not(:disabled){background:var(--accent-soft);border-color:#c770434d;color:#9c512f;box-shadow:var(--shadow-soft)}.page-chip:not(:disabled){background:var(--panel-soft)}.table-action-button.is-muted{box-shadow:none}.approvals-workspace{display:grid;gap:16px;padding:0;border:0;background:transparent;box-shadow:none}.pagination-nav-button{min-height:44px;padding-inline:16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.feedback{margin:0}.auth-shell{background:radial-gradient(circle at top left,rgba(37,99,235,.12),transparent 32rem),linear-gradient(180deg,#fbfdff 0%,var(--bg) 100%)}.hero-panel,.profile-card,.info-card,.table-card,.state-card,.form-card,.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-mark{background:linear-gradient(135deg,#2563eb,#38bdf8);box-shadow:0 14px 34px #2563eb3d}.eyebrow,.course-code,.button-link,.table-primary-link:hover,.table-primary-link:focus-visible{color:var(--accent)}.primary-button{color:#fff;background:var(--blue);box-shadow:0 14px 30px #2563eb38}.primary-button:hover:not(:disabled){background:var(--blue-dark)}.ghost-button,.logout-button,.tab-button,.nav-link{background:#f8fafc;border:1px solid var(--line);color:var(--text)}.danger-button{color:var(--danger);background:var(--danger-soft);border:1px solid rgba(220,38,38,.18)}.tab-button.active,.nav-link.active,.section-tabs__button.active:not(:disabled){background:var(--sky);border-color:#2563eb38;color:var(--blue);box-shadow:inset 0 0 0 1px #2563eb14}.approvals-workspace .section-tabs.approvals-tabs--borderless{border:0}.approvals-workspace .state-card.approvals-empty-state.approvals-empty-state--borderless{border:0;box-shadow:none}input,select{border-radius:15px;border:1px solid var(--line);background:#fff;color:var(--text);transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}input:hover,select:hover{border-color:var(--line-strong)}input:focus,select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px #2563eb1f}input[readonly]{background:#f8fafc}.checkbox-field{display:flex;align-items:center;min-height:48px;gap:12px;cursor:pointer}.checkbox-field input,.styled-checkbox{width:20px;height:20px;flex:0 0 20px;appearance:none;border:2px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;position:relative;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.checkbox-field input:hover,.styled-checkbox:hover{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.checkbox-field input:focus,.styled-checkbox:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px #2563eb1f}.checkbox-field input:checked,.styled-checkbox:checked{background:var(--blue);border-color:var(--blue)}.checkbox-field input:checked:after,.styled-checkbox:checked:after{content:"\2713";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:900}.checkbox-field input:disabled,.styled-checkbox:disabled{background:#f1f5f9;cursor:not-allowed}.app-header{position:sticky;top:0;z-index:30;padding:22px 22px 0;border-bottom:0;background:transparent;box-shadow:none}.app-header__inner{min-height:86px;max-width:1500px;border-radius:24px;border:1px solid var(--line);background:#fffffffa;box-shadow:var(--shadow)}.top-nav__link{color:#334155;font-weight:850}.top-nav__link:hover,.top-nav__link:focus-visible,.top-nav__link.active{background:var(--sky);border-color:#2563eb2e;color:var(--blue);box-shadow:inset 0 0 0 1px #2563eb14}.user-menu__trigger,.user-menu__panel{background:#fff;border-color:var(--line)}.user-menu__panel .user-menu__action{background:#f8fafc;border-color:var(--line);color:var(--text);font-weight:850;box-shadow:none}.user-menu__panel .user-menu__action:hover,.user-menu__panel .user-menu__action:focus-visible,.user-menu__panel .user-menu__action.active{background:var(--sky);border-color:#2563eb38;color:var(--blue);box-shadow:inset 0 0 0 1px #2563eb14}.user-avatar{background:linear-gradient(135deg,#2563eb,#38bdf8)}.dashboard-shell{grid-template-columns:290px minmax(0,1fr);gap:30px;max-width:1460px;padding:38px 22px 32px}.dashboard-sidebar{top:125px}.sidebar-assistant-card{border-radius:var(--radius);padding:24px;background:#ffffffeb}.nav-title{color:var(--muted)}.page-section{gap:22px}.page-header.split-header{display:block}.page-header>:first-child{min-width:0}.page-header>.toolbar{margin-top:22px;justify-content:flex-start}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.page-header .toolbar{width:min(820px,100%)}.list-search-control{display:grid;grid-template-columns:minmax(280px,1fr) 118px;gap:12px;align-items:center}.search-box input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.search-box:focus-within input{border-color:var(--blue);box-shadow:0 0 0 4px #2563eb1f}.search-btn,.toolbar-field select,.toolbar>.primary-button{min-height:48px}.table-card{border-radius:var(--radius);padding:10px 20px 18px;overflow:hidden;box-shadow:var(--shadow)}.table-list-shell{gap:0}.table-scroll{overflow:auto;border-radius:20px}.data-table{min-width:980px}.data-table th{color:var(--muted);background:#fbfdff;position:sticky;top:0;z-index:1}.data-table tbody tr:nth-child(2n){background:#2563eb04}.table-meta strong,.table-primary-link{font-weight:900}.table-note,.subtle{color:var(--muted)}.row-main{display:flex;align-items:center;gap:12px;min-width:0}.row-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;color:#fff;font-weight:900;background:linear-gradient(135deg,#2563eb,#38bdf8)}.row-text{min-width:0}.status-badge{border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900}.status-badge.accent,.status-badge.info{color:#1d4ed8;background:#dbeafe}.status-badge.success{color:#15803d;background:#dcfce7}.status-badge.warning{color:#b45309;background:#fef3c7}.status-badge.danger{color:#b91c1c;background:#fee2e2}.pagination-shell{padding:18px 0 0;border-top:1px solid var(--table-line)}.pagination-summary{color:var(--muted)}.page-chip,.icon-button{border-color:var(--line);background:#fff}.page-chip.active,.sort-button.active{background:var(--blue);border-color:var(--blue);color:#fff}.sort-button{color:inherit}.sort-button.active{padding:4px 8px;box-shadow:none}.action-row--table{justify-content:flex-end;flex-wrap:nowrap}.table-action-button{min-width:120px;white-space:nowrap}.detail-page-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.detail-page-title h1{margin:6px 0 10px;font-size:clamp(1.55rem,2vw,2.15rem)}.card{border-radius:var(--radius)}.detail-edit-card,.subject-manager-card{padding:22px;margin-bottom:24px}.detail-edit-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(200px,1fr) minmax(180px,.9fr) minmax(210px,1fr);gap:16px;align-items:end}.course-detail-form{display:grid;gap:18px}.form-actions{display:flex;gap:12px;flex-wrap:wrap}.switch-row{display:flex;align-items:center;gap:10px;min-height:48px;font-weight:900}.inline-action{grid-column:auto;justify-content:flex-start;margin-top:0}.detail-card-actions{align-items:center;justify-content:flex-start}.detail-edit-grid .detail-card-actions{grid-column:1 / -1}.subject-manager-section{display:grid;gap:16px}.subject-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.detail-skeleton{display:grid;gap:16px;padding:24px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.modal-backdrop{position:fixed;inset:0;z-index:1900;display:grid;place-items:center;padding:20px;background:#0f172a6b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal{width:min(620px,100%);padding:24px;border-radius:26px;background:#fff;box-shadow:0 30px 90px #0f172a40}.modal.confirm{max-width:430px;text-align:center}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:10px}.modal-actions.center{justify-content:center}.danger-icon{width:62px;height:62px;margin:0 auto 12px;display:grid;place-items:center;color:var(--danger);background:var(--danger-soft);border-radius:22px}.danger-icon svg{width:30px;height:30px}.danger-icon--default{color:var(--blue);background:var(--sky)}.toast-stack{top:auto;right:22px;bottom:22px;width:min(360px,calc(100vw - 44px))}.toast{border-radius:16px;background:#0f172a;color:#fff;border:0;box-shadow:var(--shadow)}.toast .icon-button{color:#fff;border-color:#ffffff2e;background:#ffffff14}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.loading-spinner{width:42px;height:42px;border-radius:50%;border:4px solid rgba(37,99,235,.16);border-top-color:var(--blue);border-right-color:#38bdf8;animation:dtu-spin .9s linear infinite}.flowbite-spinner{width:44px;height:44px;border-radius:999px;border:4px solid rgba(37,99,235,.16);border-top-color:var(--accent);border-right-color:var(--info);animation:dtu-spin .9s linear infinite}@keyframes dtu-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 1080px){.app-header__inner{grid-template-columns:1fr;justify-items:stretch}.top-nav{justify-content:flex-start}.app-header__actions{justify-content:space-between;flex-wrap:wrap}.dashboard-shell{grid-template-columns:1fr}.dashboard-sidebar{position:static}}@media (max-width: 720px){.app-header{padding:12px 12px 14px}.auth-shell,.dashboard-content{padding:16px}.hero-panel,.profile-card,.info-card,.table-card,.state-card,.form-card{padding:18px;border-radius:18px}.page-header,.split-row,.brand-lockup{flex-direction:column}.app-brand,.user-menu__trigger,.app-header__download{width:100%}.ghost-mobile{display:none}.app-header__actions{width:100%}.table-card,.table-scroll{overflow-x:auto}.toolbar,.pagination-shell,.pagination-controls,.pagination-buttons,.top-nav,.section-tabs{width:100%}.search-control,.toolbar-field{width:100%;min-width:100%}.action-row--table{justify-content:flex-start}.toast-stack{left:12px;right:12px;width:auto}.dashboard-shell{padding:12px}}.btn{border:0;border-radius:14px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:900;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 14px 30px #2563eb38}.btn.primary:hover:not(:disabled){background:var(--blue-dark)}.btn.secondary{background:#f8fafc;color:var(--text);border:1px solid var(--line);box-shadow:none}.btn.danger{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(220,38,38,.18);box-shadow:none}.logo{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;color:#fff;font-weight:900;letter-spacing:.05em;background:linear-gradient(135deg,#2563eb,#38bdf8);box-shadow:0 14px 34px #2563eb3d}.app-shell{padding:22px}.topbar{width:min(1500px,100%);min-width:min(1500px,100%);max-width:1500px;margin:0 auto;min-height:86px;background:#fffffffa;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 22px;position:sticky;top:0;z-index:999}.brand{display:flex;align-items:center;gap:14px;min-width:230px}.brand .app-brand__copy{display:grid;gap:2px}.brand .app-brand__copy small{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.brand .app-brand__copy strong{font-size:1.05rem}.main-nav{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}.nav-btn{border:0;background:transparent;color:#334155;border-radius:999px;padding:11px 18px;font-weight:850}.nav-btn:hover,.nav-btn:focus-visible,.nav-btn.active{color:var(--blue);background:var(--sky);box-shadow:inset 0 0 0 1px #2563eb2e}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.profile-pill{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border:1px solid var(--line);border-radius:18px;background:#fff}.profile-pill .user-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;font-weight:900}.layout.dashboard-shell{max-width:1460px;margin:38px auto;padding:0;display:grid;grid-template-columns:290px minmax(0,1fr);gap:30px}.side-card{height:fit-content;background:#ffffffeb;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;position:sticky;top:125px}.side-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.side-head span{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.74rem;font-weight:900}.side-head b{background:var(--sky);color:var(--blue);border-radius:999px;padding:8px 11px;font-size:.75rem}.side-card p{color:var(--muted);line-height:1.7}.side-card a{display:inline-block;margin-top:14px;color:var(--blue);font-weight:900;text-decoration:none;cursor:pointer}.page-head.stack-head{display:block;margin-bottom:22px}.page-head h1,.detail-page-title h1{margin:6px 0 10px;font-size:clamp(1.55rem,2vw,2.15rem)}.page-head p,.muted,.subtle{color:var(--muted)}.page-head.stack-head .page-tools{margin-top:22px;justify-content:flex-start}.page-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.list-toolbar.with-search-button{display:grid;grid-template-columns:minmax(320px,1fr) 118px minmax(150px,180px) auto;gap:12px;align-items:center;width:min(760px,100%)}.list-toolbar.compact{display:grid;grid-template-columns:minmax(280px,1fr) 118px;gap:12px;align-items:center;width:min(520px,100%)}.list-toolbar app-search-bar,.list-toolbar .list-search-control{display:contents}.list-toolbar .toolbar-field{width:auto;min-width:0}.list-toolbar .toolbar-field select,.list-toolbar .btn,.list-toolbar .search-btn,.list-toolbar .search-box input{height:48px}.list-toolbar.with-search-button .list-toolbar__add-button{justify-self:start;inline-size:max-content;min-inline-size:max-content;white-space:nowrap}.pagination-nav .page-chip{min-height:44px;padding:0 14px;border:1px solid rgba(37,99,235,.2);background:#fff;color:var(--blue);font-weight:900;box-shadow:none}.pagination-nav .pagination-nav__button{min-width:max-content;padding-inline:20px}.pagination-nav .page-chip:hover:not(:disabled),.pagination-nav .page-chip:focus-visible:not(:disabled){background:var(--sky);border-color:#2563eb57;color:var(--blue);box-shadow:inset 0 0 0 1px #2563eb14}.pagination-nav .page-chip.active{background:var(--blue);border-color:var(--blue);color:#fff}.pagination-nav .page-chip:disabled{cursor:not-allowed;opacity:.55;border-color:var(--line);background:#f8fafc;color:var(--muted)}.search-control{width:min(520px,100%);min-width:min(320px,100%);flex:1 1 520px}.search-box{position:relative;min-width:0}.search-box input{height:48px;padding-left:48px;padding-right:48px}.search-icon{position:absolute;left:16px;top:50%;z-index:2;width:20px;height:20px;color:var(--text);pointer-events:none;transform:translateY(-50%)}.search-clear-button{position:absolute;right:6px;top:50%;z-index:2;transform:translateY(-50%)}.search-clear-button:hover{transform:translateY(-50%)}.search-btn{border-radius:12px;white-space:nowrap}.table-wrap{width:100%;overflow-x:auto}.table-wrap.modern-list{border-radius:20px}.table-card.list-card{border-radius:var(--radius);padding:10px 20px 18px;overflow:hidden;box-shadow:var(--shadow)}.table-list-shell:not(.card){display:grid;gap:0}.table-list-shell.card>.state-card,.table-list-shell:not(.card) .state-card{border:0;box-shadow:none}.table-list-shell.card>.state-card{background:transparent}.table-list-shell:not(.card) .state-card{background:#fff}.data-table{width:100%;border-collapse:collapse;min-width:980px}.data-table th,.data-table td{height:76px;padding:16px 18px;border-bottom:1px solid var(--table-line);vertical-align:middle}.data-table th{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;background:#fbfdff;position:sticky;top:0;z-index:1}.data-table tbody tr{height:76px;transition:background-color .16s ease,transform .16s ease}.data-table tbody tr:hover{background:var(--sky)}.status-badge,.badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;font-size:.78rem;font-weight:900;white-space:nowrap}.status-badge.accent,.status-badge.info,.badge.blue{color:#1d4ed8;background:#dbeafe}.status-badge.success,.badge.green{color:#15803d;background:#dcfce7}.status-badge.warning,.badge.yellow{color:#b45309;background:#fef3c7}.status-badge.danger,.badge.red{color:#b91c1c;background:#fee2e2}.subject-manager-card{padding:22px;margin-bottom:24px}.subject-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.empty-state__icon svg{width:30px;height:30px}@media (max-width: 1100px){.list-toolbar.with-search-button{grid-template-columns:1fr 118px;width:100%}.list-toolbar.with-search-button .toolbar-field,.list-toolbar.with-search-button>.btn:not(.search-btn){grid-column:1 / -1}.detail-edit-grid{grid-template-columns:1fr 1fr}.subject-manager-head{flex-direction:column}}@media (max-width: 980px){.topbar{min-height:auto;flex-wrap:wrap}.brand{min-width:auto}.main-nav{order:3;width:100%;overflow-x:auto;justify-content:flex-start;padding-top:10px}.layout.dashboard-shell{grid-template-columns:1fr;margin-top:24px}.side-card{position:static}}@media (max-width: 680px){.app-shell{padding:12px}.top-actions .ghost-mobile{display:none}.grid-form,.list-toolbar.with-search-button,.list-toolbar.compact,.detail-edit-grid{grid-template-columns:1fr}.pagination-shell,.detail-page-title{flex-direction:column;align-items:flex-start}.top-actions,.profile-pill,.user-menu,.user-menu__trigger{width:100%}}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial}}}
