﻿:root{--bg:#f6efe2;--surface:#fffaf0;--panel:#fff;--ink:#07312c;--muted:#66716d;--line:#decaa7;--soft-line:#eadcc4;--primary:#0a5a4c;--blue-soft:#dceeff;--green-soft:#e6f6f1;--shadow:0 18px 45px rgba(77,53,15,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--bg);font-family:"Noto Sans TC","Microsoft JhengHei",Arial,sans-serif;line-height:1.65}a{color:inherit}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px max(24px,calc((100vw - 1180px)/2));background:rgba(255,250,240,.94);border-bottom:1px solid var(--soft-line);backdrop-filter:blur(10px)}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;min-width:230px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;background:var(--primary);font-weight:800}.brand strong,.brand small{display:block;line-height:1.2}.brand small{color:var(--muted);font-size:.78rem;margin-top:2px}.nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.nav a{min-height:36px;padding:8px 12px;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:700}.nav a:hover,.nav a.active{color:var(--primary);background:var(--green-soft)}main{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:28px 0 54px}.hero-section,.page-hero,.section{border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.hero-section{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:24px;align-items:stretch;padding:clamp(28px,5vw,52px)}.hero-copy{align-self:center}.eyebrow{margin:0 0 8px;color:var(--primary);font-weight:800}h1,h2,h3{margin:0;line-height:1.25;letter-spacing:0}h1{font-size:clamp(2.1rem,6vw,4.4rem)}h2{font-size:clamp(1.35rem,3vw,2rem)}h3{font-size:1.1rem}p{margin:0;color:var(--muted)}.hero-text{max-width:66ch;margin-top:18px;font-size:1.06rem}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border:1px solid var(--line);border-radius:999px;background:#fffaf4;color:var(--primary);text-decoration:none;font-weight:800;cursor:pointer;font:inherit}.button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.button.secondary{background:#fff}.button.full{width:100%}.button:disabled{opacity:.6;cursor:wait}.stat-panel,.panel{background:var(--panel);border:1px solid var(--soft-line);border-radius:14px;padding:22px}.stat-panel{display:grid;gap:14px}.stat-panel div,.stats-grid article{padding:18px;border-radius:12px;background:var(--green-soft)}.metric,.stats-grid span{display:block;color:var(--ink);font-size:2rem;font-weight:900;line-height:1}.section,.page-hero{margin-top:22px;padding:clamp(22px,4vw,34px)}.section-head{margin-bottom:18px}.feature-grid,.card-grid,.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.feature{padding:20px;border:1px solid var(--soft-line);border-radius:12px;background:#fffdf8}.feature p{margin-top:8px}.split-callout,.two-column{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.quick-links{display:grid;gap:10px}.quick-links a{padding:15px 16px;border-radius:10px;background:#fff;border:1px solid var(--soft-line);text-decoration:none;font-weight:800}.form{display:grid;gap:14px}.form label,.inline-form label{color:var(--ink);font-weight:800}input,select,textarea{width:100%;min-height:48px;margin-top:7px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fffef9;color:var(--ink);font:inherit}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.consent{display:flex;gap:10px;align-items:flex-start;font-weight:700}.consent input{width:18px;min-height:18px;margin-top:4px;flex:0 0 auto}.form-message{min-height:28px;padding:10px 0 0;font-weight:800}.form-message.success{color:var(--primary)}.form-message.error{color:#a53624}.inline-form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}.inline-form .form-message{grid-column:1/-1}.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}.soft-panel{background:var(--green-soft)}.check-list{margin:12px 0 0;padding-left:20px;color:var(--muted)}.check-list li{margin:8px 0}.fine-print{font-size:.92rem;color:var(--muted);margin-top:12px}.line-box{text-align:center}.line-icon{display:inline-grid;place-items:center;width:78px;height:78px;border-radius:50%;background:#06c755;color:#fff;font-weight:900;margin-bottom:12px}.tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.tab{min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fffdf8;color:var(--primary);font:inherit;font-weight:800;cursor:pointer}.tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.resource-card{padding:18px;border-radius:12px;border:1px solid var(--soft-line);background:#fff}.resource-card h3{margin-top:8px}.resource-card p{margin-top:8px}.badge{display:inline-flex;padding:4px 9px;border-radius:999px;background:var(--blue-soft);color:#14558a;font-size:.84rem;font-weight:800}.resource-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.resource-actions a{font-size:.92rem;min-height:36px;padding:7px 12px}.access-note{margin-top:10px;color:#7a5a21;font-weight:700}.table-section{margin-top:24px}.table-section h2{margin-bottom:10px}.table-wrap{overflow-x:auto;border:1px solid var(--soft-line);border-radius:12px;background:#fff}table{width:100%;border-collapse:collapse;min-width:680px}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--soft-line);vertical-align:top}th{color:var(--primary);background:#fff8e8}.site-footer{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:20px 0 36px;color:var(--muted)}@media(max-width:920px){.site-header{position:static;align-items:flex-start;flex-direction:column}.nav{justify-content:flex-start}.hero-section,.two-column,.split-callout,.form-row,.feature-grid,.card-grid.three,.content-grid,.service-grid{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.service-card{min-height:auto}.service-card p{min-height:0}}

.field-hint{display:block;margin-top:6px;color:var(--muted);font-size:.9rem}.school-unit-field[hidden]{display:none!important}
.service-hub[hidden]{display:none!important}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.service-card{display:grid;gap:10px;align-content:start;min-height:240px;padding:20px;border:1px solid var(--soft-line);border-radius:12px;background:#fff}.service-card p{min-height:78px}.service-icon{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--green-soft);color:var(--primary);font-weight:900}.service-card .button{width:max-content;min-height:40px;padding:8px 14px;margin-top:auto}
.knowledge-ticker{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:18px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fffdf8;box-shadow:var(--shadow);overflow:hidden}.ticker-label{padding:6px 10px;border-radius:999px;background:var(--primary);color:#fff;font-weight:900;white-space:nowrap}.ticker-window{overflow:hidden;min-height:34px}.ticker-track{display:inline-flex;align-items:center;gap:34px;min-width:100%;white-space:nowrap;animation:tickerMove 70s linear infinite}.ticker-window:hover .ticker-track{animation-play-state:paused}.ticker-track a,.ticker-track span{text-decoration:none;color:var(--ink);font-weight:800}.ticker-link{padding:7px 10px;border-radius:999px;background:var(--green-soft);color:var(--primary);font-weight:900;text-decoration:none;white-space:nowrap}@keyframes tickerMove{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}
.notice-list{display:grid;gap:12px}.notice-item{padding:16px;border:1px solid var(--soft-line);border-radius:12px;background:#fff}.notice-item p{margin-top:8px}.notice-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;color:var(--muted);font-size:.92rem}.notice-meta a{color:var(--primary);font-weight:800}.lifestyle-hero{background:linear-gradient(135deg,#fffaf0 0%,#e6f6f1 100%)}.lifestyle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.place-card{display:grid;grid-template-rows:auto 1fr;border:1px solid var(--soft-line);border-radius:12px;background:#fff;overflow:hidden}.place-image{display:grid;place-items:center;aspect-ratio:16/9;background:var(--green-soft);color:var(--primary);font-size:2rem;font-weight:900}.place-image img{width:100%;height:100%;object-fit:cover}.place-body{display:grid;gap:9px;padding:16px}.place-body dl{display:grid;gap:6px;margin:0}.place-body div{display:grid;grid-template-columns:42px 1fr;gap:8px}.place-body dt{color:var(--primary);font-weight:900}.place-body dd{margin:0;color:var(--muted)}.admin-forms .panel h3{margin-bottom:6px}
@media(max-width:920px){.knowledge-ticker{grid-template-columns:1fr}.ticker-track{animation:none;white-space:normal}.lifestyle-grid{grid-template-columns:1fr}.place-body div{grid-template-columns:1fr}.ticker-link{width:max-content}}
.status-badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:999px;font-size:.82rem;font-weight:900;vertical-align:baseline}.status-badge.building{background:#fff3c4;color:#7a5614;border:1px solid #e4c56d}
.admin-login-form{max-width:520px}.admin-session-bar{display:flex;align-items:center;justify-content:space-between;gap:18px}.admin-session-bar .button{flex:0 0 auto}@media(max-width:920px){.admin-session-bar{display:grid}.admin-session-bar .button{width:max-content}}
.row-actions{display:flex;flex-wrap:wrap;gap:8px}.row-actions .button{min-height:34px;padding:6px 10px;font-size:.9rem}


body[data-page="activity"] .page-hero{padding:clamp(26px,4vw,44px);}
body[data-page="activity"] .page-hero h1{font-size:clamp(2.4rem,5vw,3.8rem);}
body[data-page="activity"] .page-hero p:not(.eyebrow){max-width:76ch;font-size:1.02rem;}
.activity-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));align-items:stretch;}
.activity-grid .place-card{grid-template-rows:auto 1fr;min-height:330px;}
.activity-grid .place-image{aspect-ratio:18/7;min-height:96px;padding:16px;background:#fff;border-bottom:1px solid var(--soft-line);font-size:1.55rem;}
.activity-grid .place-image img{width:100%;height:100%;object-fit:contain;object-position:center;}
.activity-grid .place-body{align-content:start;gap:10px;padding:16px 18px 18px;}
.activity-grid .place-body h3{font-size:1.08rem;line-height:1.35;}
.activity-grid .place-body p{font-size:.95rem;min-height:50px;}
.activity-grid .place-body .button{width:max-content;min-height:38px;padding:7px 14px;margin-top:auto;}
@media(max-width:640px){body[data-page="activity"] .page-hero h1{font-size:2.25rem}.activity-grid{grid-template-columns:1fr}.activity-grid .place-card{min-height:auto}.activity-grid .place-image{min-height:86px}}

.login-form{align-items:stretch;gap:12px}
.login-form label,.password-change-form label{font-weight:800;color:var(--ink)}
.hint-text{margin:0;color:var(--muted);font-size:.96rem;line-height:1.6}
.step-list{display:grid;gap:14px;margin:18px 0 0;padding:0;list-style:none;counter-reset:login-step}
.step-list li{counter-increment:login-step;display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;padding:14px;border:1px solid var(--soft-line);border-radius:8px;background:rgba(255,255,255,.62)}
.step-list li:before{content:counter(login-step);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--deep);color:#fff;font-weight:900}
.step-list strong,.step-list span{display:block}.step-list span{color:var(--muted);line-height:1.55;margin-top:3px}
.password-panel{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr);gap:24px;margin-bottom:26px;padding:24px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;box-shadow:var(--shadow)}
.password-panel.needs-change{background:#f0fbf7;border-color:#9ed8c9}
.password-panel h3{margin:0 0 8px;font-size:1.55rem}.password-panel p{margin:0;color:var(--muted);line-height:1.7}
.password-change-form{display:grid;gap:10px}.password-change-form input{width:100%}
@media(max-width:760px){.password-panel{grid-template-columns:1fr}.step-list li{grid-template-columns:38px 1fr}}

.nav a.login-entry{background:var(--primary);color:#fff;border:1px solid var(--primary);box-shadow:0 8px 20px rgba(10,90,76,.16)}
.nav a.login-entry:hover,.nav a.login-entry.active{background:#0d6f5f;color:#fff}
.remember-login{display:flex;gap:9px;align-items:flex-start;margin-top:2px;color:var(--ink);font-weight:800;line-height:1.5}.remember-login input{width:18px;min-height:18px;margin-top:3px;flex:0 0 auto}

.password-field{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.password-field input{margin-top:0}.password-toggle{min-width:62px;min-height:48px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--primary);font-weight:900;cursor:pointer}
.subscription-panel{margin:0 0 26px;padding:24px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.subscription-panel h3{font-size:1.55rem}.subscription-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.subscription-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:16px;border:1px solid var(--soft-line);border-radius:8px;background:#fffdf8}.subscription-item.is-active{background:#eefaf6;border-color:#9ed8c9}.subscription-item h4{margin:0;color:var(--ink);font-size:1.02rem}.subscription-item p{margin:4px 0;color:var(--muted);font-size:.94rem}.subscription-item small{color:var(--primary);font-weight:900}.subscription-toggle{min-width:98px;white-space:nowrap}
@media(max-width:760px){.password-field{grid-template-columns:1fr}.subscription-list{grid-template-columns:1fr}.subscription-item{grid-template-columns:1fr}.subscription-toggle{width:100%}}

.member-menu{position:relative;display:inline-flex;align-items:center}.member-menu-button{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:7px 12px 7px 8px;border:1px solid var(--primary);border-radius:999px;background:var(--primary);color:#fff;box-shadow:0 8px 20px rgba(10,90,76,.16);font:inherit;font-weight:900;cursor:pointer}.member-menu-button:hover,.member-menu.active .member-menu-button{background:#0d6f5f}.member-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fffaf0;color:var(--primary);font-weight:900}.member-menu-text{display:grid;line-height:1.15;text-align:left}.member-menu-label{font-size:.72rem;color:#d9f3ec;font-weight:800}.member-menu-text strong{font-size:.96rem;color:#fff}.member-menu-arrow{font-size:1.05rem;line-height:1}.member-menu-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:30;display:grid;gap:4px;min-width:230px;padding:10px;border:1px solid var(--soft-line);border-radius:14px;background:#fffdf8;box-shadow:0 18px 45px rgba(17,46,39,.16)}.member-menu-panel[hidden]{display:none}.member-menu-panel a,.member-menu-panel button{display:flex;align-items:center;min-height:40px;width:100%;padding:9px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);text-align:left;text-decoration:none;font:inherit;font-weight:800;cursor:pointer}.member-menu-panel a:hover,.member-menu-panel button:hover{background:var(--green-soft);color:var(--primary)}.member-menu-panel button{color:#8b3227}@media(max-width:920px){.member-menu{width:100%;display:grid}.member-menu-button{width:100%;justify-content:flex-start}.member-menu-panel{position:static;width:100%;margin-top:8px}}

.search-form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}.search-form input{margin-top:0}.search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.search-result,.empty-state{padding:18px;border:1px solid var(--soft-line);border-radius:8px;background:#fff}.search-result h3{margin-top:8px;font-size:1.16rem}.search-result p{margin-top:8px}.search-category{margin-left:8px;color:var(--muted);font-weight:800;font-size:.9rem}.empty-state{grid-column:1/-1}.empty-state h3{margin-bottom:6px}@media(max-width:760px){.search-form{grid-template-columns:1fr}.search-results{grid-template-columns:1fr}}


.submission-guide{background:#fffdf8}.submission-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 20px}.submission-steps article{padding:16px;border:1px solid var(--soft-line);border-radius:10px;background:#fff}.submission-steps span{display:grid;place-items:center;width:32px;height:32px;margin-bottom:10px;border-radius:50%;background:var(--primary);color:#fff;font-weight:900}.submission-steps strong{display:block;color:var(--ink);font-size:1.02rem}.submission-steps p{margin-top:5px;font-size:.94rem}.submission-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.submission-option{display:grid;gap:5px;min-height:156px;padding:18px;border:1px solid var(--soft-line);border-radius:12px;background:#fff;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.submission-option:hover,.submission-option.active{border-color:#8ccabb;background:#eefaf6;box-shadow:0 12px 28px rgba(10,90,76,.1)}.submission-option span{width:max-content;padding:4px 9px;border-radius:999px;background:var(--blue-soft);color:#14558a;font-size:.86rem;font-weight:900}.submission-option strong{font-size:1.15rem;line-height:1.35}.submission-option small{color:var(--muted);line-height:1.5}.upload-section{scroll-margin-top:92px}.guided-form{border-color:#d8c197}.guided-form .button.primary{margin-top:4px}@media(max-width:920px){.submission-steps,.submission-options{grid-template-columns:1fr}.submission-option{min-height:auto}.upload-section{scroll-margin-top:20px}}

.image-upload-input{padding:12px;background:#fff}.image-upload-preview{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:center;padding:14px;border:1px solid #9ed8c9;border-radius:10px;background:#eefaf6}.image-upload-preview[hidden]{display:none}.image-upload-preview img{width:140px;max-height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--soft-line);background:#fff}.image-upload-preview p{color:var(--primary);font-weight:900}.guided-form input[type='hidden']{display:none}@media(max-width:640px){.image-upload-preview{grid-template-columns:1fr}.image-upload-preview img{width:100%;max-height:220px}}

body[data-page="activity"] .activity-promo-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(260px,.72fr);gap:28px;align-items:center;overflow:hidden;background:linear-gradient(135deg,#fffaf0 0%,#eefaf6 58%,#fff 100%)}
.activity-promo-copy{display:grid;align-content:center;gap:14px}.activity-promo-copy h1{max-width:10em;font-size:clamp(2.45rem,5.4vw,4.2rem)}.activity-promo-copy p:not(.eyebrow){max-width:62ch;font-size:1.08rem}.activity-promo-media{display:grid;place-items:center;align-self:stretch;padding:12px;border:1px solid var(--soft-line);border-radius:12px;background:#fff;box-shadow:0 16px 38px rgba(10,90,76,.1)}.activity-promo-media img{width:min(100%,360px);max-height:430px;object-fit:contain;border-radius:8px}.activity-promo-copy .hero-actions{margin-top:4px}
@media(max-width:860px){body[data-page="activity"] .activity-promo-hero{grid-template-columns:1fr}.activity-promo-copy h1{max-width:100%;font-size:2.4rem}.activity-promo-media img{max-height:520px}}

/* 生活知識網：入口網站式資訊版面 */
.life-category-menu{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px}.life-category-menu strong{color:var(--primary);font-weight:900}.life-category-menu a{display:grid;place-items:center;min-width:46px;min-height:42px;padding:8px 13px;border:1px solid var(--soft-line);border-radius:999px;background:#fff;color:var(--primary);text-decoration:none;font-weight:900;box-shadow:0 8px 18px rgba(10,90,76,.06)}.life-category-menu a:hover{border-color:#8ccabb;background:#eefaf6;transform:translateY(-1px)}@media(max-width:640px){.life-category-menu a{min-width:42px;min-height:38px;padding:7px 11px}}
.life-knowledge-hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:stretch;background:linear-gradient(135deg,#fffaf0 0%,#eef8f5 54%,#f7edf2 100%)}
.life-knowledge-hero h1{font-size:clamp(2.4rem,5vw,4rem)}
.life-knowledge-hero p:not(.eyebrow){max-width:70ch;font-size:1.05rem}.life-hero-panel{align-self:stretch;display:grid;gap:10px;align-content:center;padding:20px;border:1px solid var(--soft-line);border-radius:14px;background:#fff}.life-hero-panel strong{font-size:1.12rem}.life-hero-panel ol{margin:0;padding-left:22px;color:var(--muted);font-weight:700}.knowledge-board{background:#fffdf8}.knowledge-board-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;margin-bottom:20px}.topic-strip{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}.topic-strip a{padding:8px 12px;border:1px solid var(--soft-line);border-radius:999px;background:#fff;color:var(--primary);text-decoration:none;font-weight:900}.knowledge-layout{display:grid;grid-template-columns:minmax(0,1.22fr) 320px;grid-template-areas:"lead trend" "feed trend";gap:16px}.lead-story{grid-area:lead;min-height:280px;padding:24px;border:1px solid var(--soft-line);border-radius:14px;background:linear-gradient(135deg,#07312c 0%,#0a5a4c 60%,#1d6f87 100%);color:#fff;overflow:hidden}.lead-story .badge{background:#fff;color:var(--primary)}.lead-story h3{margin-top:14px;font-size:clamp(1.55rem,3vw,2.45rem);color:#fff}.lead-story p{margin-top:12px;color:#edf8f5}.lead-story-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;color:#d6eee8}.lead-story .button.primary{background:#fff;color:var(--primary);border-color:#fff}.trend-panel{grid-area:trend;display:grid;gap:12px;align-content:start;padding:20px;border:1px solid var(--soft-line);border-radius:14px;background:#f5fbff}.trend-panel a{display:grid;gap:3px;padding:13px;border:1px solid #d8e9f4;border-radius:12px;background:#fff;text-decoration:none}.trend-panel span{color:#2e6f8f;font-weight:900}.trend-panel strong{color:var(--ink)}.teacher-feed{grid-area:feed;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.knowledge-feed-card{display:grid;gap:10px;align-content:start;min-height:190px;padding:18px;border:1px solid var(--soft-line);border-radius:14px;background:#fff}.knowledge-feed-card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.knowledge-feed-card.accent-1{background:#fff8e8}.knowledge-feed-card.accent-2{background:#eef8f5}.knowledge-feed-card.accent-3{background:#f7f1ff}.knowledge-feed-card .notice-meta{margin-top:auto}.upload-section{scroll-margin-top:96px}
@media(max-width:920px){.life-knowledge-hero,.knowledge-board-head,.knowledge-layout{grid-template-columns:1fr;grid-template-areas:none}.lead-story,.trend-panel,.teacher-feed{grid-area:auto}.teacher-feed{grid-template-columns:1fr}.topic-strip{justify-content:flex-start}.life-hero-panel{align-content:start}}

.home-news-section{background:#fffdf8}.home-news-highlight{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin-bottom:16px;padding:18px;border:1px solid var(--soft-line);border-radius:14px;background:linear-gradient(135deg,#eef8f5 0%,#fff8e8 100%)}.home-news-highlight h3{margin-top:8px;font-size:1.35rem}.home-news-highlight p{margin-top:8px}.home-news-list{grid-template-columns:repeat(2,minmax(0,1fr))}.home-news-list .notice-item:first-child{border-color:#9ed5c9;background:#f3fbf8}@media(max-width:920px){.home-news-highlight{grid-template-columns:1fr}.home-news-list{grid-template-columns:1fr}}

.newsletter-issue-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.newsletter-issue{padding:18px;border:1px solid var(--soft-line);border-radius:12px;background:#fff}.newsletter-issue h3{margin-top:8px}.newsletter-issue p{margin-top:8px;white-space:pre-wrap}.calendar-hero{background:linear-gradient(135deg,#fffaf0 0%,#eef8f5 56%,#f5fbff 100%)}.calendar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.calendar-card{display:grid;gap:10px;align-content:start;padding:18px;border:1px solid var(--soft-line);border-radius:12px;background:#fff}.calendar-card>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.calendar-card small{color:var(--muted);font-weight:800}.calendar-date{color:var(--primary);font-weight:900}@media(max-width:920px){.newsletter-issue-list,.calendar-grid{grid-template-columns:1fr}}

/* 校園行事曆：整月份表格版 */
.calendar-month-section{background:#fffdf8}.calendar-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;margin-bottom:18px}.calendar-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.calendar-controls input{width:180px;margin-top:0;background:#fff}.month-calendar{overflow-x:auto;border:1px solid var(--soft-line);border-radius:14px;background:#fff}.calendar-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;table-layout:fixed}.calendar-table th{padding:10px 8px;text-align:center;color:var(--primary);background:#fff8e8;border-bottom:1px solid var(--soft-line);font-weight:900}.calendar-table td{border-right:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line)}.calendar-table th:last-child,.calendar-table td:last-child{border-right:0}.calendar-day{height:132px;padding:10px;vertical-align:top;background:#fffdf8}.calendar-day.is-outside{background:#f7f0e4;color:#9a948b}.calendar-day.is-today{box-shadow:inset 0 0 0 2px #0a5a4c}.calendar-day.has-events{background:#fff}.calendar-day-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--ink);font-weight:900}.calendar-day.is-today .calendar-day-number{background:var(--primary);color:#fff}.calendar-day-events{display:grid;gap:6px;margin-top:7px}.calendar-event-pill{display:grid;gap:2px;min-height:34px;padding:6px 8px;border-left:5px solid var(--primary);border-radius:8px;background:var(--green-soft);color:var(--ink);font-size:.82rem;font-weight:800;line-height:1.3}.calendar-event-pill strong{font-size:.76rem;color:var(--primary)}.calendar-event-bar{display:block;height:8px;border-radius:999px;background:var(--primary);opacity:.72}.term-暑假{background:#dff3ff;border-color:#2d7fc7;color:#124b76}.term-暑假 strong{color:#14558a}.calendar-event-bar.term-暑假{background:#2d7fc7}.term-寒假{background:#eef1ff;border-color:#5d65b8;color:#343b86}.term-寒假 strong{color:#343b86}.calendar-event-bar.term-寒假{background:#5d65b8}.term-上學期{background:#e6f6f1;border-color:#0a8a72}.term-上學期 strong{color:#0a5a4c}.calendar-event-bar.term-上學期{background:#0a8a72}.term-下學期{background:#fff3d8;border-color:#c8851f;color:#704a12}.term-下學期 strong{color:#704a12}.calendar-event-bar.term-下學期{background:#c8851f}.official-links{grid-template-columns:repeat(3,minmax(0,1fr))}.official-source-section{background:#fffaf0}@media(max-width:920px){.calendar-toolbar{grid-template-columns:1fr}.calendar-controls{justify-content:flex-start}.official-links{grid-template-columns:1fr}.calendar-table{min-width:760px}.calendar-day{height:118px}}

/* 首頁相關連結選單 */
.partner-link-section{background:#fffdf8}.partner-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.partner-link-card{display:grid;gap:8px;min-height:150px;padding:18px;border:1px solid var(--soft-line);border-radius:12px;background:#fff;text-decoration:none;box-shadow:0 12px 28px rgba(10,90,76,.06)}.partner-link-card:hover{border-color:#8ccabb;background:#eefaf6}.partner-link-card span{width:max-content;padding:4px 9px;border-radius:999px;background:var(--blue-soft);color:#14558a;font-size:.84rem;font-weight:900}.partner-link-card strong{color:var(--ink);font-size:1.12rem;line-height:1.35}.partner-link-card small{color:var(--muted);font-weight:700;line-height:1.5}@media(max-width:920px){.partner-link-grid{grid-template-columns:1fr}.partner-link-card{min-height:auto}}

/* 首頁體驗版提示 */
.trial-notice{display:grid;gap:4px;max-width:680px;margin-top:18px;padding:14px 16px;border:1px solid #9ed8c9;border-radius:12px;background:#eefaf6}.trial-notice span{width:max-content;padding:3px 9px;border-radius:999px;background:var(--primary);color:#fff;font-size:.82rem;font-weight:900}.trial-notice strong{color:var(--ink);font-size:1.04rem}.trial-notice small{color:var(--muted);font-weight:700;line-height:1.5}

/* 體驗留言特區 */
.trial-feedback-section{background:#fffdf8}.trial-feedback-form textarea{min-height:138px}.trial-feedback-form .button{width:max-content}.trial-feedback-status{display:inline-flex;padding:3px 8px;border-radius:999px;background:var(--green-soft);color:var(--primary);font-weight:900;font-size:.86rem}.trial-feedback-status.status-done{background:#dceeff;color:#14558a}.trial-feedback-status.status-hidden{background:#f7e3dc;color:#8b3227}.trial-feedback-status.status-reviewing{background:#fff3c4;color:#7a5614}.trial-feedback-actions{display:grid;gap:8px;min-width:170px}.trial-feedback-actions select,.trial-feedback-actions input{margin-top:0;min-height:38px}.trial-feedback-actions .button{min-height:36px;padding:6px 10px}@media(max-width:760px){.trial-feedback-form .button{width:100%}}



/* 蘭陽教師網改版視覺：保留既有功能結構，只覆寫共用版面語彙 */
:root{
  --green-deep:#31402a;--green:#41522f;--green-soft:#6d7b56;--sage:#8b9873;
  --cream:#f5efe0;--cream-2:#faf6ec;--paper:#fffdf8;
  --gold:#b3914d;--gold-2:#c9ac74;--terra:#b96a3d;
  --ink:#38362c;--ink-soft:#6c6858;--line:#e4dcc7;
  --shadow:0 18px 50px -24px rgba(49,64,42,.45);
  --bg:var(--cream);--surface:var(--cream-2);--panel:var(--paper);
  --muted:var(--ink-soft);--soft-line:var(--line);--primary:var(--green-deep);
  --blue-soft:#f2ead9;
}
body{font-family:"Noto Sans TC","Microsoft JhengHei",Arial,sans-serif;font-size:18px;line-height:1.85;background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased}
h1,h2,h3,.brand strong{font-family:"Noto Serif TC","Noto Sans TC",serif;color:var(--green-deep);font-weight:700}
.site-header{background:var(--green-deep);color:#f3eede;border-bottom:2px solid var(--gold);box-shadow:0 16px 36px -28px rgba(0,0,0,.5)}
.brand{color:inherit}.brand-mark{background:radial-gradient(circle at 35% 30%,var(--gold-2),var(--gold));color:var(--green-deep);font-family:"Noto Serif TC",serif;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
.brand small{color:var(--gold-2);letter-spacing:.18em}.nav a{color:#e4e6d6}.nav a:hover,.nav a.active{color:var(--green-deep);background:var(--gold-2)}
.nav a.login-entry{background:var(--gold);color:var(--green-deep);border-color:var(--gold)}
main{width:min(1080px,calc(100% - 40px));padding-top:30px}.hero-section,.page-hero{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 88% -10%,rgba(201,172,116,.28),transparent 55%),linear-gradient(160deg,var(--cream-2),var(--cream) 60%,#efe7d3)}
.hero-section,.page-hero,.section{border-color:var(--line);border-radius:18px;box-shadow:var(--shadow)}
.section{background:var(--paper)}.eyebrow{color:var(--gold);letter-spacing:.22em;text-transform:uppercase;font-size:.9rem}.hero-text,.page-hero p:not(.eyebrow),.section-head p{color:var(--ink-soft)}
h1{font-size:clamp(2.25rem,5.6vw,3.8rem);line-height:1.28}h2{font-size:clamp(1.55rem,3.3vw,2.25rem);line-height:1.4}h3{font-size:1.18rem}
.button{border-color:var(--green-soft);background:transparent;color:var(--green);letter-spacing:.02em;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.button:hover{transform:translateY(-2px)}.button.primary{background:var(--green-deep);border-color:var(--green-deep);color:#f6efdd;box-shadow:var(--shadow)}.button.secondary{background:var(--paper)}
.panel,.feature,.resource-card,.notice-item,.partner-link-card,.quick-links a,.supplement-card{border-color:var(--line);background:var(--paper);box-shadow:0 12px 34px -28px rgba(49,64,42,.45)}
.soft-panel,.stat-panel div,.stats-grid article{background:#f0ead9}.badge{background:#efe3c8;color:#7c6229}
input,select,textarea{border-color:var(--line);background:#fffdf8}.site-footer{color:var(--ink-soft)}.ticker-label,.tab.active,.submission-steps span{background:var(--green-deep)}.ticker-link{background:#efe3c8;color:var(--green-deep)}
.teacher-supplement-section{background:linear-gradient(180deg,var(--paper),#fbf4e6)}.teacher-supplement-section.compact{background:var(--cream-2)}
.supplement-grid{display:grid;grid-template-columns:1.08fr repeat(2,minmax(0,1fr));gap:16px}.supplement-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.supplement-card{display:grid;gap:10px;align-content:start;min-height:210px;padding:22px;border:1px solid var(--line);border-radius:16px;text-decoration:none}
.supplement-card.lead{background:var(--green-deep);color:#f3eede}.supplement-card.lead h3,.supplement-card.lead p{color:#f3eede}.supplement-card.lead span{background:var(--gold);color:var(--green-deep)}
.supplement-card span{width:max-content;padding:4px 10px;border-radius:999px;background:#efe3c8;color:#7c6229;font-size:.86rem;font-weight:900}.supplement-card p{color:var(--ink-soft);font-size:.98rem}
.text-link{width:max-content;color:var(--terra);font-weight:900;text-decoration:none}.text-link:hover{text-decoration:underline}
@media(max-width:920px){body{font-size:17px}.supplement-grid,.supplement-grid.three{grid-template-columns:1fr}.supplement-card{min-height:auto}}

.feedback-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 18px}.feedback-choice-grid article{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fffdf8}.feedback-choice-grid strong{display:block;color:var(--green-deep,var(--primary));font-size:1.05rem}.feedback-choice-grid span{display:block;margin-top:4px;color:var(--ink-soft,var(--muted));font-weight:700;font-size:.92rem}@media(max-width:920px){.feedback-choice-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.feedback-choice-grid{grid-template-columns:1fr}}

/* 全站問題回報浮動選單 */
.feedback-launcher{position:fixed;right:24px;bottom:24px;z-index:80;display:grid;justify-items:end;gap:10px}.feedback-launcher-button{min-width:116px;min-height:56px;padding:12px 20px;border:1px solid #254f2f;border-radius:999px;background:#2f6936;color:#fff;font:inherit;font-weight:900;box-shadow:0 14px 34px rgba(42,74,45,.28);cursor:pointer}.feedback-launcher-button:hover,.feedback-launcher-button[aria-expanded="true"]{background:#24532a;transform:translateY(-1px)}.feedback-launcher-menu{display:grid;gap:8px;width:min(260px,calc(100vw - 40px));padding:14px;border:1px solid var(--line);border-radius:16px;background:#fffdf8;box-shadow:0 18px 46px rgba(49,64,42,.22)}.feedback-launcher-menu[hidden]{display:none}.feedback-launcher-menu strong{display:block;margin-bottom:2px;color:var(--green-deep);font-family:"Noto Serif TC","Noto Sans TC",serif}.feedback-launcher-menu button{min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-weight:800;text-align:left;cursor:pointer}.feedback-launcher-menu button:hover{border-color:var(--green-soft);background:#eefaf6;color:var(--green-deep)}@media(max-width:640px){.feedback-launcher{right:14px;bottom:14px}.feedback-launcher-button{min-height:52px;min-width:108px;padding:10px 16px}.feedback-launcher-menu{width:calc(100vw - 28px)}}
