:root{--ink:#1d3932;--muted:#6c7772;--green:#18694d;--line:#e0e5df;--paper:#f7f8f3}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #e59e35;outline-offset:5px}header,main,footer{max-width:1180px;margin:auto}header{padding:28px 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font-size:19px;font-weight:700}.brandmark{background:var(--green);color:#fff;display:grid;place-items:center;width:43px;height:43px;border-radius:12px;font-family:serif;font-size:25px}.brand-sub{display:block;font-size:9px;letter-spacing:1.7px;color:var(--muted);margin-top:5px}nav{display:flex;gap:32px;font-size:14px}nav a:hover{color:var(--green)}main{padding:0 34px}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;padding:76px 0 72px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:650;color:var(--green);margin:0 0 20px}h1{font-size:clamp(38px,4.4vw,60px);line-height:1.22;letter-spacing:-2px;font-weight:650;margin:0 0 24px}.dot{color:#de9855}.intro{font-size:16px;line-height:1.9;color:var(--muted);margin-bottom:30px}.primary{display:inline-flex;gap:38px;align-items:center;border-radius:7px;background:var(--green);color:white;padding:15px 22px;font-size:14px}.primary:hover{background:#104f39}.hero-panel{position:relative;background:#edf1e9;border:1px solid #dce4d7;border-radius:18px;padding:25px 30px;box-shadow:14px 14px 0 #e9ede3}.panel-top{font-size:12px;display:flex;align-items:center;gap:8px;padding-bottom:20px;border-bottom:1px solid #d4ded0}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.panel-id{margin-left:auto;font-size:10px;color:#7d8f80;letter-spacing:2px}.path-step{display:flex;align-items:center;gap:20px;padding-top:18px}.path-step>span{font-size:13px;color:#7a8d7b;font-family:monospace}.path-step>div{display:flex;align-items:baseline;gap:16px}.path-step strong{font-size:19px;font-weight:550}.path-step small{color:#7b877b;font-size:12px}.path-step i{margin-left:auto;font-style:normal;color:#849c85}.panel-note{font-size:11px;color:#728272;margin:24px 0 0;letter-spacing:1px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:0 0 24px}.section-heading .eyebrow{margin-bottom:9px}h2{font-size:27px;font-weight:600;margin:0;letter-spacing:-.5px}.section-heading>p{font-size:12px;color:var(--muted);margin:0 0 5px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:27px 28px;transition:transform .18s,border-color .18s,box-shadow .18s}.card:hover{transform:translateY(-3px);border-color:#92b8a4;box-shadow:0 9px 24px #123d3308}.card-top{display:flex;align-items:center;gap:12px}.icon{display:grid;place-items:center;width:37px;height:37px;border-radius:10px;background:#ecf4ed;color:#2a7353;font-size:23px}.blue{background:#edf2f9;color:#507292}.orange{background:#fff3e8;color:#ac793d}.purple{background:#f1edf8;color:#806299}.tag{font-size:11px;color:var(--muted)}.arrow{margin-left:auto;font-size:23px;color:#9ba7a0}.card h3{font-size:22px;font-weight:600;margin:23px 0 12px}.card>p{font-size:14px;line-height:1.85;color:var(--muted);max-width:420px;margin:0 0 25px}.card-footer{border-top:1px solid #edf0ea;padding-top:17px;display:flex;justify-content:space-between;font-size:11px;color:#869089}.card-footer strong{font-weight:550;color:var(--green)}#guides{padding-top:64px}.guide-list{border-top:1px solid #d8e0d5}.guide{display:flex;align-items:center;gap:27px;padding:29px 10px;border-bottom:1px solid #d8e0d5;transition:background .18s}.guide:hover{background:#edf2e9}.guide-num{font-family:serif;font-size:36px;color:#b5c5b4}.guide-label{font-size:10px;letter-spacing:1px;color:var(--green)}.guide h3{font-size:19px;margin:7px 0 10px;font-weight:600}.guide p{font-size:12px;color:var(--muted);line-height:1.75;margin:0}.guide-action{font-size:11px;white-space:nowrap;margin-left:auto;display:flex;gap:22px;align-items:center}.guide-action b{font-size:22px;font-weight:400}.guide-note{font-size:11px;color:#8a948b;margin:17px 0}.closing{display:flex;align-items:center;gap:16px;margin-top:53px;padding:28px 0;border-top:1px solid var(--line)}.small{width:30px;height:30px;font-size:18px;border-radius:9px}.closing p{font-size:13px;color:var(--muted)}.closing>a{font-size:12px;margin-left:auto;color:var(--green)}footer{display:flex;justify-content:space-between;padding:22px 34px 30px;font-size:10px;color:#8f998f;border-top:1px solid var(--line)}@media(max-width:760px){header{padding:22px 22px}.brand{font-size:16px}.brand-sub{font-size:8px;letter-spacing:1px}nav{gap:15px;font-size:12px}main{padding:0 22px}.hero{gap:35px;padding:45px 0 50px;grid-template-columns:1fr}.hero-panel{box-shadow:7px 7px 0 #e9ede3;padding:20px 24px}.path-step{padding-top:12px}.panel-note{margin-top:18px}h1{font-size:44px}.section-heading{align-items:start;gap:16px}.section-heading>p{max-width:126px;line-height:1.6;text-align:right}.cards{grid-template-columns:1fr;gap:14px}.card{padding:23px}.card h3{margin-top:18px}.guide{gap:17px;align-items:start;flex-wrap:wrap;padding:25px 0}.guide>div{flex:1}.guide-action{width:100%;padding-left:50px;justify-content:space-between}.guide-num{font-size:30px}.closing{gap:11px}.closing p{max-width:200px;line-height:1.8}.closing>a{white-space:nowrap}footer{padding:20px 22px;gap:15px;flex-wrap:wrap}#guides{padding-top:45px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.announcements{padding:36px 0 0}.manage-link{font-size:13px;color:var(--muted)}#notice-list{display:grid;gap:14px}.notice-card{padding:25px 28px;border:1px solid #cbdccf;border-left:4px solid var(--green);border-radius:12px;background:#fff}.notice-card h3{font-size:23px;line-height:1.4;margin:14px 0}.notice-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--green)}.status{font-size:11px;border-radius:20px;background:#edf5eb;padding:5px 10px}.ended{background:#f0f0ec;color:#777}.notice-description{font-size:15px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0 20px;color:#52645a}.notice-links{display:flex;flex-wrap:wrap;gap:10px}.notice-links a{padding:10px 16px;border-radius:7px;border:1px solid #d3e2d5;color:var(--green);font-size:13px;overflow-wrap:anywhere}.notice-links a:first-child{background:var(--green);color:white;border-color:var(--green)}.notice-links a:hover{filter:brightness(.92)}.notice-empty{font-size:13px;color:var(--muted);line-height:1.8}.admin-main{max-width:900px;padding-top:40px;padding-bottom:70px}.admin-main h1{font-size:34px}.admin-main label{display:block;font-size:14px;margin:0 0 18px;line-height:1.8}.admin-main input:not([type=checkbox]),.admin-main textarea{display:block;margin-top:6px;width:100%;padding:12px;border:1px solid #bdccc1;border-radius:6px;background:white;color:var(--ink);font:inherit}.admin-main button{font:inherit;cursor:pointer;padding:10px 17px;border:1px solid #bdccc1;border-radius:6px;color:var(--green);background:white}.admin-main button.primary{background:var(--green);color:white}.admin-main button:disabled{opacity:.6;cursor:wait}.admin-toolbar{display:flex;gap:10px;flex-wrap:wrap}.notice-form{padding:25px;margin:22px 0;background:white;border:1px solid var(--line);border-radius:12px}.link-row{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:12px}.archive-label{margin-top:20px!important}.archive-label input{margin-right:10px}#message{white-space:pre-wrap;color:#85552a}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #e59e35;outline-offset:3px}[hidden]{display:none!important}@media(max-width:760px){header{flex-wrap:wrap;gap:20px}.announcements{padding-top:28px}.notice-card{padding:20px}.notice-card h3{font-size:20px}.notice-meta{font-size:12px}.link-row{grid-template-columns:1fr}.link-row button{justify-self:start;margin-bottom:20px}.notice-form{padding:18px}}
.group-panel{margin-top:24px;border-top:1px dashed #d6e0d5;padding-top:16px}.group-panel summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;font-size:13px;color:var(--green);min-height:36px}.group-panel summary::-webkit-details-marker{display:none}.mail-icon{display:grid;place-items:center;background:#edf3e7;border-radius:10px;font-size:22px;width:35px;height:35px;transform:rotate(-7deg);transition:transform .2s}.group-panel[open] .mail-icon{transform:rotate(6deg)}.panel-hint{margin-left:auto;color:#7a877c;font-size:11px}.group-inner{background:#f6f8f1;border:1px solid #e4eadc;border-radius:15px;padding:18px;margin-top:12px;animation:unfold .22s ease-out;box-shadow:0 10px 24px #183f2f08}.group-tip,.group-feedback{font-size:12px;color:#6f7f70;line-height:1.7;margin:0 0 14px}.group-feedback{margin:12px 0 0;min-height:20px}.group-grid{display:grid;gap:18px}.group-stage h4{font-size:12px;letter-spacing:2px;margin:0 0 10px;color:#677967}.group-cells{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.group-chip{appearance:none;border:1px solid #dce5d6;border-radius:13px;padding:12px 4px;background:#fff;color:#6b786c;cursor:pointer;display:grid;justify-items:center;gap:5px;transition:transform .2s,background .2s,box-shadow .2s}.group-chip:hover:not(:disabled){transform:translateY(-3px) rotate(-2deg);box-shadow:0 5px 0 #dfe8d7}.group-chip:active:not(:disabled){transform:translateY(1px) scale(.96)}.chip-face{display:grid;place-items:center;border-radius:50%;background:#f0f3eb;width:32px;height:32px;font-size:24px;line-height:1}.group-chip strong{font-size:13px;font-weight:600}.group-chip small{font-size:10px}.group-chip.done{background:#e7f2dc;border-color:#aac78e;color:#365d2c}.group-chip.done .chip-face{background:#d4e7bb;color:#5d882a;animation:stamp .3s ease-out}.group-chip:disabled{opacity:.55;cursor:default}.group-chip.done:disabled{opacity:1}@keyframes unfold{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes stamp{0%{transform:scale(.7) rotate(-30deg)}65%{transform:scale(1.16) rotate(8deg)}100%{transform:scale(1) rotate(0)}}@media(max-width:520px){.panel-hint{font-size:10px;max-width:70px;text-align:right}.group-inner{padding:12px}.group-cells{gap:5px}.group-chip{border-radius:9px;padding:10px 2px}.group-chip small{font-size:9px}.chip-face{width:28px;height:28px}.group-chip strong{font-size:12px}}@media(prefers-reduced-motion:reduce){.group-inner,.group-chip.done .chip-face{animation:none}.group-chip:hover:not(:disabled){transform:none}}

/* Pending groups: red; completed and inactive groups retain their states. */
.group-chip:not(.done):not(:disabled){background:#fff0f0;border:2px solid #df5353;color:#a52129;box-shadow:0 2px 0 #f4caca;padding:11px 3px}.group-chip:not(.done):not(:disabled) .chip-face{background:#ffd6d6;color:#c32932}.group-chip:not(.done):not(:disabled) small{font-weight:700}.group-chip:not(.done):not(:disabled):hover{background:#ffe3e3;border-color:#c32932;box-shadow:0 5px 0 #f0b7b7}@media(max-width:520px){.group-chip:not(.done):not(:disabled){padding:9px 1px}}

.notice-actions{display:flex;gap:18px;flex-wrap:wrap}.archive-main{padding-top:38px;padding-bottom:70px;max-width:1100px}.archive-main h1{font-size:36px}.archive-main .intro{font-size:15px;margin-bottom:28px}.archive-main .group-chip:disabled{opacity:1}.archive-main .group-chip:disabled:not(.done){background:#f4f4ef;color:#717a71}.archive-main .notice-card{margin-bottom:0}@media(max-width:760px){.notice-actions{gap:12px}.archive-main h1{font-size:30px}}

/* 公告默认仅显示标题，点击展开详情。 */
.notice-disclosure>.notice-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;list-style:none;min-height:36px}.notice-summary::-webkit-details-marker{display:none}.notice-card .notice-summary h3{margin:0;overflow-wrap:anywhere}.notice-summary:focus-visible{outline:3px solid #e59e35;outline-offset:7px;border-radius:3px}.notice-chevron{width:10px;height:10px;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(45deg);flex:none;margin-right:4px}.notice-disclosure[open]>.notice-summary .notice-chevron{transform:rotate(225deg)}.notice-body{padding-top:22px}.notice-disclosure:not([open])>.notice-body{display:none}

.admin-main select{display:block;margin-top:6px;padding:10px;border:1px solid #bdccc1;border-radius:6px;background:white;color:var(--ink);font:inherit}

/* Administrator tools live beside each homepage task. */
.home-admin-bar{margin:0 0 18px;padding:0}.home-admin-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px}.home-admin-actions button,.home-admin-actions select,.home-login button{font:inherit;border:1px solid #c9d9cc;background:white;color:var(--green);border-radius:7px;min-height:38px;padding:7px 12px;cursor:pointer}.home-admin-actions a{color:var(--green)}.home-admin-label{border-radius:20px;padding:8px 13px;background:#e9f2e7;color:var(--green)}.home-admin-status{font-size:12px;color:#6c7772;line-height:1.7;margin:10px 0 0;min-height:20px}.home-admin-status:empty{display:none}.managed-notice{border:1px solid #cbdccf;border-left:4px solid var(--green);border-radius:12px;background:#fff;min-width:0;transition:box-shadow 160ms ease-out,border-color 160ms ease-out}.managed-notice>.notice-card{border:0;border-radius:0 0 12px 12px}.home-task-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 18px;border-bottom:1px solid #e4ece1;background:#f8faf5;border-radius:10px 10px 0 0;font-size:12px;color:#6c7772}.home-task-tools button{font:inherit;min-height:36px;padding:5px 10px;color:var(--green);background:#fff;border:1px solid #d8e3d6;border-radius:6px;cursor:pointer}.home-task-tools .task-drag{font-size:25px;line-height:1;cursor:grab;touch-action:none;background:transparent;border:0;width:36px;flex:none}.home-task-tools .task-stars{display:flex;gap:0;align-items:center}.home-task-tools .task-stars button{border:0;padding:0;background:transparent;width:28px;min-height:40px;font-size:24px;color:#a6b3a7}.home-task-tools .task-stars button.is-rated{color:#b27a35}.home-task-tools label{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-left:auto}.home-task-tools input{font:inherit;max-width:100%;min-width:0;color:var(--ink);background:white;border:1px solid #d5dfd2;border-radius:5px;padding:7px}.home-task-tools .task-pin[aria-pressed=true]{background:#e7f2dc;border-color:#9cbe97}.managed-notice.is-dragging{border-color:#347568;box-shadow:0 8px 28px #173f3025;outline:2px solid #87ad98}.task-dragging{user-select:none;cursor:grabbing}.task-dragging .task-drag{cursor:grabbing}.home-task-tools button:disabled,.home-task-tools input:disabled{opacity:.5;cursor:wait}.home-login{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #cbdccf;border-radius:16px;background:#fcfdf9;color:var(--ink);padding:28px}.home-login::backdrop{background:#173e3155;backdrop-filter:blur(5px)}.home-login h2{font-size:23px;margin:0 0 22px}.home-login label{display:block;font-size:14px;margin:16px 0;line-height:1.6}.home-login input{display:block;width:100%;padding:11px;border:1px solid #c9d9cc;border-radius:6px;font:inherit;margin-top:6px}.home-login button{margin-right:8px}.home-login button[type=submit]{background:var(--green);color:#fff}.home-login-message{font-size:13px;color:#8a5d30;line-height:1.7}.home-admin-actions select:focus-visible,.task-stars button:focus-visible{outline:3px solid #e59e35;outline-offset:2px}@media(max-width:760px){.home-task-tools{padding:7px 10px;gap:7px}.home-task-tools label{order:3;width:100%;margin-left:0;justify-content:space-between}.home-task-tools input{flex:1}.home-task-tools .task-stars button{width:27px}.home-admin-actions{gap:9px}.home-admin-actions label{width:100%}.home-admin-actions select{max-width:100%}.home-login{padding:22px}}

.link-row{grid-template-columns:1fr 2fr 1fr auto}.link-row select{max-width:100%}@media(max-width:760px){.link-row{grid-template-columns:1fr}}

/* Continuous drag feedback: a glass card above a stable landing slot. */
.managed-notice.is-dragging{position:relative;background:#3475680d;border:1px dashed #78a591;border-left:4px solid #78a591;box-shadow:inset 0 0 0 3px #34756808;outline:0}
.managed-notice.is-dragging>*{visibility:hidden}
.managed-notice.is-dragging:after{content:"放在这里";position:absolute;inset:0;display:grid;place-items:center;font-size:13px;letter-spacing:2px;color:#347568;pointer-events:none}
.task-drag-ghost{position:fixed;top:0;left:0;z-index:1000;margin:0!important;pointer-events:none!important;opacity:.82;background:#ffffffc9;backdrop-filter:blur(16px) saturate(120%);-webkit-backdrop-filter:blur(16px) saturate(120%);border-color:#6d9d87;box-shadow:0 18px 48px #173f3033,0 3px 10px #173f301a;will-change:transform,opacity;overflow:hidden;transition:none}
.task-drag-ghost>.notice-card{background:transparent}.task-drag-ghost>.home-task-tools{background:#f3f8f0b8}
.task-drag.is-pressed{background:#dcecdf;transform:scale(.94)}
.task-dragging #notice-list{overflow-anchor:none}.task-dragging #notice-list .managed-notice{pointer-events:none}
@media(prefers-reduced-motion:reduce){.task-drag.is-pressed{transform:none}.managed-notice{transition:none}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.task-drag-ghost{opacity:1;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}}
