﻿:root { --navy:#203f62; --green:#176b52; --green-hover:#105541; --silver:#b7bdc5; --gold:#8a681e; --text:#292d32; --muted:#545d66; --page:#f5f4f1; --panel:#f6f8fa; --gutter:14px; --padding:14px; --menu-submenu-bg:#e1ebf4; --menu-submenu-selected-bg:#c4d9ec; --menu-symbol-gold:#f4d994; --menu-symbol-gold-on-light:#765414; }
* { box-sizing:border-box; }
body { margin:0; background:var(--page); color:var(--text); font:16px/1.6 "Microsoft JhengHei","Noto Sans TC",Arial,sans-serif; }
#form1 { position:relative; isolation:isolate; min-height:100vh; min-height:100svh; display:flex; flex-direction:column; }
.site-header { position:relative; z-index:1; border-bottom:4px solid var(--gold); background:var(--navy); color:#fff; }
.brand-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 14px; padding:8px var(--padding); }
.brand-copy { min-width:0; }
.school-name,.service-name { margin:0; line-height:1.4; }
.school-name { font-size:18px; font-weight:700; }
.service-name { font-size:15px; }
.service-name a { color:inherit; text-decoration:none; }
.service-name a:hover { text-decoration:underline; text-underline-offset:4px; }
.site-tools-toggle { display:inline-flex; width:48px; min-height:44px; align-items:center; justify-content:center; align-self:center; padding:8px 11px; border:1px solid rgba(255,255,255,.75); border-radius:4px; background:transparent; color:#fff; cursor:pointer; }
.site-tools-toggle[aria-expanded="true"] { background:#fff; color:var(--navy); }
.hamburger-icon { display:grid; width:24px; gap:5px; }
.hamburger-icon span { display:block; height:3px; border-radius:2px; background:currentColor; }
.site-tools { display:none; grid-column:1 / -1; gap:8px; padding-top:6px; border-top:1px solid rgba(255,255,255,.35); }
.site-tools.is-open { display:grid; }
.site-tools a,.logout-button { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:8px 14px; border:1px solid rgba(255,255,255,.7); border-radius:4px; background:transparent; color:#fff; font-weight:700; text-decoration:none; }
.site-tools a:hover,.logout-button:hover { background:rgba(255,255,255,.12); }
.logout-button { width:100%; cursor:pointer; }
main { position:relative; z-index:1; margin:16px var(--gutter); }
.academic-term { margin:0 0 16px; color:var(--navy); font-weight:700; overflow-wrap:anywhere; }
.site-footer { position:relative; z-index:1; margin-top:auto; padding:8px var(--gutter); background:var(--page); color:var(--muted); text-align:center; font-size:14px; overflow-wrap:anywhere; }
.site-footer p { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; column-gap:8px; margin:0; }
.site-footer .footer-admin { white-space:nowrap; }
.site-footer a { display:inline-flex; min-height:44px; align-items:center; color:#0b4f78; text-underline-offset:3px; overflow-wrap:anywhere; }
.logo-background { position:fixed; z-index:0; right:var(--gutter); bottom:76px; display:flex; justify-content:flex-end; align-items:flex-end; pointer-events:none; }
.logo-background img { display:block; width:min(35vw,27.5vh,350px); max-width:100%; height:auto; opacity:.14; mix-blend-mode:multiply; }
.skip-link { position:absolute; z-index:2; top:8px; left:8px; padding:10px 16px; transform:translateY(-180%); background:#fff; color:var(--navy); }
.skip-link:focus { transform:none; }
a:focus-visible,button:focus-visible,input:focus-visible,main:focus-visible { outline:3px solid var(--green); outline-offset:3px; }
@media(min-width:561px) { :root { --gutter:20px; --padding:20px; } .brand-row { align-items:center; } .site-tools-toggle { display:none; } .site-tools { display:flex; grid-column:auto; padding-top:0; border-top:0; } .site-tools a,.logout-button { width:auto; } .menu-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:821px) { :root { --gutter:30px; --padding:30px; } }
@media(max-width:820px) { .logo-background { bottom:120px; } }

/* 程式選單使用左側浮動導覽及文字清單，不使用資訊卡。 */
main { width:95%; max-width:none; margin:0 auto; padding:0 var(--gutter) 32px; }
.menu-layout { background:transparent; }
.menu-content { min-width:0; padding:16px var(--padding) 28px; }
.floating-program-menu { position:fixed; z-index:3; top:96px; left:0; width:52px; overflow:hidden; border:1px solid var(--silver); border-left:0; border-radius:0 6px 6px 0; background:var(--navy); box-shadow:0 6px 18px rgba(32,63,98,.2); transition:width .24s ease,box-shadow .24s ease; }
.floating-program-menu:hover,.floating-program-menu:focus-within,.floating-program-menu.is-open { width:204px; box-shadow:0 8px 24px rgba(32,63,98,.28); }
.floating-program-toggle,.floating-program-group-toggle,.floating-program-links a { display:grid; width:202px; min-height:48px; grid-template-columns:50px minmax(0,1fr); align-items:center; padding:0; border:0; background:transparent; color:#fff; font:inherit; font-weight:700; text-align:left; text-decoration:none; cursor:pointer; }
.floating-program-toggle { border-bottom:1px solid rgba(255,255,255,.22); }
.floating-program-links { display:flex; flex-direction:column; }
.floating-program-links a { border-left:4px solid var(--gold); border-bottom:1px solid var(--silver); background:var(--green); }
.floating-program-group-toggle { grid-template-columns:50px minmax(0,1fr) 24px; border-left:4px solid var(--gold); border-bottom:1px solid var(--silver); background:var(--green); }
.floating-program-submenu { display:none; flex-direction:column; }
.floating-program-group.is-open .floating-program-submenu { display:flex; }
.floating-program-submenu a { grid-template-columns:58px minmax(0,1fr); background:var(--menu-submenu-bg); color:var(--navy); }
.floating-program-submenu .floating-program-symbol { width:32px; padding-left:0; justify-self:center; }
.floating-program-links a[aria-current="page"] { background:var(--green-hover); box-shadow:inset 4px 0 0 rgba(255,255,255,.3); }
.floating-program-toggle:hover { background:var(--navy); }
.floating-program-group-toggle:hover,.floating-program-group-toggle[aria-expanded="true"] { background:var(--green-hover); }
.floating-program-group-toggle[aria-controls="floating-admin-links"],.floating-program-group-toggle[aria-controls="floating-admin-links"]:hover,.floating-program-group-toggle[aria-controls="floating-admin-links"][aria-expanded="true"] { background:var(--navy); }
.floating-program-links a:hover { background:var(--green-hover); }
.floating-program-submenu a:hover,.floating-program-submenu a:focus-visible,.floating-program-submenu a[aria-current="page"] { background:var(--menu-submenu-selected-bg); color:var(--navy); }
.floating-program-symbol { display:grid; width:50px; min-height:48px; place-items:center; font-size:15px; }
.floating-program-links .floating-program-symbol { justify-self:center; width:32px; height:32px; min-height:32px; color:var(--menu-symbol-gold); border:1px solid currentColor; border-radius:7px; }
.floating-program-submenu .floating-program-symbol { color:var(--menu-symbol-gold-on-light); }
.floating-program-submenu a:hover .floating-program-symbol,.floating-program-submenu a:focus-visible .floating-program-symbol,.floating-program-submenu a[aria-current="page"] .floating-program-symbol { color:var(--menu-symbol-gold-on-light); }
.floating-program-text { white-space:nowrap; opacity:0; transform:translateX(-8px); transition:opacity .18s ease,transform .24s ease; }
.floating-program-caret { justify-self:center; font-size:22px; font-weight:900; line-height:1; opacity:0; transform:rotate(-90deg); transition:opacity .18s ease,transform .2s ease; }
.floating-program-group.is-open .floating-program-caret { transform:rotate(0); }
.floating-program-menu:hover .floating-program-text,.floating-program-menu:focus-within .floating-program-text,.floating-program-menu.is-open .floating-program-text { opacity:1; transform:none; }
.floating-program-menu:hover .floating-program-caret,.floating-program-menu:focus-within .floating-program-caret,.floating-program-menu.is-open .floating-program-caret { opacity:1; }
.menu-status-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; margin:2px 0 10px; }
.academic-term { margin:0; color:var(--navy); font-weight:700; overflow-wrap:anywhere; }
.system-clock { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 6px; color:var(--navy); font-size:16px; }
.system-clock-label { font-weight:700; }
.menu-clock-time { display:inline-flex; flex-wrap:wrap; gap:0 8px; color:var(--green); font-variant-numeric:tabular-nums; }
.menu-clock-date { color:var(--muted); }
.menu-clock-digits { font-weight:700; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:14px; color:var(--muted); font-size:14px; }
.breadcrumb a { color:#0b4f78; text-underline-offset:3px; }
.page-heading { margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--silver); }
.page-heading h1 { margin:0 0 4px; color:var(--navy); font-size:22px; line-height:1.4; }
.page-heading p { margin:0; color:var(--muted); }
.program-group { margin-top:8px; }
.program-group[id] { scroll-margin-top:16px; }
.program-group > h2 { margin:0; padding:9px 12px; border-left:4px solid var(--gold); background:#eceff2; color:var(--navy); font-size:17px; line-height:1.4; }
.program-list { display:grid; grid-template-columns:minmax(0,1fr); gap:0; margin:0; padding:6px 0; list-style:none; }
.program-list li { min-width:0; border-bottom:1px solid #e2e5e8; }
.program-entry { display:grid; grid-template-columns:32px minmax(0,1fr); min-height:56px; align-items:center; gap:0 10px; padding:7px 10px; }
.program-symbol { display:grid; width:28px; height:28px; place-items:center; border-radius:3px; background:var(--green); color:#fff; font-size:14px; font-weight:700; }
.program-name { color:var(--navy); font-weight:700; }
.program-status { grid-column:2; color:var(--muted); font-size:13px; }
@media(min-width:561px) {
    .program-list { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }
}

@media(min-width:821px) {
    .menu-content { padding:8px 12px 32px; }
    .program-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .program-list li { border-bottom:0; }
    .program-entry { border-bottom:1px solid #e2e5e8; }
}

@media(min-width:561px) {
    .brand-copy { display:flex; flex-wrap:wrap; align-items:baseline; column-gap:14px; }
}

@media(min-width:821px) {
    .brand-row { padding-top:10px; padding-bottom:10px; }
}

@media(max-width:560px) {
    main { padding-left:52px; }
    .floating-program-menu { top:92px; }
}

@media(prefers-reduced-motion:reduce) {
    .floating-program-menu,.floating-program-text,.floating-program-caret { transition:none; }
}
.menu-message { margin:16px 30px 0; padding:10px 12px; border-left:4px solid var(--gold); background:#fff4d6; color:var(--navy); }

@media(max-width:560px) {
    .menu-message { margin:12px 12px 0; }
}
