:root{--bg:#f6f8f8;--surface:#ffffff;--fg:#12211f;--muted:#64748b;--line:#e2e8e8;--line-strong:#cfd8d8;--accent:#0f766e;--accent-dark:#0b5f59;--accent-soft:#e6f4f2;--accent-fg:#ffffff;--danger:#b42318;--danger-soft:#fef3f2;--warn:#b45309;--warn-soft:#fffbeb;--ok:#047857;--ok-soft:#ecfdf5;--radius:14px;--radius-sm:10px;--shadow-sm:0 1px 2px rgba(16,40,38,0.06),0 1px 3px rgba(16,40,38,0.04);--shadow-md:0 6px 20px -6px rgba(16,40,38,0.16),0 2px 6px rgba(16,40,38,0.05);--shadow-lg:0 20px 44px -20px rgba(16,40,38,0.3);--ring:0 0 0 3px rgba(15,118,110,0.18);--ease:cubic-bezier(0.22,0.9,0.28,1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:radial-gradient(1200px 480px at 50% -220px,#dff1ee 0,rgba(223,241,238,0) 70%),var(--bg);color:var(--fg);font-family:Noto Sans HK,PingFang HK,Microsoft JhengHei,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}::selection{background:var(--accent-soft)}.wrap{max-width:780px;margin:0 auto;padding:28px 18px 96px;animation:fade-up .5s var(--ease) both}.wrap.wide{max-width:1160px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.topbar h1,.topbar h2{margin:0}.brand{display:flex;align-items:center;gap:12px}.brand .mark{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(150deg,var(--accent),#0d9488 60%,#14b8a6);color:#fff;font-weight:700;font-size:15.5px;letter-spacing:.06em;box-shadow:0 6px 16px -6px rgba(15,118,110,.7);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}.brand .mark:hover{transform:translateY(-2px) rotate(-2deg);box-shadow:0 12px 22px -8px rgba(15,118,110,.75)}.brand strong{display:block;font-size:17px;letter-spacing:.02em}.brand .sub{display:block;font-size:12.5px;color:var(--muted)}h1{font-size:clamp(22px,3.4vw,28px);line-height:1.3;margin:0 0 8px;letter-spacing:-.01em}h2{font-size:17px;margin:0 0 14px;letter-spacing:.01em}h3{font-size:15px;margin:18px 0 8px}p{margin:0 0 12px}.muted,.small{font-size:13px;color:var(--muted)}.req{color:#dc2626;font-weight:700;margin-left:2px}a{color:var(--accent);-webkit-text-decoration-color:rgba(15,118,110,.35);text-decoration-color:rgba(15,118,110,.35);text-underline-offset:3px;transition:color .2s var(--ease),-webkit-text-decoration-color .2s var(--ease);transition:color .2s var(--ease),text-decoration-color .2s var(--ease);transition:color .2s var(--ease),text-decoration-color .2s var(--ease),-webkit-text-decoration-color .2s var(--ease)}a:hover{color:var(--accent-dark);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:16px;box-shadow:var(--shadow-sm);animation:fade-up .5s var(--ease) both;animation-delay:calc(var(--i, 0) * 55ms);transition:box-shadow .3s var(--ease),border-color .3s var(--ease)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong)}.card.hero{overflow:hidden;padding:26px 24px;background:linear-gradient(180deg,#ffffff,#f8fdfc)}.card.hero:after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent),#14b8a6,#5eead4);background-size:200% 100%;animation:slide-bg 6s linear infinite}.promo-banner{margin-top:18px;border-radius:14px;padding:22px 22px 20px;color:#321700;background:radial-gradient(120% 160% at 0 0,rgba(255,235,205,.55) 0,rgba(255,235,205,0) 46%),radial-gradient(120% 160% at 100% 100%,rgba(180,66,0,.16) 0,rgba(180,66,0,0) 52%),linear-gradient(135deg,#ffad52,#f58220 58%,#e96d13);box-shadow:0 10px 28px rgba(153,65,0,.25)}.promo-banner .promo-headline{margin:0;font-size:19px;line-height:1.45;font-weight:800;color:#321700}.promo-banner .promo-headline em{font-style:normal;color:#713000}.promo-banner .promo-recruit{margin:10px 0 0;font-size:15.5px;font-weight:700;line-height:1.5;color:#3a1c08}.promo-banner .promo-franchise{margin:8px 0 0;font-size:15.5px;font-weight:800;color:#713000}.promo-banner .promo-points{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none}.promo-banner .promo-points li{padding:6px 12px;border-radius:999px;background:rgba(255,248,239,.88);border:1px solid rgba(84,42,5,.22);font-size:13.5px;font-weight:700;color:#3a1c08;white-space:nowrap}.promo-banner .promo-cta{display:inline-block;margin:16px 0 0;padding:10px 22px;border-radius:999px;background:linear-gradient(135deg,#873800,#713000);color:#fff;font-size:15.5px;font-weight:900;text-decoration:none;letter-spacing:.02em;box-shadow:0 4px 16px rgba(245,130,32,.42)}@media (max-width:640px){.promo-banner{padding:18px 16px 16px}.promo-banner .promo-headline{font-size:17px}.promo-banner .promo-points li{font-size:12.5px;padding:5px 10px}}.card>h1:first-child,.card>h2:first-child{margin-top:0}.card.accent{border-color:var(--line-strong);background:linear-gradient(180deg,#ffffff,#f4fbfa)}.section-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.section-head h2{margin:0}.step-no{flex:0 0 auto;width:26px;height:26px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--accent);background:var(--accent-soft);border:1px solid #cdeadf}label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:#24312f}label.check,label.small{font-weight:500;font-size:13.5px;line-height:1.6;display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fcfdfd;cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease),transform .15s var(--ease)}label.check:hover{border-color:var(--accent);background:var(--accent-soft)}label.check:active{transform:scale(.995)}label.check input[type=checkbox]{margin-top:3px;flex:0 0 auto;width:17px;height:17px;accent-color:var(--accent)}.field{display:block;margin-bottom:14px}.card label,.field>span{display:block;font-size:13px;font-weight:600;letter-spacing:.01em;margin-bottom:7px}.card label .req{color:var(--danger);font-weight:700}.grid label{margin-bottom:7px}.hint{font-weight:400;color:var(--muted);font-size:12.5px}input:not([type]),input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{width:100%;min-height:46px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:14.5px;line-height:1.5;color:var(--fg);background:#fbfcfc;box-shadow:inset 0 1px 2px rgba(16,40,38,.03);transition:border-color .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease);-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:96px;padding:12px 14px;line-height:1.7;resize:vertical}select{cursor:pointer;padding-right:40px;background-color:#fbfcfc;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230f766e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center}input[type=date]{cursor:pointer;padding-right:12px}input:hover,select:hover,textarea:hover{border-color:var(--line-strong);background:#fff}input:focus,input:focus-visible,select:focus,select:focus-visible,textarea:focus,textarea:focus-visible{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(15,118,110,.13)}input:disabled,select:disabled,textarea:disabled{background:#f4f6f6;color:var(--muted);cursor:not-allowed}input[type=file]{width:100%;padding:12px 14px;font-size:13.5px;color:var(--muted);border:1.5px dashed var(--line-strong);border-radius:12px;background:#fbfcfc;cursor:pointer;transition:border-color .18s var(--ease),background .18s var(--ease),color .18s var(--ease)}input[type=file]:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}input[type=file]::-webkit-file-upload-button{margin-right:12px;padding:8px 14px;font:inherit;font-size:13px;font-weight:600;color:var(--accent-dark);background:var(--accent-soft);border:1px solid rgba(15,118,110,.22);border-radius:999px;cursor:pointer;-webkit-transition:background .18s var(--ease),color .18s var(--ease);transition:background .18s var(--ease),color .18s var(--ease)}input[type=file]::file-selector-button{margin-right:12px;padding:8px 14px;font:inherit;font-size:13px;font-weight:600;color:var(--accent-dark);background:var(--accent-soft);border:1px solid rgba(15,118,110,.22);border-radius:999px;cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease)}input[type=file]::-webkit-file-upload-button:hover{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}input[type=file]::file-selector-button:hover{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.check-line{display:flex;gap:12px;align-items:flex-start;padding:13px 15px;margin-bottom:10px;border:1px solid var(--line);border-radius:12px;background:#fbfcfc;font-size:13.5px;line-height:1.6;cursor:pointer;transition:border-color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease)}.check-line:hover{border-color:rgba(15,118,110,.35);background:#fff}.check-line:has(input:checked){border-color:rgba(15,118,110,.45);background:var(--accent-soft)}.check-line:has(input:focus-visible){box-shadow:var(--ring)}.check-line input[type=checkbox]{flex:0 0 auto;width:20px;height:20px;margin:1px 0 0;border:1.5px solid var(--line-strong);border-radius:6px;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease)}.check-line input[type=checkbox]:checked{border-color:var(--accent);background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center /14px 14px no-repeat}.grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.span2{grid-column:span 2}@media (max-width:620px){.span2{grid-column:span 1}}.chip-group{margin-bottom:16px}.chip-group>label{margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line-strong);background:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-size:13.5px;color:#24312f;cursor:pointer;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .12s var(--ease),box-shadow .18s var(--ease)}.chip:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.chip:active{transform:translateY(0) scale(.97)}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:0 6px 14px -8px rgba(15,118,110,.9);animation:pop .28s var(--ease)}.chip.on:before{content:"✓ ";font-weight:700}.filters{margin:4px 0 16px}.filters input:not([type=hidden]),.filters select{background:var(--surface);padding:9px 12px}.filter-note{gap:6px 18px;font-size:13.5px;margin-bottom:12px}.filter-panel{margin-bottom:18px}.filter-panel>summary{font-weight:600;display:flex;align-items:center;gap:8px}.filter-panel>summary:before{content:"▸";transition:transform .18s var(--ease)}.filter-panel[open]>summary:before{transform:rotate(90deg)}.filter-panel[open]>summary{margin-bottom:14px}.file-drop{position:relative;margin-top:2px}.file-drop>input[type=file]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.file-drop>label{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1.5px dashed #c3d0cf;border-radius:12px;background:linear-gradient(180deg,#fcfdfd,#f7fafa);cursor:pointer;transition:border-color .18s var(--ease),background .18s var(--ease),transform .14s var(--ease),box-shadow .18s var(--ease)}.file-drop>label:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px);box-shadow:0 8px 18px -14px rgba(15,118,110,.75)}.file-drop>label:active{transform:translateY(0) scale(.995)}.file-drop>input:focus-visible+label{box-shadow:var(--ring);border-color:var(--accent)}.file-drop-icon{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#fff;border:1px solid var(--line);color:var(--accent);box-shadow:var(--shadow-sm);transition:transform .18s var(--ease),color .18s var(--ease)}.file-drop>label:hover .file-drop-icon{transform:translateY(-2px);border-color:var(--accent)}.file-drop-text{display:flex;flex-direction:column;gap:2px;min-width:0}.file-drop-text strong{font-size:13.5px;font-weight:600;color:var(--fg)}.file-drop-text em{font-style:normal;font-size:12.5px;color:var(--muted)}.file-drop.is-busy>label{border-color:var(--accent);background:repeating-linear-gradient(115deg,#eef6f5 0 12px,#e3f1ef 12px 24px);animation:dropflow 1.1s linear infinite;cursor:progress}@keyframes dropflow{0%{background-position:0 0}to{background-position:48px 0}}button{font:inherit}.actions button[type=submit],button.danger,button.ghost,button.primary{border-radius:var(--radius-sm);cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .12s var(--ease),box-shadow .2s var(--ease)}.actions button[type=submit],button.primary{background:linear-gradient(180deg,#128377,var(--accent));color:var(--accent-fg);border:1px solid var(--accent-dark);padding:11px 22px;font-weight:600;font-size:14.5px;box-shadow:0 8px 18px -10px rgba(15,118,110,.9)}.actions button[type=submit]:hover,button.primary:hover{transform:translateY(-1px);box-shadow:0 12px 24px -12px rgba(15,118,110,.95)}.actions button[type=submit]:active,button.primary:active{transform:translateY(0) scale(.99)}button.ghost{background:#fff;border:1px solid var(--line-strong);padding:8px 14px;font-size:13.5px;color:var(--fg)}button.ghost:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}button.ghost.danger{color:var(--danger);border-color:#f4c7c3}button.ghost.danger:hover{background:var(--danger-soft);border-color:var(--danger)}button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.actions{gap:14px;flex-wrap:wrap;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.actions,.progress{display:flex;align-items:center}.progress{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);width:min(620px,calc(100vw - 28px));z-index:30;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-md);padding:9px 16px;gap:12px;font-size:13px;animation:progress-in .45s var(--ease) both}@keyframes progress-in{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}form.wrap{padding-bottom:92px}.progress .bar{flex:1 1;height:7px;border-radius:999px;background:#e8eeee;overflow:hidden}.progress .bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#14b8a6,var(--accent));transition:width .5s var(--ease)}.progress strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.error,.error-box{color:var(--danger);font-size:13.5px}.error-box{background:var(--danger-soft);border:1px solid #f4c7c3;border-left:3px solid var(--danger);border-radius:var(--radius-sm);padding:12px 14px;margin:0 0 14px;animation:shake .4s var(--ease)}.error-box div+div{margin-top:4px}.notice{background:var(--warn-soft);border:1px solid #fde68a;border-radius:var(--radius-sm);padding:12px 14px;font-size:13px}.ok,.ok-box{background:var(--ok-soft);border:1px solid #a7f3d0;border-radius:var(--radius-sm);padding:12px 14px;color:#065f46;font-size:13.5px;display:flex;gap:8px;align-items:flex-start;animation:fade-up .35s var(--ease) both}.ok-box:before,.ok:before{content:"✓";font-weight:700}.success{text-align:center;padding:34px 24px}.success .check{width:74px;height:74px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--ok-soft);border:1px solid #a7f3d0;animation:pop .5s var(--ease) both}.success .check svg{width:38px;height:38px}.success .check svg path{stroke:var(--ok);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .7s var(--ease) .15s forwards}.success .ref{display:inline-block;margin:6px 0 10px;padding:8px 18px;border-radius:999px;background:var(--accent-soft);border:1px dashed #9ed4cc;font-size:20px;font-weight:700;letter-spacing:.06em;color:var(--accent-dark);animation:fade-up .5s var(--ease) .25s both}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.tab{border:1px solid var(--line-strong);background:#fff;border-radius:999px;padding:7px 14px;font-size:13.5px;text-decoration:none;color:var(--fg);transition:background .18s var(--ease),border-color .18s var(--ease),transform .12s var(--ease)}.tab:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.tab.active{background:var(--fg);border-color:var(--fg);color:#fff}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;background:#fff;font-size:13.5px}td,th{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left;vertical-align:top}tbody tr{transition:background .18s var(--ease)}tbody tr:hover{background:#f7fbfa}tbody tr:last-child td{border-bottom:0}th{background:#fafcfc;font-size:12.5px;color:var(--muted)}.badge,th{font-weight:600;white-space:nowrap}.badge{display:inline-block;border-radius:999px;padding:3px 11px;font-size:12px;background:#f3f4f6;border:1px solid var(--line)}.badge.Submitted{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.badge.Needs-Info,.badge\.Needs-Info{background:var(--warn-soft);border-color:#fde68a;color:var(--warn)}.badge.Verified{background:var(--ok-soft);border-color:#a7f3d0;color:var(--ok)}.badge.Imported{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}.badge.Rejected{background:var(--danger-soft);border-color:#f4c7c3;color:var(--danger)}.stat-row{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:16px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm);animation:fade-up .45s var(--ease) both;animation-delay:calc(var(--i, 0) * 60ms);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat .n{display:block;font-size:26px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.2}.stat .k{font-size:12.5px;color:var(--muted)}dl.kv{display:grid;grid-template-columns:190px 1fr;grid-gap:2px 14px;gap:2px 14px;margin:0}dl.kv dt{color:var(--muted);font-size:13px}dl.kv dd,dl.kv dt{padding:7px 0;border-bottom:1px solid var(--line)}dl.kv dd{margin:0;font-size:13.5px;word-break:break-word}@media (max-width:620px){dl.kv{grid-template-columns:1fr}dl.kv dt{border-bottom:0;padding-bottom:0}dl.kv dd{padding-top:0}}.sticky-actions{position:-webkit-sticky;position:sticky;bottom:0;z-index:10;display:flex;gap:10px;flex-wrap:wrap;padding:14px 0;background:linear-gradient(180deg,rgba(246,248,248,0),var(--bg) 60%)}.skeleton{background:linear-gradient(90deg,#eef2f2 25%,#e2e8e8 37%,#eef2f2 63%);background-size:400% 100%;animation:shimmer 1.4s linear infinite;border-radius:8px;height:14px}footer.attrib{margin-top:30px;font-size:12px;color:var(--muted);text-align:center}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#14b8a6;margin-right:6px;animation:pulse 2s var(--ease) infinite}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.9)}60%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes slide-bg{to{background-position:200% 0}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0 16px}.filters input:not([type=hidden]),.filters select{border:1px solid var(--line-strong);background:#fff;border-radius:var(--radius-sm);padding:9px 13px;font:inherit;font-size:14px;color:var(--fg);min-width:220px;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}.filters input:not([type=hidden]):focus,.filters select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.filters button{border:1px solid var(--accent);background:var(--accent);color:var(--accent-fg);border-radius:var(--radius-sm);padding:9px 18px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .18s var(--ease),transform .12s var(--ease)}.filters button:hover{background:var(--accent-dark)}.filters button:active{transform:scale(.98)}.filter-panel{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:14px 18px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.filter-panel>summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--fg);list-style:none}.filter-panel>summary::-webkit-details-marker{display:none}.filter-panel>summary:before{content:"▸ ";color:var(--accent);font-weight:700}.filter-panel[open]>summary:before{content:"▾ "}.filter-panel .chip-group:last-child{margin-bottom:4px}.filter-note{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted);margin-bottom:14px}.filter-note strong{color:var(--fg)}.badge.warn{background:var(--warn-soft);border-color:#fde68a;color:var(--warn)}.badge.ok{background:var(--ok-soft);border-color:#a7f3d0;color:var(--ok)}.badge.new{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.badge.viewed{background:#f8fafc;border-color:#cbd5e1;color:#64748b}.badge.bad{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.admin-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 16px;margin-bottom:20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}.admin-bar .brand{text-decoration:none;color:inherit}.admin-bar .brand strong{display:block;font-size:15px}.admin-bar .brand .sub{display:block;font-size:12px;color:var(--muted)}.admin-bar .brand .mark{width:38px;height:38px;border-radius:11px;font-size:13.5px}.admin-nav{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}.nav-item{padding:8px 14px;border-radius:10px;font-size:14px;text-decoration:none;color:var(--fg);border:1px solid transparent;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}.nav-item.active,.nav-item:hover{background:var(--accent-soft)}.nav-item.active{border-color:var(--accent);color:var(--accent-dark);font-weight:600}.editor{margin-top:16px;padding-top:16px;border-top:1px dashed var(--line-strong)}.editor textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fff;color:var(--fg);resize:vertical}.editor textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}button,table th{white-space:nowrap}.contact-row{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}a.teacher-link{color:#0a5aa8;text-decoration:underline;text-underline-offset:2px}a.teacher-link:hover{color:#08457e;text-decoration:none}a.wa{display:inline-flex;align-items:center;gap:5px;border-radius:999px;border:1px solid #a7e8c4;background:#eafaf0;padding:3px 10px;font-size:12.5px;font-weight:600;line-height:1.7;white-space:nowrap;transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}a.wa,a.wa:hover{color:#0a7d43;text-decoration:none}a.wa:hover{background:#d5f5e3;border-color:#25d366}a.wa svg{width:13px;height:13px;flex:none}table td a.btn,table td a.wa{white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--accent);background:var(--accent);border-radius:var(--radius-sm);padding:9px 16px;font:inherit;font-size:14px;font-weight:600;line-height:1.5;cursor:pointer;white-space:nowrap;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .12s var(--ease)}.btn,.btn:hover{color:var(--accent-fg);text-decoration:none}.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn:active{transform:scale(.98)}.btn.ghost{background:#fff;color:var(--fg);border-color:var(--line-strong)}.btn.ghost:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-dark)}.btn.small{padding:6px 12px;font-size:13px}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.alert{display:flex;align-items:flex-start;gap:10px;border:1px solid #fde68a;background:var(--warn-soft);color:#7c4a03;border-radius:var(--radius-sm);padding:12px 15px;margin:0 0 14px;font-size:14px;line-height:1.6}.pager{gap:6px;margin-top:16px}.pager,.row,.row-inline{display:flex;flex-wrap:wrap}.row,.row-inline{align-items:center;gap:10px}.file-list,.filelist{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.file-list li,.filelist li{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);background:#fff;border-radius:var(--radius-sm);padding:8px 12px;font-size:13.5px;word-break:break-word}.label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}body{font-size:clamp(14.5px,.18vw + 13.7px,16.5px)}.wrap{padding:24px 16px 88px}.wrap.wide{max-width:min(1360px,100%)}@media (min-width:1600px){.wrap.wide{max-width:min(1600px,100%)}}.table-wrap{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.table-wrap:not(.plain)>table:not(.stack){min-width:680px}.table-wrap.plain>table{min-width:0}@media (max-width:960px){.table-wrap.cards{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.table-wrap.cards>table.stack{display:block;min-width:0;background:transparent;font-size:14px}.table-wrap.cards>table.stack>thead{display:none}.table-wrap.cards>table.stack>tbody{display:block}.table-wrap.cards>table.stack>tbody>tr{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:4px 0}.table-wrap.cards>table.stack>tbody>tr:hover{background:#fff}.table-wrap.cards>table.stack td{display:block;width:auto;border-bottom:1px dashed var(--line);padding:9px 14px;white-space:normal}.table-wrap.cards>table.stack td:last-child{border-bottom:0}.table-wrap.cards>table.stack td[data-label]:before{content:attr(data-label);display:block;font-size:11.5px;font-weight:700;letter-spacing:.03em;color:var(--muted);margin-bottom:3px}.table-wrap.cards>table.stack td.cell-action{padding:12px 14px}.table-wrap.cards>table.stack td.cell-action .btn{width:100%}}@media (max-width:760px){.topbar{align-items:stretch}.topbar>*{min-width:0}.admin-nav{margin-left:0;width:100%}.nav-item{flex:1 1 auto;text-align:center}.filters input:not([type=hidden]),.filters select{min-width:0;flex:1 1 140px;width:100%}.filters>.btn,.filters>button{flex:1 1 auto}.contact-row{display:flex}}@media (max-width:480px){.wrap{padding:18px 12px 80px}.card{padding:16px;border-radius:12px}.card.hero{padding:20px 16px}.topbar h1{font-size:22px}}@media (hover:none){.btn,.chip,.filters button,.nav-item,.tab,a.wa{min-height:40px}a.wa{padding:6px 12px}}.filters input:not([type=hidden]){width:auto;flex:1 1 260px;max-width:460px}.filters select{width:auto;flex:0 1 auto}.filters>.btn,.filters>button{flex:0 0 auto}td[data-label="編號"]{white-space:nowrap}@media (max-width:1024px){.wrap.wide{max-width:100%}}@media (max-width:520px){.table-wrap table{font-size:12.5px}.table-wrap td,.table-wrap th{padding:8px 9px}.table-wrap.plain td,.table-wrap.plain th{white-space:normal}}.alert-card{border-color:#fcd34d;background:linear-gradient(180deg,#fffdf5,#fffdf5)}.alert-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.alert-list>li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}.alert-body{flex:1 1 260px;min-width:0}.alert-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 4px;font-weight:600;line-height:1.5;min-width:0}.alert-title>*{min-width:0}.alert-detail{display:grid;grid-gap:2px;gap:2px;margin:0 0 4px;min-width:0;white-space:pre-line;overflow-wrap:anywhere;word-break:break-word}.alert-detail>*{min-width:0;max-width:100%}.incident-form input,.incident-form select{min-width:0}.incident-form input[type=date],.incident-form select{flex:0 0 auto;width:auto;min-width:148px}.incident-form input[type=text]{flex:1 1 220px;width:auto}.incident-form>button{flex:0 0 auto}@media (max-width:760px){.alert-list>li{align-items:stretch}.alert-list>li>button{width:100%}.incident-form{align-items:stretch}.incident-form input[type=date],.incident-form input[type=text],.incident-form select,.incident-form>button{width:100%}}.report-blocks{gap:4px}.report-block{padding:10px 4px;border-bottom:1px dashed #e2ddd2}.report-sep{margin:6px 0;color:#b3ab9c;font-size:12px}.report-line1{font-weight:700;font-size:15.5px;display:flex;gap:24px;flex-wrap:wrap}.report-title{white-space:nowrap}.report-line2{margin-top:3px}.report-meta{color:#b3ab9c}.report-fee{margin-top:3px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-plaintext{white-space:pre-wrap;font-size:12.5px;background:#faf8f3;border:1px solid #eae4d7;border-radius:8px;padding:10px;max-height:420px;overflow:auto}@media print{.admin-bar,.report-actions,.topbar,details.card{display:none!important}body{background:#fff}}.report-blocks .report-block{padding:10px 0}.report-blocks .report-block+.report-block{border-top:1px solid var(--line,#e5e7eb)}.report-line pre{font-size:14px;line-height:1.7}.report-sep{margin:4px 0;color:#9ca3af}.small-btn{font-size:12px}.report-meta{margin-top:2px}@media print{.admin-bar,.filter-row,.report-meta,.small-btn,.topbar{display:none!important}.card{border:0;box-shadow:none}}.report-blocks{display:flex;flex-direction:column;gap:20px}.report-block{border-bottom:1px dashed var(--line,#e5e5e5);padding-bottom:14px}.report-block:last-child{border-bottom:none;padding-bottom:0}.report-line{display:flex;align-items:flex-start;gap:12px}.report-line pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:PingFang TC,Microsoft JhengHei,Noto Sans TC,monospace;font-size:14.5px;line-height:1.6;flex:1 1}.small-btn{font-size:12.5px;padding:3px 10px;flex:none}.report-meta{margin-top:4px}.report-meta a{color:#0a5aa8;text-decoration:underline;text-underline-offset:2px}@media print{.admin-bar,.filter-row,.report-meta,.small-btn,.topbar{display:none!important}.report-block{page-break-inside:avoid;break-inside:avoid}}