:root{--bg:#f3f6f4;--ink:#14231c;--muted:#5b6b63;--card:#ffffff;--line:#d7e0db;--brand:#1f6b4a;--brand-dark:#145239;--accent:#c4a35a;--warn:#9a5b16;--danger:#9b2c2c;--shadow:0 10px 30px rgba(20,35,28,0.08);--radius:16px;--font:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,serif;--sans:"Avenir Next","Segoe UI","PingFang TC","Noto Sans TC",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;color:var(--ink);background:radial-gradient(circle at top left,rgba(31,107,74,.12),transparent 32%),linear-gradient(180deg,#eef4f0 0,var(--bg) 40%,#e8efea 100%);font-family:var(--sans)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{max-width:1100px;margin:0 auto;padding:24px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}.brand{font-family:var(--font);font-size:1.5rem;letter-spacing:.02em;color:var(--brand-dark);text-decoration:none}.nav{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.button,.nav a{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:10px 16px;border:1px solid var(--line);background:rgba(255,255,255,.7);cursor:pointer}.nav-dropdown{position:relative}.nav-dropdown-trigger{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:10px 16px;border:1px solid var(--line);background:rgba(255,255,255,.7);cursor:pointer;font:inherit;color:inherit}.nav-dropdown-trigger:after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid;opacity:.7}.nav-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:140px;padding:6px;border-radius:12px;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);display:grid;grid-gap:2px;gap:2px}.nav-dropdown-menu a{display:block;border-radius:8px;border:none;background:transparent;padding:8px 12px;text-align:left}.nav-dropdown-menu a:hover{background:rgba(31,107,74,.08)}.button.primary{background:var(--brand);border-color:var(--brand);color:white}.button.primary:hover{background:var(--brand-dark)}.button.primary:disabled,.button:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.button.primary:disabled:hover{background:var(--brand)}.hero{display:grid;grid-gap:18px;gap:18px;padding:36px 0 28px}.hero h1{margin:0;font-family:var(--font);font-size:clamp(2rem,4vw,3.2rem);line-height:1.15;max-width:14ch}.hero p{margin:0;color:var(--muted);max-width:42ch;font-size:1.05rem}.grid{display:grid;grid-gap:16px;gap:16px}.grid.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.panel h2,.panel h3{margin:0 0 8px;font-family:var(--font)}.muted{color:var(--muted)}.required-mark{color:#b42318;font-weight:700}.stack{display:grid;grid-gap:12px;gap:12px}label{display:grid;grid-gap:6px;gap:6px;font-size:.92rem}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fbfcfb}.admin-help-textarea{box-sizing:border-box;height:117px;min-height:117px;resize:vertical}.table{width:100%;border-collapse:separate;border-spacing:0}.table td,.table th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}.table-sticky-wrap{overflow:visible}.table thead th{z-index:3;background:var(--card);box-shadow:inset 0 -1px 0 var(--line)}.admin-sticky-bar,.table thead th{position:-webkit-sticky;position:sticky;top:0}.admin-sticky-bar{z-index:30;padding:12px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(251,252,251,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(28,45,38,.08)}.admin-sticky-bar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.category-layout{display:grid;grid-template-columns:minmax(240px,300px) 1fr;grid-gap:16px;gap:16px;align-items:start}.category-sidebar{position:-webkit-sticky;position:sticky;top:16px}.category-nav{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow:auto}.category-nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:transparent;cursor:pointer}.category-nav-item:hover{border-color:color-mix(in srgb,var(--brand,#1f6b4a) 40%,var(--line))}.category-nav-item.active{border-color:var(--brand,#1f6b4a);background:rgba(31,107,74,.08)}@media (max-width:900px){.category-layout{grid-template-columns:1fr}.category-sidebar{position:static}}.badge{display:inline-block;padding:4px 10px;border-radius:999px;background:#e7f2ec;color:var(--brand-dark);font-size:.8rem;white-space:nowrap}.error{color:var(--danger)}.success{color:var(--brand-dark)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.add-btn{width:44px;height:44px;padding:0;font-size:1.6rem;line-height:1}.form-panel{max-width:760px}.form-stack textarea{resize:vertical;min-height:120px}.form-section{display:grid;grid-gap:14px;gap:14px;padding-bottom:8px;border-bottom:1px solid var(--line)}.form-section:last-of-type{border-bottom:none}.form-section-title{margin:8px 0 0;font-size:1.05rem}.form-help{margin:4px 0 8px;font-size:.88rem;white-space:pre-wrap}.info-block{padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--panel) 88%,#dbe7f5);border:1px solid var(--line)}.info-block h4{margin:0 0 8px;font-size:.98rem}.info-block p{margin:0 0 8px;line-height:1.55}.info-block p:last-child{margin-bottom:0}.fieldset{margin:0;padding:14px;border:1px solid var(--line);border-radius:12px}.fieldset legend{padding:0 6px;font-size:.92rem}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:8px 12px;gap:8px 12px}.check-item{display:flex;align-items:center;gap:8px;font-size:.95rem}.check-item input{width:auto}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.row-actions .button{padding:4px 10px;font-size:.8rem;line-height:1.25;white-space:nowrap}.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.85);color:var(--muted);cursor:-webkit-grab;cursor:grab;letter-spacing:-2px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.row-dragging{opacity:.45}.row-drag-over{outline:2px dashed var(--brand);outline-offset:-2px;background:rgba(31,107,74,.06)}.modal-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;overflow-y:auto;background:rgba(20,35,28,.45)}.modal-panel{width:min(640px,100%);margin:auto;padding:20px;border-radius:var(--radius);border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}@media (max-width:720px){.topbar{flex-direction:column;align-items:flex-start}}