.site-footer[data-v-d17207c8]{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#a0aec0;padding:24px 32px;margin-top:auto;font-size:13px}.footer-content[data-v-d17207c8]{max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px}.footer-info[data-v-d17207c8]{flex:1;min-width:200px}.platform-name[data-v-d17207c8]{color:#e2e8f0;font-weight:600;margin-bottom:4px}.contact-info[data-v-d17207c8]{opacity:.85}.footer-links[data-v-d17207c8]{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.icp-link[data-v-d17207c8],.police-link[data-v-d17207c8]{color:#a0aec0;text-decoration:none;padding:4px 12px;border-radius:4px;background:#ffffff0d;transition:all .2s ease}.icp-link[data-v-d17207c8]:hover,.police-link[data-v-d17207c8]:hover{color:#fff;background:#ffffff1a}.police-badge[data-v-d17207c8]{width:14px;height:14px;vertical-align:middle;margin-right:4px}.footer-copyright[data-v-d17207c8]{opacity:.7;text-align:right}@media(max-width:768px){.site-footer[data-v-d17207c8]{padding:16px}.footer-content[data-v-d17207c8]{flex-direction:column;text-align:center}.footer-copyright[data-v-d17207c8]{text-align:center}}.brand-logo-img[data-v-f588cd98]{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.nav-item[data-v-f588cd98]{position:relative}.nav-label[data-v-f588cd98]{flex:1}.message-badge[data-v-f588cd98]{position:absolute;right:14px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#d94b2b;color:#fff;font-size:12px;font-style:normal;font-weight:700;line-height:20px;text-align:center;box-shadow:0 4px 10px #782d1938}.message-bell[data-v-f588cd98]{position:relative}.bell-badge[data-v-f588cd98]{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d94b2b;color:#fff;font-size:11px;font-style:normal;font-weight:700;line-height:18px;text-align:center;box-shadow:0 4px 10px #782d1940}.main-wrapper[data-v-f588cd98]{display:flex;flex-direction:column;flex:1;overflow:hidden}.main-area[data-v-f588cd98]{flex:1;overflow-y:auto;padding-bottom:0}:root{--bg: #fbf4e7;--card: rgba(255, 252, 245, .92);--card-solid: #fffaf0;--text: #3c2415;--muted: #8b6a52;--primary: #bd6a35;--primary-dark: #87451f;--light: #f6dec0;--line: rgba(132, 82, 38, .18);--green: #42856a;--red: #b45543;--gold: #d19b3d;--shadow: 0 18px 45px rgba(83, 48, 19, .12);--radius: 22px}*{box-sizing:border-box}body{margin:0;font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 12% 8%,rgba(237,184,100,.35),transparent 34%),radial-gradient(circle at 84% 2%,rgba(100,145,116,.18),transparent 28%),linear-gradient(135deg,#fff8ed,#f7e7d2 45%,#fdf7ed);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.55}.login-page{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;gap:36px;padding:52px;align-items:center}.login-hero{min-height:680px;padding:70px;border-radius:36px;background:linear-gradient(145deg,#6c3717d6,#ab592bc7),radial-gradient(circle at 70% 24%,rgba(255,255,255,.35),transparent 22%);color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}.login-hero:after{content:"埙";position:absolute;right:70px;bottom:20px;font-size:260px;opacity:.12;font-weight:900}.login-hero h1{font-size:54px;line-height:1.16;margin:36px 0 22px}.login-hero p{width:min(640px,100%);font-size:18px;line-height:1.8;color:#ffffffdb}.culture-chip,.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--primary);background:#bd6a351a;border:1px solid rgba(189,106,53,.18);border-radius:999px;padding:7px 13px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.login-hero .culture-chip{color:#fff;background:#ffffff29;border-color:#ffffff42}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.login-card{padding:34px;border-radius:30px;background:var(--card);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.65);backdrop-filter:blur(12px)}.login-logo,.brand-mark{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#c6763f,#8c461f);color:#fff;font-weight:900;box-shadow:0 12px 25px #8c461f47}.login-card h2{margin:18px 0 4px;font-size:30px}.login-card p,.login-card small{color:var(--muted);line-height:1.7}.login-card label{display:block;margin-top:16px;color:var(--muted);font-weight:700}.login-card input,.filter-bar input,.filter-bar select,.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);background:#fffc;border-radius:14px;padding:12px 14px;outline:none;color:var(--text);margin-top:8px}.form-grid textarea{min-height:112px;resize:vertical}.primary-btn,.light-btn,.outline-btn,.ghost-btn,.small-btn,.icon-btn,.text-btn,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:14px;font-weight:800;transition:.2s ease}.primary-btn{background:linear-gradient(135deg,var(--primary),#df985a);color:#fff;padding:12px 18px;box-shadow:0 14px 24px #bd6a353d}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 18px 28px #bd6a3552}.light-btn{background:#ffffff2e;color:#fff;border:1px solid rgba(255,255,255,.32);padding:12px 18px}.outline-btn{background:#ffffffbf;color:var(--primary-dark);border:1px solid var(--line);padding:11px 17px}.ghost-btn{color:var(--primary-dark);background:#bd6a3517;padding:10px 14px}.full{width:100%;margin-top:16px}.small-btn{background:#bd6a351f;color:var(--primary-dark);padding:9px 12px}.outline-btn.small{padding:8px 11px}.text-btn,.text-link{color:var(--primary);background:transparent;padding:4px 6px;font-weight:900}.icon-btn{min-width:46px;height:42px;background:#ffffffb8;border:1px solid var(--line);position:relative}.icon-btn span{position:absolute;top:-6px;right:-5px;background:var(--red);color:#fff;border-radius:99px;font-size:11px;padding:2px 6px}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;background:#fffaf0b8;border-right:1px solid var(--line);backdrop-filter:blur(18px);overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;padding:8px;margin-bottom:22px}.brand strong{display:block;font-size:20px}.brand span{display:block;font-size:12px;color:var(--muted);margin-top:2px}.nav-groups{display:grid;gap:18px}.nav-group p{color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.08em;margin:14px 12px 8px}.nav-item{display:flex;align-items:center;gap:10px;min-height:42px;padding:10px 12px;border-radius:14px;color:#5b3a25;font-weight:800;margin:3px 0}.nav-item:hover,.nav-item.router-link-active{background:#bd6a351f;color:var(--primary-dark)}.sidebar-tip{margin-top:24px;padding:16px;border-radius:18px;background:linear-gradient(145deg,#42856a1f,#bd6a3514);border:1px solid var(--line)}.sidebar-tip strong{display:block;margin-bottom:8px}.sidebar-tip span{display:block;color:var(--muted);font-size:13px;line-height:1.7}.main-area{min-width:0;padding:22px 30px 40px}.topbar{height:72px;display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;padding:0 6px}.topbar p{margin:0 0 4px;color:var(--muted);font-size:13px}.topbar h2{margin:0;font-size:24px}.topbar-actions{display:flex;align-items:center;gap:12px}.user-pill{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#ffffffad;border:1px solid var(--line);font-weight:800}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff}.page-stack{display:grid;gap:22px}.hero-card,.page-header,.section-card,.metric-card,.activity-card,.course-card,.goods-card,.message-card{background:var(--card);border:1px solid rgba(255,255,255,.66);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-card{display:grid;grid-template-columns:1fr 270px;align-items:center;gap:22px;padding:34px;overflow:hidden;position:relative}.hero-card h1,.page-header h1{font-size:34px;margin:14px 0 10px}.hero-card p,.page-desc{color:var(--muted);line-height:1.75;max-width:780px}.hero-art{min-height:210px;border-radius:28px;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 20%,rgba(255,255,255,.6),transparent 35%),linear-gradient(145deg,#c7773e,#8d4520);color:#fff;padding:22px}.hero-art span{font-size:96px;font-weight:900;line-height:1;opacity:.9}.hero-art strong,.hero-art em{display:block}.hero-art em{color:#ffffffd1;font-style:normal;margin-top:8px}.page-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;padding:28px 30px}.page-header h1{margin-bottom:6px}.page-actions{display:flex;gap:10px;flex-wrap:wrap}.metric-grid{display:grid;gap:16px}.metric-grid.five{grid-template-columns:repeat(5,1fr)}.metric-grid.four{grid-template-columns:repeat(4,1fr)}.metric-grid.three{grid-template-columns:repeat(3,1fr)}.metric-grid.two{grid-template-columns:repeat(2,1fr)}.metric-card{display:flex;gap:14px;align-items:center;padding:18px}.metric-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#bd6a351c;font-size:24px}.metric-label{display:block;color:var(--muted);font-size:13px;font-weight:800}.metric-main strong{display:block;font-size:28px;margin:3px 0}.metric-main small{font-size:13px;color:var(--muted);margin-left:3px}.metric-main em{display:block;color:var(--green);font-size:12px;font-style:normal;font-weight:800}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}.content-grid{display:grid;gap:22px}.content-grid.two{grid-template-columns:1fr 1fr}.content-grid.three{grid-template-columns:repeat(3,1fr)}.section-card{padding:22px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:18px}.section-head h2{margin:0 0 4px;font-size:20px}.section-head p{margin:0;color:var(--muted);line-height:1.65;font-size:14px}.todo-list{display:grid;gap:12px}.todo-item{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:13px;padding:14px;border-radius:16px;background:#ffffff94;border:1px solid var(--line)}.todo-item b{display:grid;place-items:center;color:var(--primary-dark);background:#bd6a351c;border-radius:14px;min-height:46px}.todo-item strong,.todo-item span{display:block}.todo-item span,.todo-item em{color:var(--muted);font-size:13px;font-style:normal}.todo-item.urgent{border-color:#b4554352}.star-path{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px}.star-path span{border-radius:999px;text-align:center;padding:9px;background:#ffffff9e;color:var(--muted);font-weight:900}.star-path span.active{background:linear-gradient(135deg,#d7a650,#c3763e);color:#fff}.need-box{margin-top:16px;padding:15px;border-radius:16px;background:#42856a1a;color:var(--muted)}.need-box p{margin:5px 0}.need-box strong{color:var(--text)}.progress-wrap{display:grid;gap:8px}.progress-label{display:flex;justify-content:space-between;color:var(--muted);font-weight:800;font-size:13px}.progress-track{height:10px;border-radius:999px;background:#8b6a5229;overflow:hidden}.progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--gold))}.card-list,.course-mini-list,.message-list,.compact-list,.notice-list{display:grid;gap:13px}.activity-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.activity-card{padding:18px}.activity-card.large{min-height:290px}.activity-card h3,.course-card h3,.goods-card h3,.message-card h3{margin:12px 0 8px}.activity-card p,.course-card p,.goods-card p,.message-card p{color:var(--muted);line-height:1.65;margin:0 0 12px}.activity-top,.course-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.activity-top>span,.course-top>span,.message-card span,.notice-item>span,.goods-card>span,.tag-row span,.chip{display:inline-flex;border-radius:999px;padding:5px 10px;background:#bd6a351c;color:var(--primary-dark);font-size:12px;font-weight:900}.status-badge{border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900}.status-badge.ok{background:#42856a21;color:var(--green)}.status-badge.warning{background:#d19b3d29;color:#9b6a14}.status-badge.danger{background:#b4554321;color:var(--red)}.status-badge.neutral{background:#8b6a5221;color:var(--muted)}.meta-line,.tag-row,.card-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.meta-line{justify-content:space-between;color:var(--muted);font-size:13px;margin-top:9px}.card-actions{margin-top:16px}.course-mini,.notice-item{padding:14px;border-radius:16px;background:#ffffff8c;border:1px solid var(--line)}.course-mini{display:grid;gap:10px}.course-mini strong,.course-mini span{display:block}.course-mini span{color:var(--muted);font-size:13px}.culture-box{padding:20px;border-radius:20px;background:linear-gradient(145deg,#bd6a351f,#42856a1a);border:1px solid var(--line)}.culture-box p{color:var(--muted);line-height:1.8}.notice-item{display:grid;grid-template-columns:76px 1fr;gap:12px}.notice-item p{margin:4px 0 0;color:var(--muted);line-height:1.55}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;background:#fffaf0ad;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:var(--shadow)}.filter-bar input{max-width:360px}.filter-bar input,.filter-bar select{margin:0}.filter-bar select{width:180px}.chip{border:1px solid transparent;cursor:pointer}.chip.active{color:#fff;background:var(--primary)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;color:var(--muted);font-size:14px}.detail-grid .wide{grid-column:1 / -1}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:860px}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:13px;white-space:nowrap}td{color:#543520}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:16px}.form-grid.one{grid-template-columns:1fr}.form-grid label{color:var(--muted);font-weight:800}.form-grid .wide{grid-column:1 / -1}.star-dashboard{display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:center}.star-badge-big{height:150px;border-radius:32px;display:grid;place-items:center;background:linear-gradient(145deg,#d6a34b,#bc6b35);color:#fff;font-size:38px;font-weight:900;box-shadow:0 16px 30px #bd6a353d}.wide-path{max-width:640px}.muted{color:var(--muted);line-height:1.7}.goods-grid,.course-grid,.profile-grid{display:grid;gap:18px}.goods-grid{grid-template-columns:repeat(4,1fr)}.course-grid{grid-template-columns:repeat(2,1fr)}.course-card,.goods-card{padding:20px}.certificate-line{margin-top:14px;color:var(--primary-dark);font-weight:800}.message-card{padding:18px;display:flex;justify-content:space-between;gap:20px;border-left:5px solid transparent}.message-card.unread{border-left-color:var(--primary)}.message-card time{color:var(--muted);white-space:nowrap;font-size:13px}.profile-grid{grid-template-columns:.85fr 1.15fr}.profile-card{display:flex;gap:18px;align-items:center}.profile-avatar{width:86px;height:86px;border-radius:30px;display:grid;place-items:center;background:linear-gradient(145deg,var(--primary),var(--primary-dark));color:#fff;font-size:36px;font-weight:900}.profile-card h2{margin:0 0 6px}.profile-card p{color:var(--muted);margin:6px 0}.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.cert-card{min-height:120px;border-radius:18px;display:grid;place-items:center;text-align:center;padding:16px;color:var(--primary-dark);background:linear-gradient(145deg,#ffffffc7,#f6dec094);border:1px solid var(--line);font-weight:900}.muted-card{color:var(--muted);filter:grayscale(.3)}.timeline{display:grid;gap:14px}.timeline-item{display:grid;grid-template-columns:80px 1fr;gap:18px;padding:16px;border-radius:18px;background:#ffffff94;border:1px solid var(--line)}.timeline-item>span{display:grid;place-items:center;height:54px;border-radius:16px;background:#bd6a351c;color:var(--primary-dark);font-weight:900}.timeline-item time{color:var(--muted);font-size:13px}.timeline-item h3{margin:5px 0}.timeline-item p{margin:0;color:var(--muted);line-height:1.65}.admin-todo-grid,.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.admin-todo-card,.quick-grid a{padding:16px;border-radius:16px;background:#ffffff94;border:1px solid var(--line)}.admin-todo-card strong{font-size:30px;color:var(--primary)}.admin-todo-card span{display:block;font-weight:900;margin:4px 0}.admin-todo-card p{margin:0;color:var(--muted);font-size:13px}.quick-grid a{font-weight:900;color:var(--primary-dark)}.compact-list>div{display:grid;gap:4px;padding:14px;border-radius:16px;background:#ffffff94;border:1px solid var(--line)}.compact-list span{color:var(--muted);font-size:13px}.rule-list{display:grid;gap:12px}.rule-list div{display:flex;justify-content:space-between;gap:12px;padding:14px;border-radius:16px;background:#ffffff94;border:1px solid var(--line)}.rule-list span{color:var(--muted)}.bar-list{display:grid;gap:14px}.bar-list div{display:grid;grid-template-columns:64px 1fr 54px;align-items:center;gap:10px}.bar-list b{display:block;height:12px;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--gold))}.bar-list span,.bar-list em{color:var(--muted);font-size:13px;font-style:normal;font-weight:800}.line-like{height:auto;min-height:140px;display:flex;gap:14px;align-items:end;justify-content:space-between;padding:28px 0 32px;margin-top:8px}.line-like div{flex:1;min-width:42px;max-height:120px;border-radius:14px 14px 0 0;background:linear-gradient(180deg,var(--gold),var(--primary));position:relative;display:flex;justify-content:center;align-items:flex-end}.line-like span{position:absolute;top:-22px;font-weight:900;color:var(--primary-dark);font-size:13px}.line-like em{position:absolute;bottom:-20px;color:var(--muted);font-style:normal;font-size:12px;white-space:nowrap}.big-tags{gap:10px}.admin-cert .cert-card{gap:12px}@media(max-width:1180px){.metric-grid.five{grid-template-columns:repeat(3,1fr)}.goods-grid{grid-template-columns:repeat(2,1fr)}.content-grid.three{grid-template-columns:1fr}}@media(max-width:960px){.login-page,.app-shell,.hero-card,.dashboard-grid,.content-grid.two,.activity-grid,.course-grid,.profile-grid{grid-template-columns:1fr}.sidebar{position:static;height:auto}.metric-grid.five,.metric-grid.four,.metric-grid.three{grid-template-columns:repeat(2,1fr)}.login-page{padding:20px}.login-hero{min-height:auto;padding:34px}.login-hero h1{font-size:36px}.page-header,.topbar{align-items:flex-start;flex-direction:column;height:auto}}@media(max-width:620px){.main-area{padding:14px}.metric-grid.five,.metric-grid.four,.metric-grid.three,.goods-grid,.cert-grid,.admin-todo-grid,.quick-grid,.form-grid,.todo-item,.timeline-item,.notice-item,.star-dashboard,.detail-grid{grid-template-columns:1fr}}.hero-card .light-btn{color:var(--primary-dark);background:#bd6a351a;border-color:var(--line)}.login-hero .light-btn{color:#fff;background:#ffffff2e;border-color:#ffffff52}.admin-shell .sidebar{background:#f3eee5d1}.admin-shell .brand-mark,.admin-login-page .login-logo{background:linear-gradient(145deg,#34424a,#6d4a34)}.admin-shell .nav-item:hover,.admin-shell .nav-item.router-link-active{background:#34424a1f;color:#34424a}.admin-login-page .login-hero{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 28%),linear-gradient(145deg,#2f3d43,#6d4a34 62%,#ab6a3f)}.admin-card .primary-btn,.admin-login-page .primary-btn{background:linear-gradient(135deg,#34424a,#8b5a37)}.link-only{margin-top:8px;background:transparent;box-shadow:none}.volunteer-login-page .login-card,.admin-login-page .login-card{min-height:560px}.learning-filter-panel,.learning-board{background:var(--card);border:1px solid rgba(255,255,255,.66);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.filter-title-row,.learning-board-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}.filter-title-row h2,.learning-board-head h2{margin:0 0 6px}.filter-title-row p,.learning-board-head p{color:var(--muted);margin:0}.search-input{width:min(360px,100%);border:1px solid var(--line);background:#ffffffc7;border-radius:14px;padding:12px 14px;outline:none;color:var(--text)}.filter-block{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;border-top:1px solid rgba(139,106,82,.12)}.filter-block>span{width:84px;color:var(--muted);font-weight:900}.chip em{margin-left:6px;font-style:normal;font-size:11px;opacity:.78}.chip.soft{background:#42856a1a;color:var(--green)}.chip.soft:hover{background:#42856a29}.board-legend{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:13px;font-weight:800}.board-legend span{display:inline-flex;align-items:center;gap:6px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.done{background:var(--green)}.dot.undone{background:var(--red)}.dot.required{background:var(--primary)}.dot.elective{background:var(--gold)}.refined-course-grid{margin-top:8px}.refined-course-card{position:relative;overflow:hidden}.refined-course-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--red)}.refined-course-card.course-done:before{background:var(--green)}.course-tags-row{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0}.course-tags-row span{display:inline-flex;border-radius:999px;padding:5px 10px;background:#bd6a351a;color:var(--primary-dark);font-size:12px;font-weight:900}.course-tags-row .required-tag{background:#b455431f;color:var(--red)}.course-tags-row .elective-tag{background:#42856a1f;color:var(--green)}.course-footer-line{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-top:14px;color:var(--primary-dark);font-weight:800}.course-footer-line strong{font-size:22px;color:var(--primary)}.empty-state{min-height:220px;display:grid;place-items:center;text-align:center;border-radius:20px;background:#ffffff94;border:1px dashed rgba(139,106,82,.26);color:var(--muted)}.empty-state strong{display:block;color:var(--text);font-size:20px;margin-bottom:8px}@media(max-width:760px){.filter-title-row,.learning-board-head{flex-direction:column}.filter-block>span{width:100%}.search-input{width:100%}}.warning-box{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:20px;background:linear-gradient(135deg,#bd6a351f,#42856a1a);border:1px solid rgba(189,106,53,.18);color:var(--text);box-shadow:0 12px 28px #5032140f}.warning-box strong{color:var(--primary-dark);white-space:nowrap}.warning-box span{color:var(--muted);line-height:1.7}.admin-note{background:linear-gradient(135deg,#42856a21,#bd6a3514)}.switch-line{display:flex!important;align-items:center;gap:10px;color:var(--primary-dark);font-weight:900}.switch-line input{width:auto!important;margin:0!important}.mini-switch{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--primary-dark)}.mini-switch input{width:auto;margin:0}.register-layout{display:grid;grid-template-columns:230px 1fr;gap:26px;align-items:start}.avatar-uploader{border:1px dashed rgba(189,106,53,.35);background:#fffaf0b8;border-radius:22px;padding:20px;display:grid;justify-items:center;gap:12px;text-align:center}.avatar-uploader small{color:var(--muted);line-height:1.7}.image-avatar{overflow:hidden;display:inline-grid;place-items:center}.image-avatar img,.avatar img{width:100%;height:100%;object-fit:cover;display:block}.upload-btn{position:relative;cursor:pointer}.upload-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.compact-upload{margin-top:12px;width:fit-content}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.check-card{margin:0!important;display:flex!important;align-items:center;gap:8px;border:1px solid var(--line);border-radius:14px;background:#ffffffb8;padding:10px 12px;color:var(--text)!important}.check-card input{width:auto!important;margin:0!important}.form-actions{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}.submitted-card{display:flex;gap:16px;align-items:center}.small-avatar{width:64px!important;height:64px!important;border-radius:22px!important}.table-avatar{width:38px;height:38px;border-radius:50%}.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.info-grid div{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff9}.info-grid strong{display:block;color:var(--muted);margin-bottom:6px;font-size:13px}.info-grid span{font-weight:800;color:var(--text)}.primary-btn:disabled{cursor:not-allowed;opacity:.55;transform:none!important;box-shadow:none!important}@media(max-width:900px){.register-layout{grid-template-columns:1fr}.check-grid,.info-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.check-grid,.info-grid{grid-template-columns:1fr}.warning-box{align-items:flex-start;flex-direction:column}}.tab-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#bd6a3514;border:1px solid var(--line);border-radius:16px;padding:6px;margin:16px 0}.tab-switch button{border-radius:12px;padding:10px;background:transparent;color:var(--muted);font-weight:900}.tab-switch button.active{background:var(--primary);color:#fff;box-shadow:0 10px 20px #bd6a3533}.empty-cell{text-align:center;color:var(--muted);padding:28px!important}.inline-upload{position:relative;overflow:hidden}.muted-small{color:var(--muted);font-size:12px}.form-grid input[type=file]{padding:10px}.compact-list button.text-btn{width:fit-content;margin-top:4px}.signin-layout{display:grid;grid-template-columns:minmax(320px,1.2fr) 260px;gap:18px;align-items:stretch}.signin-code-card,.fake-qr-card{border:1px solid var(--border);background:#ffffffb8;border-radius:24px;padding:20px}.sign-code{margin:16px 0;padding:18px;border-radius:18px;text-align:center;font-size:34px;font-weight:900;letter-spacing:5px;color:var(--primary-dark);background:linear-gradient(135deg,#be69301f,#fffc);border:1px dashed rgba(190,105,48,.45)}.center-actions{justify-content:center}.fake-qr-card{text-align:center}.fake-qr{width:168px;height:168px;margin:0 auto 12px;padding:10px;border-radius:18px;background:#fff;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;box-shadow:inset 0 0 0 1px #00000014}.fake-qr span{border-radius:3px;background:#be69301f}.fake-qr span.dark{background:var(--primary-dark)}.checkin-panel{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.checkin-panel label{flex:1;min-width:240px}.compact-table{margin-top:14px}@media(max-width:900px){.signin-layout{grid-template-columns:1fr}}.star-hero-art,.themed-star-badge,.current-star-strip,.star-theme-card{transition:.25s ease}.star-one{--star-a: #a8c686;--star-b: #6f9f59;--star-soft: #edf6e9;--star-text: #31542b}.star-two{--star-a: #7cc7b0;--star-b: #3b8f78;--star-soft: #e8f7f3;--star-text: #1f5f50}.star-three{--star-a: #e0a465;--star-b: #bd6b35;--star-soft: #fff1df;--star-text: #7a3e19}.star-four{--star-a: #d48a53;--star-b: #9f5528;--star-soft: #fff0e7;--star-text: #673012}.star-five{--star-a: #c89246;--star-b: #764018;--star-soft: #fff4d7;--star-text: #5c320f}.star-hero-art,.themed-star-badge{background:linear-gradient(145deg,var(--star-a, #d6a34b),var(--star-b, #bc6b35))!important}.themed-star-badge{display:flex!important;flex-direction:column;gap:6px;text-align:center}.themed-star-badge span{font-size:42px}.themed-star-badge em{font-size:14px;font-style:normal;opacity:.92}.current-star-strip{background:linear-gradient(120deg,var(--star-soft, #fff1df),rgba(255,255,255,.7));color:var(--star-text, #7a3e19);border:1px solid rgba(157,92,44,.14);border-radius:20px;padding:16px 18px;display:grid;gap:6px;margin-bottom:14px}.current-star-strip b{font-size:18px}.current-star-strip span{color:inherit;opacity:.82}.star-theme-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.star-theme-card{border-radius:24px;padding:18px;background:linear-gradient(150deg,var(--star-soft, #fff),#fff);border:1px solid rgba(138,75,43,.12);display:grid;gap:12px;min-height:220px;box-shadow:0 14px 28px #5a36180f}.star-theme-card.current{outline:3px solid color-mix(in srgb,var(--star-b, #bd6b35),transparent 72%);transform:translateY(-3px)}.star-theme-icon{width:58px;height:58px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(145deg,var(--star-a, #d6a34b),var(--star-b, #bc6b35));color:#fff;font-size:28px}.star-theme-card span{color:var(--star-b, #bc6b35);font-weight:800;font-size:12px;letter-spacing:.05em}.star-theme-card h3{margin:6px 0;color:var(--star-text, #7a3e19)}.star-theme-card p{color:var(--muted);line-height:1.65}.star-theme-card strong{color:var(--star-text, #7a3e19);font-size:13px;line-height:1.55}.type-manage-layout{display:grid;grid-template-columns:330px 1fr;gap:18px;align-items:start}.type-form-card{padding:18px;border:1px solid var(--border);border-radius:22px;background:#ffffffb3;display:grid;gap:12px}.type-chip-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.type-chip-card{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:18px;background:#fff}.type-chip-card div{display:grid;gap:4px}.type-chip-card span{color:var(--muted);line-height:1.5;font-size:13px}.text-btn.danger{color:#b94b3a}@media(max-width:1180px){.star-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.type-manage-layout{grid-template-columns:1fr}}@media(max-width:720px){.star-theme-grid,.type-chip-list{grid-template-columns:1fr}}.pretty-type-panel{align-items:stretch}.pretty-card{background:linear-gradient(145deg,#fff7ed,#fff);border:1px solid rgba(181,107,46,.18);box-shadow:0 12px 28px #7b4d2314}.pretty-card h3{margin:0 0 14px;color:var(--primary-dark)}.pretty-type-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.pretty-type-card{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:14px;border-radius:20px;background:#fffaf3;border:1px solid rgba(184,115,51,.15)}.type-icon{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-weight:900}.recruit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.recruit-card{border:1px solid rgba(130,82,40,.14);border-radius:24px;padding:18px;background:linear-gradient(145deg,#fff,#fff8ef);display:grid;gap:12px}.recruit-card.selected{outline:3px solid rgba(196,121,55,.25);box-shadow:0 12px 30px #b1692c26}.recruit-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.recruit-card>div:first-child>span{padding:5px 10px;border-radius:999px;background:#f7eadb;color:var(--primary-dark);font-weight:700}.star-limit-pill,.lock-tag,.open-tag{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800}.star-limit-pill{background:#f7eadb;color:#9b5d2e}.lock-tag{background:#f5dedb;color:#a33a2a}.open-tag{background:#e6f3e8;color:#397a47}.course-locked{opacity:.82;border-style:dashed!important}.small-warning{padding:10px 12px!important;border-radius:14px!important}.clickable-cert{cursor:pointer;transition:.2s ease}.clickable-cert:hover{transform:translateY(-2px);box-shadow:0 10px 24px #784c241f}.certificate-template{max-width:760px;min-height:520px;margin:0 auto;padding:56px 70px;border:10px double #647f9e;border-radius:18px;background:linear-gradient(135deg,#fff,#f5fbff 45%,#fff8ed);text-align:center;position:relative;overflow:hidden}.certificate-template:before,.certificate-template:after{content:"";position:absolute;width:120px;height:24px;background:#d8a24e;transform:rotate(-45deg)}.certificate-template:before{left:-30px;bottom:48px}.certificate-template:after{right:-30px;top:48px}.certificate-template .medal{font-size:54px}.certificate-template h1{font-size:54px;letter-spacing:8px;color:#2e4968;margin:10px 0}.certificate-template h2{color:#5e7792;font-weight:500;letter-spacing:2px}.certificate-template h3{font-size:28px;color:var(--primary-dark);margin:28px 0}.cert-footer{display:flex;justify-content:flex-end;gap:36px;margin-top:44px;padding-right:80px}.seal{position:absolute;right:72px;bottom:56px;width:105px;height:105px;border:4px solid #b63a2e;color:#b63a2e;border-radius:50%;display:grid;place-items:center;font-weight:900;line-height:1.4;transform:rotate(-14deg);background:#ffffff8c}.wide-tabs{justify-content:flex-start;background:transparent;gap:10px}.wide-tabs button{border:1px solid rgba(148,99,56,.18);background:#fff8ef}.editable-rule-list{display:grid;gap:12px}.editable-rule-card{border:1px solid rgba(128,78,35,.12);border-radius:18px;background:#fffaf4;padding:14px;display:grid;gap:10px}.editable-rule-card strong{color:var(--primary-dark);font-size:18px}.small-edit-list .editable-rule-card{grid-template-columns:1fr 2fr;align-items:end}.unread-dot-text{display:inline-block;margin-top:8px;color:#c05f2b;font-style:normal;font-weight:800}.empty-state.compact{padding:20px}:where(.app-shell,.login-page) :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select),.search-input,.login-card input,.filter-bar input,.filter-bar select,.form-grid input:not([type=checkbox]):not([type=radio]):not([type=file]),.form-grid select,.form-grid textarea{width:100%;min-height:46px;border:1.5px solid rgba(174,126,82,.26)!important;background:linear-gradient(180deg,#fffffff5,#fffaf3f0)!important;color:var(--text)!important;border-radius:16px!important;padding:12px 15px!important;outline:none!important;font-size:14px;line-height:1.65;box-shadow:inset 0 1px #fffc,0 8px 20px #6c41190b!important;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease;box-sizing:border-box}:where(.app-shell,.login-page) textarea,.form-grid textarea{min-height:118px!important;resize:vertical;border-radius:18px!important}:where(.app-shell,.login-page) :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea)::placeholder,.search-input::placeholder,.form-grid textarea::placeholder{color:#8b6a52a8}:where(.app-shell,.login-page) :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select):hover,.search-input:hover,.filter-bar input:hover,.filter-bar select:hover,.form-grid input:not([type=checkbox]):not([type=radio]):not([type=file]):hover,.form-grid select:hover,.form-grid textarea:hover{border-color:#bd6a356b!important;background:#fffdf9fa!important}:where(.app-shell,.login-page) :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select):focus,.search-input:focus,.login-card input:focus,.filter-bar input:focus,.filter-bar select:focus,.form-grid input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#d07b37e0!important;background:#fffdf9!important;box-shadow:0 0 0 4px #d07b3721,0 12px 28px #6c411914!important}.form-grid label,.login-card label,.form-item label{display:block;color:#6f4729!important;font-size:14px;font-weight:900!important;letter-spacing:.01em}.form-grid label>input,.form-grid label>select,.form-grid label>textarea,.login-card label>input,.login-card label>select,.login-card label>textarea{margin-top:8px!important}:where(.app-shell,.login-page) select,.filter-bar select,.form-grid select{appearance:auto;padding-right:38px!important}:where(.app-shell,.login-page) input[type=file],.form-grid input[type=file]{width:100%;border:1.5px dashed rgba(189,106,53,.34)!important;background:#fffaf3b8!important;color:var(--muted);border-radius:16px!important;padding:12px!important;cursor:pointer}:where(.app-shell,.login-page) :where(input[type=checkbox],input[type=radio]){width:auto!important;min-height:auto!important;accent-color:var(--primary)}.filter-bar :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select){min-height:42px!important;border-radius:14px!important;margin:0!important}.success-tip{padding:14px 18px;border-radius:18px;background:linear-gradient(135deg,#d8894329,#fffaf4f5);border:1px solid rgba(216,137,67,.32);color:#8a4a18;font-weight:800;box-shadow:0 12px 30px #ac78421f}.helper-text{display:block;margin-top:8px;color:#9c795c;font-size:13px;font-weight:600}.empty-tip{margin:0;padding:16px 18px;color:#9c795c;background:#fffaf4b8;border:1px dashed rgba(216,137,67,.32);border-radius:16px}.permission-box{margin:18px 0;padding:18px;border-radius:20px;background:linear-gradient(135deg,#fffaf4f2,#f5e8d3a6);border:1px solid rgba(205,154,96,.24)}.permission-box strong{display:block;color:#6b3f1d;margin-bottom:6px;font-size:16px}.permission-box p{margin:0 0 12px;color:#9a7659}.chip-check-grid{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.chip-check{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#fffaf4;border:1px solid rgba(199,139,78,.28);color:#6f4422;font-weight:700;cursor:pointer}.chip-check input{width:auto!important;min-width:auto!important;box-shadow:none!important;accent-color:#cf7a3b}.permission-cell{max-width:280px;line-height:1.7;color:#6f4422}.status-pill.locked{background:#f4eadc;color:#9a6332;border:1px solid rgba(194,128,65,.22);padding:6px 10px;border-radius:999px;font-weight:800;white-space:nowrap}.text-btn:disabled{opacity:.45;cursor:not-allowed}.login-warning{margin-top:14px;color:#ffffffdb;font-size:14px;line-height:1.8;max-width:520px}.empty-state.soft{padding:22px;border-radius:18px;background:#fffaf4c7;border:1px dashed #e7cbb2;color:#8a6044;line-height:1.8}:root{--paper: #f7ecd8;--paper-deep: #ead6b8;--ink: #3f2818;--wood: #6f3f22;--wood-dark: #3e2114;--cinnabar: #b65d2e;--jade: #52755c;--gold-soft: #d8aa63;--silk: rgba(255, 250, 239, .88)}body{color:var(--ink);background:radial-gradient(circle at 8% 10%,rgba(216,170,99,.22),transparent 32%),radial-gradient(circle at 92% 16%,rgba(112,64,34,.16),transparent 30%),linear-gradient(135deg,#f8eddc,#f3dfc2 48%,#ead3b0)!important}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(30deg,rgba(93,54,31,.08) 12%,transparent 12.5%,transparent 87%,rgba(93,54,31,.08) 87.5%,rgba(93,54,31,.08)),linear-gradient(150deg,rgba(93,54,31,.08) 12%,transparent 12.5%,transparent 87%,rgba(93,54,31,.08) 87.5%,rgba(93,54,31,.08));background-size:72px 72px}.sidebar{background:linear-gradient(180deg,#59311bf5,#3a1f13f5),radial-gradient(circle at 60% 0%,rgba(232,179,105,.18),transparent 35%)!important;border-right:1px solid rgba(255,231,196,.22)!important}.brand strong,.nav-group p,.nav-item{color:#fff3df!important}.brand span{color:#ffedd2ad!important}.nav-item{opacity:.86}.nav-item:hover,.nav-item.router-link-active{background:#ffeecf24!important;color:#fff9ef!important;box-shadow:inset 3px 0 #d8aa63}.brand-mark,.login-logo{background:radial-gradient(circle at 30% 25%,#e7bc78,#a8562a 58%,#6f351d)!important;color:#fff8eb!important;font-family:Georgia,Times New Roman,Microsoft YaHei,serif}.topbar,.page-header,.section-card,.metric-card,.activity-card,.course-card,.goods-card,.message-card,.login-card,.hero-card{background:linear-gradient(145deg,#fffcf4eb,#f8ecdad1)!important;border:1px solid rgba(170,106,54,.18)!important;box-shadow:0 22px 58px #522e171f,inset 0 1px #ffffffbf!important}.page-header h1,.hero-card h1,.login-hero h1,.culture-banner h1{font-family:STKaiti,KaiTi,Microsoft YaHei,serif;letter-spacing:.03em}.primary-btn{background:linear-gradient(135deg,#9f4e27,#d49351)!important;box-shadow:0 14px 28px #87482342!important}.outline-btn,.ghost-btn,.icon-btn{background:#fff9edc7!important;border-color:#935b3038!important;color:#6d3f24!important}.filter-bar{background:#fff9ecb8;border:1px solid rgba(162,102,55,.16);border-radius:24px;padding:16px;box-shadow:0 16px 42px #5b371e14}.culture-banner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:230px;padding:34px 40px;overflow:hidden;border-radius:32px;color:#fff8eb;background:radial-gradient(circle at 72% 35%,rgba(255,226,178,.32),transparent 28%),linear-gradient(135deg,#5f3018f5,#9d5027eb);box-shadow:0 28px 70px #4e281433}.culture-banner:after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,232,194,.28);border-radius:25px;pointer-events:none}.culture-banner h1{font-size:44px;margin:14px 0 12px}.culture-banner p{max-width:720px;margin:0;color:#fff7e7d6;line-height:1.85;font-size:16px}.banner-seal{width:148px;height:148px;display:grid;place-items:center;border-radius:50%;border:2px solid rgba(255,236,202,.52);background:#fff7e61a;color:#fff2dbe6;font-size:82px;font-weight:900;font-family:STKaiti,KaiTi,serif}.heritage-card{position:relative;overflow:hidden}.heritage-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#8c4a26,#d9aa61,#52755c)}.heritage-card.recruitment{background:linear-gradient(145deg,#faf6ebf5,#ece1cce6)!important}.activity-top>span{background:#96522a1a;color:#7b4323;border:1px solid rgba(150,82,42,.16);padding:6px 10px;border-radius:999px;font-weight:900}.detail-grid span{background:#fffaef99;border-radius:12px;padding:8px 10px}.login-hero{background:linear-gradient(145deg,#502b19f0,#9a4c24e0),radial-gradient(circle at 70% 24%,rgba(255,255,255,.28),transparent 22%)!important}@media(max-width:860px){.culture-banner{flex-direction:column;align-items:flex-start;padding:26px}.banner-seal{width:96px;height:96px;font-size:52px}}.empty-panel{grid-column:1 / -1;padding:28px;border:1px dashed rgba(148,93,55,.28);border-radius:22px;background:#fffcf6b8;color:#8a6143;text-align:center;font-weight:700}.text-danger{border:none;background:transparent;color:#a6422b;font-weight:800;cursor:pointer}.text-danger:hover{text-decoration:underline}.logo-setting-box{display:grid;gap:14px;padding:14px;border:1px dashed rgba(180,110,56,.32);border-radius:18px;background:#fff8ed9e}.logo-preview-card,.setting-home-card{display:flex;align-items:center;gap:16px}.logo-preview-mark,.setting-home-logo{width:72px;height:72px;border-radius:22px;flex:0 0 auto;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 30% 25%,#e7bc78,#a8562a 58%,#6f351d);color:#fff8eb;font-size:28px;font-weight:900;box-shadow:0 12px 25px #8c461f38}.logo-preview-mark img,.setting-home-logo img{width:100%;height:100%;object-fit:cover;display:block}.logo-preview-card p,.setting-home-card p{margin:6px 0 0;color:var(--muted);line-height:1.55}.logo-preview-card small{display:block;margin-top:6px;color:#a85f2d;font-weight:700}.file-field input{cursor:pointer}.outline-btn:disabled,.primary-btn:disabled{opacity:.55;cursor:not-allowed}.brand-logo-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.star-hero-art span{filter:drop-shadow(0 8px 14px rgba(55,35,18,.18))}.current-star-strip{background:linear-gradient(135deg,var(--star-soft, #eef8e9),rgba(255,255,255,.86))!important;border-left:6px solid var(--star-a, #8fbb75)!important}.star-path span.active{box-shadow:0 8px 18px #8c5a2c1f}
