/* ATLAS Campus · own visual system, system fonts, no external assets. */
:root {
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #25263c; background: #f5f6fa; font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  --ink: #25263c; --text: #596078; --muted: #6d7489; --primary: #6153db;
  --border: #e8e9f0; --pale: #eeebfd; --shadow: 0 5px 24px #24243d04;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; }
body.modal-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .56; }
button, a { touch-action: manipulation; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
svg { flex-shrink: 0; }
h1,h2,h3,p { margin: 0; }
button,h1,h2,h3,p,b,strong,dd { overflow-wrap: anywhere; }
p { line-height: 1.6; }
[hidden] { display: none !important; }
::selection { background: #e2dcff; }
:focus-visible { outline: 3px solid #8274e9; outline-offset: 4px; }
h1:focus { outline: none; }
.icon { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.7; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.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; }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 12px; padding: 12px 18px; background: #25263c; color: white; border-radius: 9px; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.boot { min-height: 100dvh; display: grid; place-content: center; text-align: center; gap: 20px; color: var(--text); }
.loader { width: 36px; height: 36px; border: 3px solid #e2defb; border-top-color: var(--primary); border-radius: 50%; margin: auto; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.logo { display: flex; align-items: center; gap: 11px; white-space: nowrap; }
.logo-mark { width: 40px; height: 40px; background: #6556df; border-radius: 13px; display: grid; place-items: center; color: white; font-size: 30px; line-height: 1; font-weight: 650; padding-right: 3px; letter-spacing: -3px; }
.logo-copy { display: flex; flex-direction: column; gap: 4px; }
.logo-word { font-size: 22px; line-height: 1; font-weight: 850; letter-spacing: .03em; }
.logo-period { color: var(--primary); }
.logo-sub { font-size: 8px; letter-spacing: .17em; font-weight: 750; color: #71758b; }
.shell { display: flex; min-height: 100dvh; }
.sidebar { width: 244px; position: fixed; inset: 0 auto 0 0; display: flex; flex-direction: column; padding: 32px 18px 22px; border-right: 1px solid var(--border); background: #fff; z-index: 10; }
.sidebar .logo { margin: 0 16px 44px; }
.nav-label { margin: 0 16px 15px; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: #515461; font-weight: 750; }
.nav-stack { display: flex; flex-direction: column; gap: 6px; }
.nav-item { min-height: 46px; width: 100%; border: 0; background: transparent; padding: 12px 14px; display: flex; align-items: center; gap: 12px; border-radius: 11px; text-align: left; color: #60667c; font-size: 13px; font-weight: 620; }
.nav-item:hover { color: var(--primary); background: #f6f4ff; }
.nav-item.active { background: #eeeafd; color: #5c4ed4; font-weight: 730; }
.nav-item .icon { width: 19px; height: 19px; }
.nav-badge { margin-left: auto; border-radius: 7px; font-size: 10px; padding: 3px 6px; background: #e7697d; color: #fff; min-width: 19px; text-align: center; }
.sidebar-spacer { flex: 1; min-height: 28px; }
.help-card { background: #f6f4fe; border: 1px solid #ede9fb; border-radius: 16px; padding: 18px; margin-bottom: 22px; }
.help-icon { width: 34px; height: 34px; background: white; color: var(--primary); border-radius: 10px; display: grid; place-items: center; margin-bottom: 12px; }
.help-card h3 { font-size: 14px; line-height: 1.45; font-weight: 740; }
.help-card p { color: #525368; font-size: 12px; margin: 8px 0 12px; }
.text-button,.mini-link { border: 0; background: transparent; color: var(--primary); padding: 6px 0; display: inline-flex; align-items: center; justify-content: center; gap: 7px; font-size: 12px; font-weight: 700; min-height: 32px; }
.text-button .icon,.mini-link .icon { width: 16px; height: 16px; }
.mini-link:hover,.text-button:hover { color: #4436ba; text-decoration: underline; text-underline-offset: 4px; }
.side-user { display: flex; align-items: center; gap: 10px; border-top: 1px solid var(--border); padding-top: 19px; }
.avatar { width: 36px; height: 36px; background: #eae5fb; color: #6550ca; font-size: 12px; font-weight: 760; display: grid; place-items: center; border-radius: 12px; flex-shrink: 0; }
.avatar.orange { background: #ffeddb; color: #9d5c24; }
.avatar.blue { background: #e6effd; color: #4269a7; }
.side-person { border: 0; background: transparent; padding: 0; text-align: left; flex: 1; min-width: 0; }
.side-person b { font-size: 12px; display: block; }
.side-person span { font-size: 11px; color: var(--muted); display: block; margin-top: 4px; }
.icon-button { background: transparent; border: 0; padding: 9px 5px; color: #71758b; display: grid; place-items: center; min-width: 32px; min-height: 44px; }
.icon-button .icon { width: 18px; height: 18px; }
.main { margin-left: 244px; flex: 1; min-width: 0; }
.topbar { min-height: 84px; padding: 18px 42px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 18px; background: #ffffffa3; }
.breadcrumbs { color: #515462; display: flex; align-items: center; gap: 10px; font-size: 12px; }
.breadcrumbs .icon { width: 13px; height: 13px; color: #a2a5b3; }
.breadcrumbs strong { color: #555d74; font-weight: 600; }
.top-actions { display: flex; align-items: center; gap: 12px; }
.today-label { font-size: 11px; color: #6e7389; margin-right: 8px; }
.search-trigger { border: 1px solid var(--border); border-radius: 10px; padding: 9px 11px; min-height: 40px; display: flex; align-items: center; gap: 10px; color: #515463; background: #fff; font-size: 11px; }
.search-trigger .icon { width: 16px; height: 16px; }
kbd { font-family: inherit; color: #515462; font-size: 9px; border: 1px solid #e8e8f0; border-radius: 4px; padding: 3px 5px; background: #f9f9fc; margin-left: 18px; }
.circle-button { position: relative; width: 40px; height: 40px; border: 1px solid var(--border); background: white; border-radius: 12px; color: #656b82; display: grid; place-items: center; }
.circle-button:hover { border-color: #c5bdf2; color: var(--primary); }
.dot { position: absolute; right: 8px; top: 6px; width: 8px; height: 8px; background: #e76a7f; border: 2px solid white; border-radius: 50%; }
.avatar-button { border: 0; padding: 0; background: none; border-radius: 12px; }
.concept-bar { padding: 9px 42px; display: flex; align-items: center; gap: 7px; background: #edeaf8; border-bottom: 1px solid #e5e0f4; color: #675b92; font-size: 10px; line-height: 1.4; }
.concept-bar .icon { width: 13px; height: 13px; }
.concept-divider { margin: 0 5px; }
.content { max-width: 1510px; margin: auto; padding: 32px 42px 40px; }
.content:focus { outline: none; }
.title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 27px; }
.page-kicker { display: block; text-transform: uppercase; letter-spacing: .13em; color: #706293; font-size: 10px; font-weight: 730; margin-bottom: 10px; }
.page-title { color: #29293f; font-size: clamp(26px,2.35vw,34px); line-height: 1.2; font-weight: 760; letter-spacing: -.045em; }
.page-subtitle { color: #505464; font-size: 12px; line-height: 1.65; margin-top: 11px; }
.subtitle-dot { color: #b2adbf; padding: 0 6px; }
.greeting-star { color: #c2b0ec; font-size: 31px; vertical-align: -1px; margin-left: 3px; }
.page-actions { display: flex; align-items: center; gap: 9px; flex-shrink: 0; padding-top: 14px; }
.semester-pill { display: flex; align-items: center; gap: 8px; border: 1px solid #e5e2ee; border-radius: 8px; background: #fdfcff; color: #797085; font-size: 11px; padding: 9px 12px; }
.semester-pill .icon { width: 15px; height: 15px; }
.grid-dashboard { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(285px,1fr); gap: 23px; align-items: start; }
.dash-main,.dash-right { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.card { background: white; border: 1px solid var(--border); border-radius: 18px; box-shadow: var(--shadow); min-width: 0; }
.card-pad { padding: 23px 25px; }
.card-titlebar { display: flex; align-items: center; justify-content: space-between; gap: 13px; margin-bottom: 10px; min-height: 30px; }
.card-title { font-size: 15px; font-weight: 730; letter-spacing: -.025em; }
.section-caption { color: #505462; font-size: 10px; margin: -1px 0 12px; }
.feature-hero { min-height: 212px; background: #ded8f1; border-radius: 18px; position: relative; overflow: hidden; padding: 27px 29px; display: flex; justify-content: space-between; align-items: center; color: #36304f; isolation: isolate; }
.feature-hero:after { content: ""; position: absolute; background: #d1c7ec; border-radius: 50%; width: 250px; height: 250px; top: -105px; right: -110px; z-index: -1; }
.hero-copy { position: relative; z-index: 1; flex: 1; min-width: 0; }
.hero-small { font-size: 8px; font-weight: 800; letter-spacing: .13em; display: flex; align-items: center; gap: 7px; margin-bottom: 13px; color: #675d84; }
.live-dot { width: 6px; height: 6px; border-radius: 50%; background: #76639f; }
.feature-hero h2 { font-size: 25px; line-height: 1.2; font-weight: 740; letter-spacing: -.04em; max-width: 340px; }
.feature-hero p { font-size: 11px; color: #6b6082; margin-top: 12px; }
.feature-hero p span { margin: 0 4px; }
.hero-link { display: inline-flex; align-items: center; gap: 16px; border: 0; border-radius: 8px; padding: 9px 13px; margin-top: 20px; font-size: 10px; font-weight: 750; color: #504371; background: #ffffff94; min-height: 36px; }
.hero-link:hover { background: white; }
.hero-link .icon { width: 14px; height: 14px; }
.hero-art { position: relative; width: 150px; height: 158px; margin-left: 14px; flex-shrink: 0; }
.orbit { position: absolute; border: 1px solid #fff8; border-radius: 50%; width: 205px; height: 205px; top: -23px; left: -15px; }
.orbit-two { width: 155px; height: 155px; top: 2px; left: 10px; }
.hero-ticket { width: 122px; height: 148px; position: absolute; top: 8px; left: 17px; background: #f7f4ffdd; transform: rotate(8deg); border: 1px solid #fff; border-radius: 13px; box-shadow: 2px 11px 22px #80709920; padding: 12px; display: flex; align-items: center; flex-direction: column; }
.hero-ticket>span { font-size: 6px; letter-spacing: .14em; color: #8b7b9f; border-bottom: 1px dashed #d7cfe6; width: 100%; padding-bottom: 10px; text-align: center; }
.hero-ticket .icon { width: 31px; height: 31px; color: #a192be; margin: 14px 0 10px; }
.hero-ticket b { font-size: 23px; font-weight: 650; color: #5c4d77; letter-spacing: -.03em; }
.hero-ticket small { font-size: 8px; color: #857394; margin-top: 4px; }
.art-star { position: absolute; top: 107px; left: 119px; font-size: 43px; line-height: 1; color: #9d87c5; transform: rotate(-15deg); }
.stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.stat { min-width: 0; text-align: left; background: white; border: 1px solid var(--border); border-radius: 15px; padding: 17px 18px; box-shadow: var(--shadow); }
.stat:hover { border-color: #c7bfe9; }
.stat-label { display: flex; align-items: center; justify-content: space-between; gap: 5px; color: #686e84; font-size: 10px; line-height: 1.4; }
.stat-label .icon { color: #a69bbd; width: 15px; height: 15px; }
.stat-value { display: block; font-size: 30px; font-weight: 700; letter-spacing: -.05em; margin: 13px 0 6px; line-height: 1; }
.stat-value small { font-size: 10px; color: #555360; font-weight: 500; letter-spacing: 0; margin-left: 5px; }
.stat-sub { color: #525461; font-size: 9px; }
.schedule-list { display: flex; flex-direction: column; }
.lesson-row { display: flex; align-items: stretch; gap: 16px; padding: 17px 0; border-bottom: 1px solid #f0f0f6; }
.lesson-row:last-child { border-bottom: 0; padding-bottom: 5px; }
.lesson-time { flex: 0 0 44px; padding-top: 1px; }
.lesson-time b { display: block; font-size: 13px; font-weight: 740; }
.lesson-time span { display: block; color: #515462; font-size: 10px; margin-top: 7px; }
.lesson-line { width: 3px; border-radius: 3px; background: #b6a6df; margin-right: 1px; flex-shrink: 0; }
.lesson-line.orange { background: #e2b18a; }.lesson-line.blue { background: #9bbada; }.lesson-line.teal { background: #7dbfb4; }.lesson-line.pink { background: #d7a2bd; }
.lesson-details { min-width: 0; }
.lesson-details h3 { font-size: 13px; font-weight: 680; line-height: 1.4; }
.lesson-details p { font-size: 10px; color: #505463; margin: 6px 0 8px; }
.lesson-details p span { color: #b5b1c2; margin: 0 4px; }
.lesson-location { display: flex; align-items: center; gap: 5px; font-size: 10px; color: #505462; flex-wrap: wrap; }
.lesson-location .icon { width: 13px; height: 13px; }
.status-tag { display: inline-flex; align-items: center; font-size: 10px; font-weight: 640; padding: 5px 8px; background: #f0edfb; border-radius: 6px; color: #71608d; }
.status-tag.changed { background: #fff3d8; color: #8f6127; padding: 3px 6px; font-size: 8px; margin-left: 6px; }
.status-tag.green { background: #e9f4ee; color: #39755b; }.status-tag.blue { background: #edf1fc; color: #586da1; }
.change-note { color: #8c602d; font-size: 10px; line-height: 1.55; background: #fff5df; padding: 8px; border-radius: 7px; margin-top: 9px; }
.change-note .icon { width: 12px; height: 12px; vertical-align: -2px; }
.deadline-list { display: flex; flex-direction: column; }
.deadline-item { display: flex; align-items: center; gap: 12px; padding: 15px 0; border-bottom: 1px solid #f0f0f6; min-width: 0; }
.deadline-item:last-child { border-bottom: 0; padding-bottom: 5px; }
.deadline-cal { width: 39px; min-height: 43px; border: 1px solid #eeeaf5; border-radius: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #77658d; background: #f8f6fc; flex-shrink: 0; }
.deadline-cal b { font-size: 16px; line-height: 1.1; font-weight: 720; }.deadline-cal span { font-size: 8px; margin-top: 3px; }
.deadline-cal.urgent { background: #fff4e4; border-color: #f2e6d4; color: #93622f; }
.deadline-info { flex: 1; min-width: 0; }
.deadline-info b { display: block; font-size: 11px; font-weight: 650; line-height: 1.45; }
.deadline-info p { font-size: 10px; color: #515462; margin-top: 4px; line-height: 1.4; }
.due-label { font-size: 8px; color: #56535f; flex-shrink: 0; max-width: 66px; text-align: right; }
.due-label.urgent { color: #9c602b; font-weight: 700; }
.risk-card { background: #fff1df; border: 1px solid #f4e5cf; border-radius: 16px; padding: 21px; }
.risk-header { display: flex; align-items: center; gap: 12px; }
.risk-icon { width: 33px; height: 33px; border-radius: 10px; color: #a5773d; display: grid; place-items: center; background: #ffe5bc; flex-shrink: 0; }
.overline { font-size: 8px; letter-spacing: .11em; font-weight: 750; display: block; color: #655139; margin-bottom: 6px; }
.risk-header h2 { font-size: 13px; font-weight: 730; line-height: 1.4; color: #6e5334; }
.risk-card p { color: #63513d; font-size: 11px; margin: 13px 0 8px; }
.risk-card .mini-link { color: #916433; font-size: 11px; }
.risk-card.all-clear { background: #eaf5ef; border-color: #daeee1; }.all-clear .risk-icon { background: #d5ecdf; color: #4a8466; }.all-clear h2,.all-clear p,.all-clear .mini-link { color: #48725c; }











.notice-preview { width: 100%; padding: 14px 0; display: flex; align-items: flex-start; text-align: left; gap: 11px; background: none; border: 0; border-bottom: 1px solid #f0f0f6; }
.notice-preview:last-child { border-bottom: 0; padding-bottom: 3px; }
.notice-icon { width: 35px; height: 35px; border-radius: 10px; background: #f1edfb; color: #8572a8; display: grid; place-items: center; flex-shrink: 0; }
.notice-icon .icon { width: 16px; height: 16px; }
.notice-preview>span:nth-child(2) { min-width: 0; flex: 1; }
.notice-preview b { font-size: 11px; line-height: 1.4; display: block; font-weight: 670; }
.notice-preview small { color: #525461; font-size: 10px; line-height: 1.5; display: block; margin-top: 6px; }
.notice-dot { width: 6px; height: 6px; margin-top: 5px; border-radius: 50%; background: #8a6ebe; flex-shrink: 0; }
.quick-services { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 16px; }
.quick-services button { position: relative; display: flex; flex-direction: column; align-items: flex-start; text-align: left; padding: 15px; border: 1px solid #eeecf4; background: #fbfaff; border-radius: 12px; }
.quick-services button>b { font-size: 12px; margin-top: 11px; font-weight: 670; }
.quick-services button>span:not(.service-mini-icon) { font-size: 10px; color: #535364; margin-top: 6px; line-height: 1.5; }
.quick-services button>.icon { position: absolute; top: 22px; right: 14px; width: 15px; height: 15px; color: #9b8ab8; }
.service-mini-icon { color: #8c74b8; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: #eee7fa; }
.service-mini-icon.blue { background: #e5edf9; color: #7897b8; }
.service-mini-icon .icon { width: 16px; height: 16px; }
.app-footer { max-width: 1510px; padding: 0 42px 24px; margin: auto; display: flex; justify-content: space-between; gap: 18px; color: #535360; font-size: 9px; line-height: 1.6; }
.primary-button,.outline-button,.muted-button,.danger-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 10px; padding: 11px 16px; min-height: 42px; font-size: 12px; font-weight: 680; line-height: 1.4; }
.primary-button { background: var(--primary); color: white; border: 1px solid var(--primary); box-shadow: 0 4px 10px #6253db14; }
.primary-button:hover { background: #5142ca; border-color: #5142ca; }
.primary-button .icon,.outline-button .icon,.muted-button .icon,.danger-button .icon { width: 16px; height: 16px; }
.outline-button { border: 1px solid #dddde8; background: #fff; color: #625e77; }
.outline-button:hover { border-color: #a99bce; color: var(--primary); }
.muted-button { background: #f4f2f8; color: #70677f; border: 1px solid #f4f2f8; }
.danger-button { border: 1px solid #f0d6dc; background: #fcf0f2; color: #9a4a5c; }
.square-btn { width: 40px; height: 40px; border: 1px solid #e3e0ed; background: white; border-radius: 10px; display: grid; place-items: center; color: #7b6f91; }
.square-btn .icon { width: 16px; height: 16px; }
.schedule-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.week-switch { display: flex; align-items: center; gap: 12px; }
.week-switch h2 { font-size: 14px; min-width: 163px; text-align: center; font-weight: 650; }
.toolbar-actions { display: flex; align-items: center; gap: 12px; }
.segmented { display: inline-flex; gap: 3px; border: 1px solid #e5e1ed; border-radius: 10px; padding: 3px; background: #edeaf2; }
.segmented button { border: 0; color: #595163; background: transparent; font-size: 11px; border-radius: 7px; min-height: 32px; padding: 6px 14px; }
.segmented button[aria-pressed=true] { background: white; color: #574a72; box-shadow: 0 1px 4px #42374f12; font-weight: 700; }
.change-banner { display: flex; align-items: center; gap: 13px; border: 1px solid #eadbc1; border-radius: 12px; background: #fff5e5; padding: 15px 18px; margin-bottom: 22px; color: #6a502a; }
.change-banner>.icon { width: 19px; height: 19px; }
.change-banner b { display: block; color: #795b31; font-size: 12px; font-weight: 650; }.change-banner span span { display: block; font-size: 11px; margin-top: 4px; line-height: 1.5; }
.schedule-info { display: flex; justify-content: space-between; gap: 15px; font-size: 10px; color: #555361; margin: 20px 0 15px; line-height: 1.5; }
.week-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 12px; align-items: start; }
.day-column { min-width: 0; }
.day-head { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 10px; min-height: 73px; margin-bottom: 12px; color: #575264; }
.day-head>div { display: flex; align-items: center; justify-content: center; gap: 9px; }
.day-head>div span { font-size: 11px; }.day-head b { font-size: 20px; font-weight: 670; }.day-head>span { font-size: 8px; margin-top: 7px; color: #56535d; }
.day-head.today { background: #e7e1f7; border-radius: 12px; color: #665087; }.day-head.today>span { color: #5e4d75; }
.day-lessons { display: flex; flex-direction: column; gap: 11px; }
.day-lesson { min-height: 190px; border: 1px solid #e8e3f0; background: #fff; border-radius: 12px; padding: 14px 11px; border-top: 3px solid #c4b5df; }
.day-lesson.orange { border-top-color: #e2bd96; }.day-lesson.teal { border-top-color: #90c4b7; }.day-lesson.blue { border-top-color: #a8c0de; }.day-lesson.pink { border-top-color: #dab5cc; }
.day-lesson-time { color: #77618f; font-size: 10px; font-weight: 650; margin-bottom: 12px; }
.day-lesson h3 { font-size: 12px; font-weight: 680; line-height: 1.45; margin-bottom: 10px; }
.lesson-kind { font-size: 9px; border-radius: 4px; padding: 4px 5px; background: #f6f3fa; color: #5c5067; display: inline-block; }
.day-lesson>p { font-size: 10px; color: #767185; margin: 9px 0; }.day-lesson .lesson-location { margin-top: 8px; }
.day-lesson.lesson-changed { border: 1px solid #e9d8b5; border-top: 3px solid #d6b16d; background: #fffdf8; }
.week-empty { padding: 26px 6px; border: 1px dashed #e0dce9; border-radius: 12px; text-align: center; color: #585163; font-size: 10px; line-height: 1.5; }
.week-empty span { display: block; font-size: 8px; color: #57525e; margin-top: 6px; }
.day-picker { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; margin: 10px 0 22px; }
.day-pick { min-width: 0; border: 1px solid #e4deef; border-radius: 12px; padding: 12px 4px; background: white; color: #595164; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.day-pick>span { font-size: 10px; }.day-pick>b { font-size: 19px; font-weight: 650; }.day-pick .day-count { font-size: 16px; height: 12px; line-height: 10px; letter-spacing: 1px; }
.day-pick.selected { background: #e6def7; border-color: #d4c6ee; color: #675184; }.day-view { max-width: 850px; }
.grade-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-bottom: 25px; }
.summary-metric { display: flex; align-items: center; gap: 16px; padding: 23px; }
.summary-icon { width: 44px; height: 44px; background: #f0ebfa; border-radius: 13px; color: #967eaf; display: grid; place-items: center; flex-shrink: 0; }
.summary-icon.orange { background: #fcf0df; color: #af8a56; }.summary-icon.teal { background: #e8f3ed; color: #75a18b; }
.summary-metric b { font-size: 31px; letter-spacing: -.05em; font-weight: 700; line-height: 1.1; }
.summary-metric b small { font-size: 11px; color: #585261; font-weight: 500; letter-spacing: 0; }
.summary-metric p { color: #787183; font-size: 11px; margin-top: 7px; }
.attention-panel { background: #fff1de; border: 1px solid #f0dfc4; border-radius: 14px; padding: 20px 24px; display: flex; gap: 22px; align-items: center; margin-bottom: 25px; }
.attention-label { display: flex; align-items: center; gap: 7px; flex-shrink: 0; font-size: 10px; color: #69502d; }.attention-label .icon { width: 17px; height: 17px; }
.attention-panel>div { flex: 1; min-width: 0; }.attention-panel h2 { font-size: 14px; color: #785931; }.attention-panel p { color: #64513b; font-size: 11px; margin-top: 6px; }.attention-panel>.outline-button { flex-shrink: 0; font-size: 11px; }
.grade-table { width: 100%; border-collapse: collapse; text-align: left; margin-top: 13px; }
.grade-table thead th { font-size: 9px; text-transform: uppercase; letter-spacing: .08em; color: #585260; font-weight: 600; padding: 14px 14px 14px 0; border-bottom: 1px solid #ece8f1; }
.grade-table tbody th,.grade-table td { padding: 22px 14px 22px 0; border-bottom: 1px solid #f0edf4; font-weight: 400; vertical-align: middle; }
.grade-table tr:last-child>* { border-bottom: 0; }.grade-table td:last-child { padding-right: 0; }
.subject-name { display: block; font-size: 13px; font-weight: 660; }.subject-prof { display: block; color: #797286; font-size: 10px; margin-top: 6px; }
progress { -webkit-appearance: none; appearance: none; background: #f0edf5; border: 0; border-radius: 5px; height: 5px; overflow: hidden; color: #b1a0cf; }
progress::-webkit-progress-bar { background: #f0edf5; border-radius: 5px; }progress::-webkit-progress-value { background: #b1a0cf; border-radius: 5px; }progress::-moz-progress-bar { background: #b1a0cf; border-radius: 5px; }
progress.risk::-webkit-progress-value { background: #d8b383; }progress.excellent::-webkit-progress-value { background: #97bdab; }progress.risk::-moz-progress-bar { background: #d8b383; }progress.excellent::-moz-progress-bar { background: #97bdab; }
.grade-table progress { width: 125px; display: block; }.progress-caption { display: block; font-size: 9px; color: #585260; margin-top: 8px; }
.grade-points { font-size: 22px; font-weight: 670; }.small-delta { display: block; font-size: 9px; color: #3a5b48; margin-top: 5px; }.small-delta.down { color: #6c4f2e; }
.assessment { display: block; font-size: 9px; color: #585260; margin-top: 7px; }
.note-callout { display: flex; align-items: flex-start; gap: 9px; background: #f7f5fa; border: 1px solid #eeebf3; padding: 13px 14px; border-radius: 10px; color: #5a5164; font-size: 10px; line-height: 1.6; margin-top: 18px; }
.note-callout>.icon { width: 15px; height: 15px; margin-top: 1px; }
.session-card { margin-top: 24px; }.exam-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; margin-top: 18px; }
.exam-box { background: #faf9fd; border: 1px solid #ede8f3; border-radius: 12px; padding: 17px; display: flex; flex-direction: column; align-items: flex-start; }
.exam-date { color: #5f4e6d; font-size: 10px; font-weight: 700; margin-bottom: 12px; }.exam-box b { font-size: 12px; line-height: 1.5; }.exam-box>span:last-child { color: #595162; font-size: 10px; margin-top: 10px; }
.plan-hero { display: flex; align-items: center; justify-content: space-between; gap: 25px; background: #ded8ef; border: 1px solid #d5cce8; border-radius: 18px; padding: 28px 30px; margin-bottom: 25px; }
.plan-hero .overline { color: #5d4f69; margin-bottom: 12px; }.plan-hero h2 { font-size: 24px; color: #59446f; font-weight: 660; letter-spacing: -.035em; }.plan-hero p { color: #5e4e6c; font-size: 12px; margin-top: 10px; }
.plan-progress { min-width: 155px; text-align: right; }.plan-progress strong { font-size: 45px; font-weight: 600; color: #5d4e6c; letter-spacing: -.05em; }.plan-progress small { font-size: 20px; }.plan-progress progress { display: block; margin-top: 14px; width: 155px; height: 6px; }
.plan-layout { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(235px,1fr); gap: 24px; align-items: start; }
.plan-layout .deadline-item { padding: 22px 0; gap: 16px; }.plan-layout .deadline-info b { font-size: 13px; }.plan-layout .deadline-info p { font-size: 11px; }.deadline-info>small { display: block; margin-top: 8px; font-size: 10px; color: #5c5065; }
.task-checkbox { width: 22px; height: 22px; accent-color: #9076b3; cursor: pointer; flex-shrink: 0; margin: 0; outline-offset: 5px; }
.deadline-item.done .deadline-info>b { text-decoration: line-through; color: #585261; }.deadline-item.done .deadline-info>small { color: #3f5a4b; }
.plan-advice .advice-icon { width: 44px; height: 44px; border-radius: 13px; background: #f3edfb; color: #a58abd; display: grid; place-items: center; margin-bottom: 18px; }.plan-advice h2 { font-size: 17px; color: #655275; }.plan-advice>p { color: #7e7189; font-size: 12px; margin-top: 12px; }
.filter-tabs { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 10px 0 17px; }
.filter-tabs button { border: 1px solid transparent; border-radius: 7px; background: transparent; color: #5a5163; font-size: 10px; padding: 8px 10px; min-height: 35px; display: inline-flex; align-items: center; gap: 7px; }
.filter-tabs button[aria-pressed=true] { background: #f0ebf8; border-color: #e8e0f2; color: #76608f; font-weight: 700; }.filter-tabs button:hover { background: #f8f5fc; }.filter-tabs button span { font-size: 9px; color: #a38ab8; }
.pagination { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--border); font-size: 11px; color: var(--muted); }
.pagination>div { display: flex; gap: 9px; }
.modal-concept { display: block; color: #665475; font-size: 9px; font-weight: 600; line-height: 1.5; margin-bottom: 10px; }
.service-catalog { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-bottom: 28px; }
.service-card { display: flex; flex-direction: column; align-items: flex-start; position: relative; padding: 22px 20px; background: #fff; border: 1px solid #e7e2ee; border-radius: 15px; text-align: left; }
.service-card:hover { border-color: #b9a3d0; box-shadow: 0 8px 22px #77608608; }.catalog-icon { width: 40px; height: 40px; background: #eee8fa; border-radius: 12px; color: #9b80b5; display: grid; place-items: center; margin-bottom: 19px; }.catalog-icon.tone-1 { background: #e8eef9; color: #869dc2; }.catalog-icon.tone-2 { background: #edf3e9; color: #8d9f79; }.catalog-icon.tone-3 { background: #fceee0; color: #c6a076; }
.service-eta { color: #5d4f69; font-size: 8px; margin-bottom: 8px; }.service-card h2 { font-size: 14px; font-weight: 680; line-height: 1.4; color: #5b456e; }.service-card p { font-size: 11px; color: #7d6f89; margin-top: 9px; flex: 1; }.service-cta { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: 20px; color: #614c75; font-size: 11px; font-weight: 650; }.service-cta .icon { width: 16px; height: 16px; }
.requests-layout { display: grid; grid-template-columns: minmax(0,2.2fr) minmax(240px,1fr); gap: 24px; align-items: start; }
.request-row { width: 100%; display: flex; align-items: center; gap: 15px; border: 0; border-bottom: 1px solid #f0ebf5; background: transparent; padding: 19px 0; text-align: left; min-width: 0; }
.request-row:last-child { border-bottom: 0; }.request-row:hover .request-row-main>b { color: #634b76; }.request-row>.icon { width: 14px; height: 14px; color: #b9a5c6; }
.file-glyph { flex-shrink: 0; width: 39px; height: 45px; background: #f1ecf9; border-radius: 11px; color: #9f85b6; display: grid; place-items: center; }.file-glyph.ready { background: #edf4ec; color: #8ea67d; }
.request-row-main { flex: 1; min-width: 0; }.request-row-main>b { font-size: 12px; font-weight: 650; color: #665070; display: block; line-height: 1.4; }.request-row-main>small { color: #5c5066; font-size: 9px; display: block; margin-top: 7px; line-height: 1.5; }.request-preview { display: block; color: #8e7d9d; font-size: 10px; margin-top: 8px; line-height: 1.5; }
.request-row-end { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; max-width: 150px; gap: 9px; }.request-row-end>small { font-size: 8px; color: #5d5064; text-align: right; }
.request-status { display: inline-flex; align-items: center; gap: 5px; border-radius: 6px; background: #f0eafa; color: #614c74; font-size: 9px; padding: 6px 8px; font-weight: 620; max-width: 100%; line-height: 1.35; }.status-dot { width: 4px; height: 4px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.request-status.ready { color: #465a3b; background: #edf5e7; }.request-status.processing { color: #67512f; background: #fcf1df; }.request-status.review { color: #4a5568; background: #edf1f9; }.request-status.rejected { color: #80515e; background: #faedf1; }
.quick-steps { margin: 24px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 22px; }.quick-steps li { display: flex; align-items: flex-start; gap: 12px; }.quick-steps li>span { width: 25px; height: 25px; border-radius: 8px; background: #f1e9fa; color: #a082ba; display: grid; place-items: center; font-size: 10px; flex-shrink: 0; }.quick-steps b { font-size: 11px; color: #7b628c; font-weight: 650; }.quick-steps p { color: #5c5066; font-size: 10px; margin-top: 6px; }
.notification-page { max-width: 950px; }.notification-full { display: flex; gap: 18px; padding: 25px 0; border-bottom: 1px solid #eee7f3; }.notification-full:last-child { border-bottom: 0; }.notification-full .notice-icon { width: 43px; height: 43px; border-radius: 13px; }.notification-full .notice-icon .icon { width: 20px; height: 20px; }.notice-icon.orange { background: #fdf0df; color: #b5976c; }.notice-content { min-width: 0; flex: 1; }.notice-title { display: flex; gap: 10px; justify-content: space-between; }.notice-title h2 { font-size: 14px; font-weight: 650; color: #6e527f; }.notice-content p { color: #8a749a; font-size: 12px; margin-top: 10px; }.notice-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 14px; }.notice-bottom time { font-size: 9px; color: #5e4f66; }.notice-bottom .mini-link { font-size: 10px; }.quiet-button { border: 0; background: transparent; color: #5d5063; font-size: 9px; min-height: 32px; padding: 5px 0; display: flex; align-items: center; gap: 6px; }.quiet-button .icon { width: 14px; height: 14px; }.notification-full.read .notice-title h2 { color: #897894; }.notification-full.read .notice-icon { background: #f8f3fb; color: #b6a5c0; }
.profile-banner { border: 1px solid #e2d6ee; background: #e9dff4; border-radius: 18px; padding: 29px; display: flex; align-items: center; gap: 24px; margin-bottom: 25px; }.profile-banner .avatar { width: 70px; height: 70px; background: #d8c5ed; color: #614c74; border-radius: 22px; font-size: 23px; }.profile-banner .overline { color: #a083b5; }.profile-banner h2 { font-size: 25px; color: #735288; letter-spacing: -.03em; font-weight: 650; }.profile-banner p { color: #9c7dae; font-size: 12px; margin-top: 9px; }.profile-concept { margin-left: auto; font-size: 9px; border: 1px solid #d6c4e5; border-radius: 7px; padding: 8px 10px; color: #a184b6; }
.profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }.profile-data { margin: 10px 0 0; }.profile-data>div { border-bottom: 1px solid #f0e9f5; padding: 17px 0; }.profile-data>div:last-child { border: 0; padding-bottom: 3px; }.profile-data dt { font-size: 10px; color: #a68bb7; margin-bottom: 7px; }.profile-data dd { margin: 0; font-size: 13px; color: #7f5b95; font-weight: 580; line-height: 1.5; }.security-list { display: flex; flex-direction: column; gap: 24px; margin: 25px 0; }.security-list>div { display: flex; gap: 14px; }.security-list .icon { color: #b49ac6; width: 20px; height: 20px; }.security-list b { color: #8b6c9f; font-size: 12px; }.security-list p { color: #a188b3; font-size: 11px; margin-top: 6px; }
.staff-tools { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin: 20px 0 6px; flex-wrap: wrap; }.staff-tools .filter-tabs { margin: 0; }.search-field { border: 1px solid #e9dff1; border-radius: 10px; background: #fff; display: flex; align-items: center; gap: 10px; padding: 0 13px; color: #baa2c9; min-height: 42px; }.search-field .icon { width: 17px; height: 17px; }.search-field input { border: 0; outline: 0; min-width: 0; width: 100%; min-height: 40px; font-size: 12px; color: #8e6ca4; background: none; }.search-field:focus-within { outline: 2px solid #cfb6e3; outline-offset: 2px; }.staff-tools .search-field { min-width: 245px; }
.empty-state { padding: 34px 15px; display: flex; flex-direction: column; align-items: center; text-align: center; }.empty-icon { width: 48px; height: 48px; border-radius: 16px; background: #f4eefb; color: #b49ac9; display: grid; place-items: center; margin-bottom: 17px; }.empty-state h3 { font-size: 14px; font-weight: 650; color: #9476a8; }.empty-state p { font-size: 11px; color: #a48bb4; margin-top: 8px; max-width: 290px; }.error-state { padding: 45px; text-align: center; }.error-state>.icon { color: #c3a1cf; width: 36px; height: 36px; margin-bottom: 20px; }.error-state h1 { font-size: 23px; color: #9875ad; }.error-state p { font-size: 13px; color: #ae91bf; margin: 15px 0 24px; }
.loading-state { min-height: 290px; padding-top: 6px; }.skeleton { background: linear-gradient(100deg,#e8e4ee 20%,#f3f0f8 40%,#e8e4ee 60%); background-size: 300% 100%; animation: shimmer 1.7s infinite; border-radius: 8px; }.skeleton-heading { width: 47%; height: 34px; margin-bottom: 16px; }.skeleton-sub { width: 70%; height: 14px; margin-bottom: 35px; }.skeleton-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }.skeleton-card { height: 180px; border-radius: 15px; }@keyframes shimmer { to { background-position: -300% 0; } }
.modal-layer { position: fixed; inset: 0; z-index: 40; padding: 24px; display: grid; place-items: center; background: #28203866; backdrop-filter: blur(5px); }.modal { background: white; width: min(520px,100%); max-height: calc(100dvh - 48px); overflow-y: auto; border-radius: 20px; padding: 27px; box-shadow: 0 35px 110px #35264422; overscroll-behavior: contain; }.modal-wide { width: min(690px,100%); }.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 24px; }.modal-head h2 { font-size: 22px; font-weight: 680; color: #6e4a85; letter-spacing: -.04em; }.modal-head p { margin-top: 7px; color: #a17cb5; font-size: 11px; line-height: 1.5; }.close-btn { border: 0; background: #f5edf9; border-radius: 10px; min-width: 36px; height: 36px; display: grid; place-items: center; color: #b294c3; }.close-btn .icon { width: 17px; height: 17px; }
.field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 19px; }.field label { color: #846497; font-size: 12px; font-weight: 650; }.field input,.field select,.field textarea { min-width: 0; width: 100%; padding: 12px 13px; min-height: 44px; background: #fff; color: #8a639f; border: 1px solid #e7d9f0; border-radius: 10px; outline: 0; font-size: 13px; }.field textarea { resize: vertical; line-height: 1.6; }.field input:focus,.field select:focus,.field textarea:focus { border-color: #bb93d2; box-shadow: 0 0 0 3px #e4cdf333; }.field input::placeholder,.field textarea::placeholder,.search-field input::placeholder { color: #baa1c9; opacity: 1; }.field select { cursor: pointer; }.field .hint,.field-meta { color: #b294c3; font-size: 10px; line-height: 1.5; }.field-meta { display: flex; justify-content: space-between; gap: 16px; }.field-meta>span:last-child { white-space: nowrap; }
.inline-error { background: #fceef4; border: 1px solid #efd4e2; color: #b16c89; border-radius: 10px; font-size: 12px; padding: 13px; line-height: 1.6; margin: 16px 0; }.modal-actions { display: flex; justify-content: flex-end; gap: 11px; margin-top: 24px; }.selected-service { display: flex; align-items: center; gap: 12px; border: 1px solid #e9daf3; background: #f8f2fc; border-radius: 11px; padding: 13px; margin: 0 0 20px; color: #b08fc5; }.selected-service b { display: block; color: #a27ab7; font-size: 11px; }.selected-service small { display: block; color: #b598c8; font-size: 10px; line-height: 1.5; margin-top: 5px; }.draft-note { display: flex; align-items: center; gap: 7px; font-size: 10px; color: #a78abb; line-height: 1.5; }.draft-note .icon { width: 14px; height: 14px; }
.detail-summary { display: flex; align-items: center; gap: 15px; padding-bottom: 22px; }.detail-summary>div { min-width: 0; flex: 1; }.detail-summary h3 { font-size: 16px; color: #885e9f; line-height: 1.4; }.detail-summary p { font-size: 10px; color: #b28bc7; margin-top: 8px; }.detail-summary .request-status { align-self: flex-start; margin-top: 4px; }.request-track { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; margin: 5px 0 23px; }.track-step { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 0 3px; }.track-step:before { content: ""; position: absolute; top: 15px; left: -55%; width: 110%; height: 2px; background: #f0e5f6; z-index: 0; }.track-step:first-child:before { display: none; }.track-step>span { display: grid; place-items: center; position: relative; z-index: 1; width: 31px; height: 31px; border-radius: 50%; background: #f7effb; border: 1px solid #eadcf2; color: #c7abd7; font-size: 11px; }.track-step .icon { width: 15px; height: 15px; }.track-step>b { font-size: 9px; font-weight: 550; color: #c2a3d3; line-height: 1.4; }.track-step.complete>span { background: #dac4ec; color: #9772b0; border-color: #dac4ec; }.track-step.complete:before { background: #dac4ec; }.track-step.complete>b { color: #9f7bb7; }.track-step.current>span { box-shadow: 0 0 0 4px #f0e3fa; background: #b894d3; color: #fff; }.track-step.current>b { font-weight: 750; color: #9b72b5; }
.detail-eta { display: flex; gap: 10px; background: #fcf4e9; border: 1px solid #f5e4c9; border-radius: 9px; padding: 13px; color: #bea072; font-size: 10px; line-height: 1.6; }.detail-eta .icon { width: 17px; height: 17px; margin-top: 1px; }.detail-block { margin-top: 24px; }.detail-block h3,#staff-form>h3 { font-size: 13px; color: #a275ba; margin-bottom: 13px; }.detail-block>p { font-size: 12px; color: #b18dc5; }.user-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.staff-answer { background: #f1f7ed; border: 1px solid #e1efd9; border-radius: 12px; padding: 17px; display: flex; gap: 12px; margin-top: 22px; }.staff-answer>span { color: #9dbb85; }.staff-answer h3 { font-size: 12px; color: #8eaa76; margin-bottom: 8px; }.staff-answer p { font-size: 12px; color: #a4bc91; }.staff-answer.answer-rejected { background: #fcf0f5; border-color: #f1dce7; }.answer-rejected>span,.answer-rejected h3,.answer-rejected p { color: #c38ba6; }
.document-result { display: flex; align-items: center; gap: 18px; padding: 20px; border: 1px solid #ead8f5; background: #fbf5ff; border-radius: 12px; margin-top: 22px; }.document-result>div { flex: 1; min-width: 0; }.document-result b { color: #ae7fca; font-size: 12px; }.document-result p { color: #c09bd5; font-size: 10px; margin-top: 8px; }.document-result a { font-size: 11px; flex-shrink: 0; }
.request-history { list-style: none; padding: 0; margin: 15px 0; }.request-history>li { display: flex; gap: 13px; padding: 0 0 20px; }.request-history>li:last-child { padding-bottom: 0; }.history-mark { width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid #eadcf4; border-radius: 50%; background: #faf5fe; color: #c4a2d9; flex-shrink: 0; }.history-mark .icon { width: 12px; height: 12px; }.request-history b { font-size: 11px; color: #b48acb; display: block; }.request-history time { display: block; color: #c5a4d8; font-size: 9px; margin-top: 5px; }.request-history p { color: #bea0d0; font-size: 10px; margin-top: 9px; line-height: 1.6; }
#staff-form { background: #fbf5ff; border: 1px solid #edddf7; border-radius: 13px; padding: 19px; margin-top: 24px; }.detail-disclaimer { font-size: 9px; color: #c3a4d5; border-top: 1px solid #f2e6f9; margin-top: 24px; padding-top: 17px; line-height: 1.6; }
.search-large { margin-bottom: 20px; }.search-large input { min-height: 48px; }.search-results { display: flex; flex-direction: column; gap: 7px; }.search-result { padding: 13px; background: #fff; border: 1px solid #eee0f7; border-radius: 10px; text-align: left; display: flex; align-items: center; gap: 14px; color: #c3a2d5; }.search-result>span { flex: 1; min-width: 0; }.search-result b { font-size: 12px; font-weight: 650; color: #b88bd1; display: block; }.search-result small { display: block; color: #c9abd9; font-size: 10px; margin-top: 6px; }.search-result>.icon:last-child { width: 15px; height: 15px; }.search-result:hover { background: #fcf7ff; border-color: #d4b4e7; }.search-empty { padding: 25px 10px; color: #c5a7d7; font-size: 12px; line-height: 1.6; text-align: center; }
#toast { position: fixed; right: 22px; bottom: 22px; z-index: 100; max-width: 400px; pointer-events: none; }.toast-message { background: #32283f; color: #f3e8fc; padding: 15px 20px; border-radius: 12px; box-shadow: 0 10px 35px #32283f25; font-size: 12px; line-height: 1.6; animation: arrive .18s ease-out; }@keyframes arrive { from { transform: translateY(5px); opacity: 0; }to { transform: translateY(0); opacity: 1; } }
.login-root { min-height: 100dvh; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(450px,1fr); background: #fdfcff; }.login-art { display: flex; flex-direction: column; padding: 43px clamp(35px,6.5vw,95px); background: #ddd5ed; color: #76608a; position: relative; overflow: hidden; }.login-art:before { content: ""; position: absolute; width: 680px; height: 680px; border: 1px solid #ede6f6; border-radius: 50%; left: 115px; top: 65px; pointer-events: none; }.login-art .logo-mark { background: #b69bce; }.login-art .logo-word { color: #79618c; }.login-art .logo-period { color: #ac8fc1; }.login-art .logo-sub { color: #a389b5; }.login-copy { margin-top: clamp(60px,9vh,95px); position: relative; z-index: 1; }.login-kicker { font-size: 8px; font-weight: 700; letter-spacing: .15em; color: #a58bb9; display: block; margin-bottom: 22px; }.login-art h1 { font-size: clamp(40px,4.1vw,63px); letter-spacing: -.065em; line-height: 1.09; font-weight: 650; color: #836498; }.login-art h1 em { font-style: normal; color: #ad8cc3; }.login-copy>p { font-size: 14px; color: #a48bb7; margin-top: 24px; line-height: 1.8; }.login-illustration { height: 260px; width: min(430px,100%); position: relative; margin-top: 40px; }.illustration-grid { width: 290px; height: 230px; border-radius: 50%; border: 1px solid #ede3f8; position: absolute; left: 60px; top: -5px; transform: rotate(-15deg); }.login-ticket { width: 240px; height: 204px; border: 1px solid #f2e9fc; background: #f9f4ff; box-shadow: 0 10px 30px #9b79b518; border-radius: 17px; padding: 22px; transform: rotate(-8deg); position: absolute; top: 8px; left: 20px; }.login-ticket>span { display: block; font-size: 8px; color: #5e4f69; letter-spacing: .15em; border-bottom: 1px dashed #e4d4f1; padding-bottom: 17px; }.login-ticket>div { display: flex; align-items: center; gap: 18px; margin: 15px 0; }.login-ticket>div>b { font-size: 58px; font-weight: 550; letter-spacing: -.06em; line-height: 1; color: #b391cc; }.login-ticket>div>span { font-size: 17px; color: #5e4f68; }.login-ticket small { display: block; font-size: 10px; color: #5d5064; margin-top: 6px; }.login-ticket>p { font-size: 10px; color: #5d4f66; display: flex; align-items: center; gap: 8px; }.login-ticket .icon { width: 13px; height: 13px; }.illustration-bubble { position: absolute; left: 192px; top: 112px; transform: rotate(6deg); padding: 18px; border: 1px solid #eef5e9; border-radius: 14px; background: #e8f2e2; color: #4c5842; font-size: 12px; font-weight: 650; box-shadow: 0 10px 25px #9479a518; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; width: 200px; }.illustration-bubble .icon { width: 18px; height: 18px; }.illustration-bubble small { display: block; font-weight: 400; font-size: 9px; padding-left: 24px; color: #4c5844; }.illustration-star { color: #b797ce; position: absolute; left: 300px; top: 0; font-size: 75px; transform: rotate(14deg); line-height: 1; }.login-benefits { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 2px; }.login-benefits>span { display: flex; align-items: center; gap: 7px; font-size: 10px; color: #af95c3; }.login-benefits .icon { width: 14px; height: 14px; }.login-art footer { font-size: 9px; color: #b297c6; line-height: 1.7; margin-top: auto; padding-top: 35px; }
.login-panel { display: flex; flex-direction: column; justify-content: center; padding: 45px clamp(28px,6.2vw,90px); min-width: 0; }.login-form-wrap { width: min(100%,390px); margin: auto; }.login-form-wrap>.page-kicker { color: #b595ca; font-size: 9px; margin-bottom: 15px; }.login-panel h1 { color: #a47abb; font-size: 32px; letter-spacing: -.05em; font-weight: 680; }.form-intro { color: #bca0cf; font-size: 12px; margin: 12px 0 30px; }.password-wrap { position: relative; }.password-wrap input { padding-right: 85px; }.password-toggle { position: absolute; top: 0; bottom: 0; right: 0; padding: 0 13px; background: none; border: 0; color: #b28bc9; font-size: 10px; }.login-submit { width: 100%; min-height: 46px; justify-content: space-between; padding-left: 17px; padding-right: 17px; margin-top: 4px; }.demo-accounts { margin-top: 29px; }.demo-accounts-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; color: #b599ca; font-size: 8px; letter-spacing: .05em; }.demo-tag { color: #c4add5; font-size: 8px; text-transform: none; letter-spacing: 0; }.demo-list { display: flex; flex-direction: column; gap: 9px; margin-top: 13px; }.demo-user { width: 100%; display: flex; align-items: center; gap: 12px; border: 1px solid #eddef7; background: #fff; border-radius: 11px; padding: 12px; text-align: left; }.demo-user:hover { background: #fcf7ff; border-color: #d6b8e8; }.demo-user .avatar { width: 33px; height: 33px; border-radius: 10px; font-size: 10px; }.demo-user>span:not(.avatar) { min-width: 0; flex: 1; }.demo-user b { display: block; font-size: 11px; color: #bb96d0; font-weight: 600; }.demo-user small { display: block; color: #c6a9d8; font-size: 9px; margin-top: 5px; line-height: 1.5; }.demo-user>.icon { width: 15px; height: 15px; color: #c5a7d8; }.demo-credentials { margin-top: 13px; font-size: 9px; color: #c6a9d8; }.demo-credentials summary { cursor: pointer; padding: 5px 0; }.demo-credentials p { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; font-size: 10px; }.demo-credentials p>span { color: #b995cf; }.demo-credentials code { font-size: 10px; color: #ae8bc3; margin-right: auto; }.login-note { display: flex; align-items: flex-start; gap: 10px; margin-top: 26px; background: #faf5fe; border: 1px solid #f0e3f9; border-radius: 11px; padding: 13px; color: #b99acb; }.login-note .icon { width: 16px; height: 16px; margin-top: 1px; }.login-note p { font-size: 9px; color: #bba0cc; }.login-footer { color: #c7afd8; font-size: 9px; margin-top: 25px; text-align: center; }.login-mobile-brand { display: none; }.mobile-header,.bottom-nav { display: none; }

/* Text colors verified in Chromium with axe-core; decorative surfaces stay pastel. */
.service-card h2,.request-row-main>b,.notice-title h2,.profile-data dd,.modal-head h2,.detail-summary h3,.login-panel h1 { color: #4b355c; }
.service-card p,.request-preview,.notice-content p,.profile-banner p,.profile-data dt,.security-list p,.field label,.field input,.field textarea,.field select,.detail-block>p,.staff-answer p,.document-result p,.request-history p,.login-copy>p { color: #5d4f65; }
.login-art h1 { color: #4a355a; }.login-art h1 em { color: #82669b; }.login-kicker,.login-art footer,.login-benefits>span { color: #5e4e6f; }.login-art .logo-word { color: #523c62; }.login-art .logo-sub { color: #5f4e6c; }
.login-form-wrap>.page-kicker,.form-intro,.demo-accounts-header,.demo-tag,.login-footer,.login-note p,.demo-credentials,.demo-credentials p>span,.demo-credentials code { color: #7c658d; }.demo-user b { color: #675078; }.demo-user small { color: #5e4f68; }.password-toggle { color: #876797; }.field input::placeholder,.field textarea::placeholder,.search-field input::placeholder { color: #9b88a6; }.login-ticket>div>b { color: #9878af; }
.profile-banner h2,.profile-data dd,.security-list b { color: #685078; }.profile-banner .overline,.profile-concept,.security-list p,.profile-data dt { color: #5f4e6a; }.empty-state h3,.error-state h1 { color: #846394; }.empty-state p,.error-state p { color: #5c5065; }
.modal-head p,.field .hint,.field-meta,.draft-note,.selected-service small,.detail-summary p,.detail-eta,.detail-block h3,#staff-form>h3,.request-history time,.detail-disclaimer { color: #5f4e6b; }.selected-service b,.request-history b { color: #77528d; }.staff-answer h3,.staff-answer p { color: #465a38; }.document-result b { color: #805694; }.track-step>b { color: #604e69; }.track-step.complete>b,.track-step.current>b { color: #745488; }.inline-error { color: #9b476c; }
.search-result b { color: #805b96; }.search-result small,.search-empty { color: #5f4e6a; }.search-field input { color: #75558a; }.search-result { color: #a485b9; }.notice-title h2 { color: #655271; }.notification-full.read .notice-title h2 { color: #796982; }

@media (min-width: 1600px) { .content { padding-top: 40px; }.feature-hero { min-height: 235px; }.feature-hero h2 { font-size: 30px; }.card-pad { padding: 27px 29px; }.lesson-details h3 { font-size: 14px; }.lesson-details p,.lesson-location { font-size: 11px; }.deadline-info b { font-size: 12px; } }
@media (max-width: 1250px) { .sidebar { width: 220px; padding-left: 13px; padding-right: 13px; }.main { margin-left: 220px; }.topbar { padding-left: 28px; padding-right: 28px; }.content { padding-left: 28px; padding-right: 28px; }.concept-bar { padding-left: 28px; padding-right: 28px; }.today-label { display: none; }.grid-dashboard { grid-template-columns: minmax(0,1.55fr) minmax(270px,1fr); gap: 18px; }.card-pad { padding: 20px; }.feature-hero { padding: 24px; }.hero-art { width: 105px; transform: scale(.85); transform-origin: center right; margin-left: 0; }.feature-hero h2 { font-size: 23px; }.week-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }.service-catalog { grid-template-columns: repeat(2,minmax(0,1fr)); }.service-card { padding: 20px; }.service-card p { font-size: 12px; }.requests-layout { grid-template-columns: minmax(0,1.8fr) minmax(210px,1fr); }.request-row { gap: 10px; }.attention-panel { flex-wrap: wrap; }.attention-label { flex-basis: 100%; }.grade-table progress { width: 95px; }.summary-metric { padding: 20px; gap: 12px; }.summary-icon { width: 36px; height: 36px; }.plan-layout { grid-template-columns: minmax(0,1.8fr) minmax(220px,1fr); }.app-footer { padding-left: 28px; padding-right: 28px; } }
@media (max-width: 1050px) { .grid-dashboard { grid-template-columns: minmax(0,1fr); }.dash-right { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; }.semester-pill { display: none; }.feature-hero h2 { max-width: 440px; }.hero-art { transform: none; width: 155px; }.requests-layout { grid-template-columns: minmax(0,1fr); }.requests-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }.requests-aside>.note-callout { margin-top: 0; }.plan-layout { grid-template-columns: minmax(0,1fr); }.plan-advice { display: none; }.login-art,.login-panel { padding-left: 35px; padding-right: 35px; }.login-art h1 { font-size: 48px; }.illustration-bubble { left: 140px; }.illustration-star { left: 255px; }.login-benefits { gap: 15px; }.profile-concept { display: none; }.search-trigger kbd { display: none; } }
@media (max-width: 900px) { .sidebar,.topbar { display: none; }.main { margin-left: 0; padding-bottom: calc(74px + env(safe-area-inset-bottom)); }.mobile-header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 25px; min-height: 73px; background: #fff; border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 15; }.mobile-header .logo-mark { width: 33px; height: 33px; font-size: 26px; border-radius: 11px; }.mobile-header .logo-word { font-size: 18px; }.mobile-header .logo-sub { font-size: 6.5px; }.mobile-header .logo { gap: 9px; }.mobile-actions { display: flex; align-items: center; gap: 9px; }.mobile-actions .circle-button { width: 36px; height: 36px; background: #faf9fc; border-color: #f2edf7; }.mobile-actions .circle-button .icon { width: 17px; height: 17px; }.mobile-actions .avatar { width: 33px; height: 33px; font-size: 10px; }.content { padding-top: 27px; }.concept-bar { padding: 9px 27px; font-size: 9px; }.concept-long { display: none; }.bottom-nav { position: fixed; bottom: 0; left: 0; right: 0; z-index: 20; min-height: calc(72px + env(safe-area-inset-bottom)); background: #fffffff5; backdrop-filter: blur(15px); border-top: 1px solid #e8e2f0; display: flex; justify-content: space-around; align-items: flex-start; padding: 7px 10px calc(8px + env(safe-area-inset-bottom)); }.bottom-nav .nav-item { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 55px; padding: 7px 3px; gap: 6px; border-radius: 9px; width: auto; flex: 1; font-size: 9px; color: #5a5160; }.bottom-nav .nav-item .icon { width: 20px; height: 20px; }.bottom-nav .nav-item.active { background: #f3edf9; color: #9272ab; }.bottom-nav .nav-item.active span { color: #7f5c98; }.bottom-nav .nav-badge { display: none; }.login-root { grid-template-columns: minmax(0,.9fr) minmax(380px,1fr); }.login-art { padding-left: 30px; padding-right: 25px; }.login-art h1 { font-size: 43px; }.login-copy>p { font-size: 12px; }.login-illustration { transform: scale(.85); transform-origin: left top; height: 230px; }.login-benefits { gap: 12px; }.login-benefits>span { font-size: 9px; }#toast { bottom: calc(87px + env(safe-area-inset-bottom)); } }
@media (max-width: 650px) { .content { padding: 25px 19px 30px; }.mobile-header { padding: 14px 20px; min-height: 68px; }.concept-bar { padding-left: 20px; padding-right: 20px; font-size: 8px; }.concept-divider { margin: 0 3px; }.title-row { margin-bottom: 22px; gap: 14px; flex-wrap: wrap; }.page-title { font-size: 29px; }.page-kicker { font-size: 9px; margin-bottom: 9px; }.page-subtitle { font-size: 12px; margin-top: 10px; }.page-actions { padding-top: 0; width: 100%; }.page-actions .primary-button,.page-actions .outline-button { font-size: 11px; }.greeting-star { font-size: 27px; }.grid-dashboard { gap: 19px; }.dash-main,.dash-right { gap: 19px; }.dash-right { display: flex; }.card-pad { padding: 20px; }.card-title { font-size: 15px; }.card-titlebar>.mini-link { font-size: 11px; }.feature-hero { padding: 26px 24px; min-height: 200px; }.feature-hero h2 { font-size: 25px; max-width: 320px; }.hero-art { width: 115px; transform: scale(.8); transform-origin: center right; }.stats { gap: 10px; }.stat { padding: 16px; }.stat-label { font-size: 10px; }.stat-value { font-size: 28px; }.stat-sub { font-size: 9px; }.stat-value small { font-size: 9px; }.stat-label .icon { width: 13px; height: 13px; }.lesson-details h3 { font-size: 13px; }.lesson-details p { font-size: 11px; }.lesson-location { font-size: 11px; }.deadline-info b { font-size: 12px; }.deadline-info p { font-size: 11px; }.due-label { font-size: 10px; max-width: 68px; }.risk-card { padding: 22px; }.risk-card p { font-size: 12px; }.risk-header h2 { font-size: 14px; }.risk-card .mini-link { font-size: 12px; }.notice-preview b { font-size: 12px; }.notice-preview small { font-size: 11px; }.quick-services button>b { font-size: 12px; }.quick-services button>span:not(.service-mini-icon) { font-size: 10px; }.schedule-toolbar { gap: 15px; }.week-switch { gap: 8px; }.week-switch h2 { min-width: 150px; font-size: 13px; }.toolbar-actions { width: 100%; justify-content: space-between; }.square-btn { width: 39px; height: 39px; }.change-banner { padding: 14px; }.schedule-info { font-size: 10px; flex-direction: column; gap: 6px; }.schedule-info>span:last-child { display: none; }.week-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }.day-head { flex-direction: row; justify-content: space-between; padding: 13px; min-height: 54px; }.day-head>span { margin: 0; font-size: 8px; }.day-lesson { min-height: 182px; padding: 15px 13px; }.day-lesson-time { font-size: 11px; }.day-lesson h3 { font-size: 13px; }.lesson-kind { font-size: 10px; }.day-lesson>p { font-size: 11px; }.day-lesson .lesson-location { font-size: 11px; }.change-note { font-size: 10px; }.week-empty { padding: 25px 8px; font-size: 11px; }.day-picker { gap: 5px; }.day-pick { padding: 12px 2px; border-radius: 10px; }.day-pick>span { font-size: 10px; }.day-pick>b { font-size: 20px; }.day-view .card-title { font-size: 14px; }.grade-summary { gap: 10px; margin-bottom: 20px; }.summary-metric { flex-direction: column; align-items: flex-start; gap: 11px; padding: 17px 14px; border-radius: 13px; }.summary-icon { width: 32px; height: 32px; border-radius: 10px; }.summary-icon .icon { width: 17px; height: 17px; }.summary-metric b { font-size: 28px; }.summary-metric b small { font-size: 10px; }.summary-metric p { font-size: 10px; margin-top: 6px; line-height: 1.45; }.attention-panel { padding: 19px; gap: 13px; margin-bottom: 20px; }.attention-label { font-size: 10px; }.attention-panel h2 { font-size: 14px; }.attention-panel p { font-size: 11px; }.attention-panel>.outline-button { width: 100%; margin-top: 4px; }.grade-table thead { display: none; }.grade-table tbody tr { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; padding: 21px 0; border-bottom: 1px solid #eee6f4; }.grade-table tbody tr:last-child { border-bottom: 0; }.grade-table tbody th,.grade-table td { display: block; padding: 0; border: 0; min-width: 0; }.grade-table tbody th { grid-column: 1; grid-row: 1; }.grade-table td:nth-child(2) { grid-column: 1; grid-row: 2; }.grade-table td:nth-child(3) { grid-column: 2; grid-row: 1; text-align: right; }.grade-table td:nth-child(4) { grid-column: 2; grid-row: 2; text-align: right; }.grade-table progress { width: 105px; }.subject-name { font-size: 13px; }.subject-prof { font-size: 11px; }.progress-caption,.assessment,.small-delta { font-size: 9px; }.grade-points { font-size: 26px; }.exam-list { grid-template-columns: 1fr; gap: 12px; }.exam-box { padding: 18px; }.exam-box b { font-size: 13px; }.exam-date { font-size: 11px; }.exam-box>span:last-child { font-size: 11px; }.note-callout { font-size: 10px; }.plan-hero { padding: 23px; gap: 18px; }.plan-hero h2 { font-size: 22px; }.plan-hero p { font-size: 11px; }.plan-progress { min-width: 80px; }.plan-progress strong { font-size: 37px; }.plan-progress progress { width: 80px; }.plan-layout .deadline-item { gap: 14px; }.filter-tabs { gap: 3px; }.filter-tabs button { font-size: 10px; padding: 8px; min-height: 38px; }.filter-tabs button span { font-size: 9px; }.service-catalog { gap: 12px; margin-bottom: 22px; }.service-card { padding: 19px 17px; }.service-card h2 { font-size: 15px; }.service-card p { font-size: 11px; }.service-eta { font-size: 9px; }.service-cta { font-size: 11px; }.request-row { padding: 20px 0; gap: 12px; flex-wrap: wrap; }.request-row-main { flex-basis: calc(100% - 60px); }.request-row-main>b { font-size: 13px; }.request-row-main>small { font-size: 10px; }.request-preview { font-size: 11px; }.request-row-end { flex-direction: row; align-items: center; justify-content: space-between; max-width: none; flex: 1; padding-left: 51px; }.request-row-end>small { font-size: 9px; }.request-row>.icon { margin-left: auto; }.request-status { font-size: 10px; }.requests-aside { grid-template-columns: 1fr; }.quick-steps { gap: 20px; }.quick-steps b { font-size: 12px; }.quick-steps p { font-size: 11px; }.notification-full { gap: 13px; }.notification-full .notice-icon { width: 35px; height: 35px; border-radius: 10px; }.notice-title h2 { font-size: 13px; }.notice-content p { font-size: 12px; }.notice-bottom { gap: 8px 14px; }.notice-bottom time { font-size: 9px; width: 100%; }.notice-bottom .mini-link,.quiet-button { font-size: 10px; }.profile-banner { padding: 23px; gap: 17px; }.profile-banner .avatar { width: 55px; height: 55px; border-radius: 17px; font-size: 18px; }.profile-banner h2 { font-size: 21px; }.profile-banner .overline { font-size: 7px; }.profile-banner p { font-size: 11px; }.profile-grid { grid-template-columns: 1fr; gap: 20px; }.profile-data dd { font-size: 13px; }.profile-data dt { font-size: 11px; }.security-list p { font-size: 12px; }.security-list b { font-size: 13px; }.staff-tools .search-field { width: 100%; min-width: 0; }.staff-tools .filter-tabs { margin-top: 5px; }.app-footer { flex-direction: column; gap: 5px; padding: 0 20px 23px; font-size: 8px; }.modal-layer { padding: 13px; }.modal { border-radius: 17px; padding: 23px; max-height: calc(100dvh - 26px); }.modal-head h2 { font-size: 22px; }.modal-head p { font-size: 11px; }.modal-head { margin-bottom: 22px; }.field label { font-size: 12px; }.field input,.field select,.field textarea { font-size: 14px; }.field-meta { font-size: 10px; }.modal-actions { gap: 9px; }.modal-actions>button { font-size: 11px; padding: 11px; }.detail-summary { gap: 12px; flex-wrap: wrap; }.detail-summary>div { flex-basis: calc(100% - 60px); }.detail-summary>.request-status { margin-left: 51px; margin-top: 0; }.detail-summary h3 { font-size: 16px; }.detail-summary p { font-size: 10px; }.document-result { flex-direction: column; align-items: stretch; padding: 17px; }.document-result .primary-button { width: 100%; }.track-step>b { font-size: 8px; }.detail-eta { font-size: 10px; }.staff-answer { padding: 15px; }.staff-answer p { font-size: 12px; }.request-history b { font-size: 12px; }.request-history time { font-size: 9px; }.request-history p { font-size: 11px; }.detail-disclaimer { font-size: 9px; }.selected-service small { font-size: 11px; }.selected-service b { font-size: 12px; }.draft-note { font-size: 10px; }.search-result b { font-size: 13px; }.search-result small { font-size: 11px; }.search-result { padding: 14px 11px; }#toast { right: 13px; left: 13px; max-width: none; }.toast-message { font-size: 12px; }.login-root { display: block; background: #fcfaff; }.login-art { display: none; }.login-panel { min-height: 100dvh; padding: 26px 24px 35px; justify-content: flex-start; }.login-mobile-brand { display: block; margin-bottom: 42px; }.login-mobile-brand .logo-mark { width: 35px; height: 35px; font-size: 26px; background: #a585bd; }.login-mobile-brand .logo-word { color: #9271a8; font-size: 20px; }.login-mobile-brand .logo-sub { color: #5e4f69; font-size: 7px; }.login-form-wrap { margin: auto; }.login-panel h1 { font-size: 30px; }.login-form-wrap>.page-kicker { font-size: 9px; }.form-intro { font-size: 12px; margin-bottom: 27px; }.demo-user { padding: 12px; }.demo-user b { font-size: 12px; }.demo-user small { font-size: 10px; }.demo-accounts-header,.demo-tag { font-size: 8px; }.demo-credentials { font-size: 10px; }.login-note p { font-size: 10px; }.login-footer { font-size: 9px; }.login-panel .field input { font-size: 15px; } }
@media (max-width: 420px) { .content { padding: 23px 16px 28px; }.mobile-header { padding: 13px 17px; }.mobile-header .logo-word { font-size: 17px; }.mobile-header .logo-sub { font-size: 6px; }.mobile-header .logo-mark { width: 31px; height: 31px; }.mobile-actions { gap: 6px; }.mobile-actions .circle-button { width: 33px; height: 33px; }.mobile-actions .avatar { width: 31px; height: 31px; }.concept-bar { padding-left: 17px; padding-right: 17px; font-size: 8px; }.page-title { font-size: 27px; }.page-kicker { font-size: 8px; }.page-subtitle { font-size: 11px; }.subtitle-dot { padding: 0 4px; }.feature-hero { padding: 24px; min-height: 196px; }.feature-hero h2 { font-size: 27px; max-width: 270px; }.hero-art { display: none; }.feature-hero:after { width: 140px; height: 140px; top: -80px; right: -50px; }.feature-hero p { font-size: 12px; }.hero-small { font-size: 8px; }.hero-link { font-size: 11px; margin-top: 21px; }.stats { gap: 8px; }.stat { padding: 14px 11px; border-radius: 12px; }.stat-label { font-size: 10px; min-height: 28px; }.stat-label .icon { display: none; }.stat-value { font-size: 28px; margin: 11px 0 8px; }.stat-value small { font-size: 8px; display: block; margin: 7px 0 0; }.stat-sub { font-size: 8px; line-height: 1.5; }.card-pad { padding: 19px; }.card-title { font-size: 14px; }.card-titlebar>.mini-link { font-size: 10px; }.lesson-row { gap: 12px; }.lesson-time { flex-basis: 39px; }.lesson-time b { font-size: 12px; }.lesson-details h3 { font-size: 13px; }.lesson-details p { font-size: 10px; }.lesson-location { font-size: 10px; }.quick-services { gap: 10px; }.quick-services button { padding: 14px 12px; }.quick-services button>b { font-size: 12px; }.quick-services button>span:not(.service-mini-icon) { font-size: 10px; }.quick-services button>.icon { right: 12px; }.due-label { font-size: 9px; max-width: 58px; }.deadline-item { gap: 10px; }.deadline-info b { font-size: 11px; }.deadline-info p { font-size: 10px; }.week-grid { gap: 12px; }.day-lesson { padding: 14px 11px; }.day-lesson h3 { font-size: 12px; }.day-lesson>p,.day-lesson .lesson-location { font-size: 10px; }.day-head { padding: 10px; }.day-head>div { gap: 6px; }.day-head b { font-size: 19px; }.day-head>div span { font-size: 10px; }.grade-summary { gap: 8px; }.summary-metric { padding: 15px 12px; }.summary-metric b { font-size: 25px; }.summary-metric p { font-size: 10px; }.summary-metric b small { font-size: 9px; }.plan-hero { padding: 21px; gap: 13px; }.plan-hero h2 { font-size: 20px; }.plan-hero p { font-size: 11px; }.plan-progress { min-width: 58px; }.plan-progress progress { width: 58px; }.plan-progress strong { font-size: 31px; }.plan-progress small { font-size: 15px; }.plan-hero .overline { font-size: 7px; }.plan-layout .deadline-info b { font-size: 12px; }.task-checkbox { width: 21px; height: 21px; }.service-catalog { gap: 10px; }.service-card { padding: 17px 14px; }.service-card h2 { font-size: 14px; }.service-card p { font-size: 10px; }.service-eta { font-size: 8px; }.service-cta { font-size: 10px; }.catalog-icon { width: 35px; height: 35px; border-radius: 11px; margin-bottom: 15px; }.catalog-icon .icon { width: 18px; height: 18px; }.service-catalog .service-card { min-height: 230px; }.filter-tabs button { padding: 8px 7px; font-size: 9px; }.filter-tabs button span { font-size: 8px; }.request-row-main>b { font-size: 12px; }.request-row-main>small { font-size: 9px; }.request-row-end>small { font-size: 8px; }.request-status { font-size: 9px; }.profile-banner { padding: 20px; gap: 14px; }.profile-banner .avatar { width: 45px; height: 45px; border-radius: 14px; font-size: 15px; }.profile-banner h2 { font-size: 20px; }.profile-banner p { font-size: 10px; }.modal { padding: 20px; }.modal-actions { flex-direction: column-reverse; }.modal-actions>button { width: 100%; font-size: 12px; }.modal-head h2 { font-size: 21px; }.field-meta { font-size: 9px; }.detail-summary h3 { font-size: 15px; }.track-step>b { font-size: 8px; }.track-step>span { width: 27px; height: 27px; font-size: 10px; }.track-step:before { top: 13px; }.modal .note-callout { font-size: 9px; }.login-panel { padding-left: 23px; padding-right: 23px; }.login-panel .login-note p { font-size: 9px; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
