:root{--bg:#f4f1e7;--panel:#fbfaf5;--ink:#0e0e0e;--muted:#55524b;--line:#cfcabd;--accent:#1e3fff;--accent-ink:#ffffff;--accent-soft:#e4e7fb;--ok:#1f7a4d;--ok-ink:#ffffff;--ok-soft:#dcefe4;--pending:#f5a300;--pending-soft:#fdf1d4;--pending-ink:#6b4500;--danger:#b3261e;--danger-soft:#fbe4e1;--user:#e4e7fb;--shadow:0 1px 2px rgba(14,14,14,.06),0 6px 18px rgba(14,14,14,.05);--radius:10px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e0e10;--panel:#17171a;--ink:#f4f1e7;--muted:#a9a59b;--line:#34343a;--accent:#6e86ff;--accent-ink:#0e0e10;--accent-soft:#1c2140;--ok:#5fc08c;--ok-ink:#0e0e10;--ok-soft:#16301f;--pending:#f5a300;--pending-soft:#2e2410;--pending-ink:#f7c65a;--danger:#ff8a80;--danger-soft:#3a1512;--user:#1c2140;--shadow:none;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e0e10;--panel:#17171a;--ink:#f4f1e7;--muted:#a9a59b;--line:#34343a;--accent:#6e86ff;--accent-ink:#0e0e10;--accent-soft:#1c2140;--ok:#5fc08c;--ok-ink:#0e0e10;--ok-soft:#16301f;--pending:#f5a300;--pending-soft:#2e2410;--pending-ink:#f7c65a;--danger:#ff8a80;--danger-soft:#3a1512;--user:#1c2140;--shadow:none;color-scheme:dark}::selection{background:var(--accent);color:var(--accent-ink)}html{accent-color:var(--accent);caret-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.65 Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif}button,input,select,textarea{font:inherit;color:inherit}details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"＋"}.fold-ico,details>summary:before{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.35em;height:1.35em;margin-right:.45em;border:1.5px solid var(--accent);border-radius:50%;color:var(--accent);font-size:14px;font-weight:700;line-height:1;vertical-align:-.15em}details[open]>summary:before{content:"－"}.fold-ico:before{content:"＋"}.fold-ico.on:before{content:"－"}.fold-count,.fold-ico:hover,details>summary:hover:before{background:var(--accent-soft)}.fold-count{margin-left:.5em;font-size:12.5px;font-weight:600;padding:1px 8px;border-radius:999px;color:var(--accent)}.fold-count.pend{background:var(--pending-soft);color:var(--pending-ink)}.fold{margin:6px 0}.fold>summary{padding:4px 0;font-weight:600}button{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:6px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.ghost{background:transparent}button.attn{border-color:var(--accent);color:var(--accent)}button.link{border:0;padding:0;background:none;color:var(--accent);text-decoration:underline}.small,button.small{font-size:13px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:var(--panel)}textarea{resize:vertical}select{width:auto;max-width:100%}a{color:var(--accent)}.muted{color:var(--muted)}.err,.warn{color:var(--danger)}.err{background:var(--danger-soft);padding:8px 12px}.err,.notice{border-radius:8px;font-size:14px}.notice{background:var(--accent-soft);padding:10px 14px}.splash{padding:40px;text-align:center;color:var(--muted)}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:5}.brand{font-weight:700;font-size:17px;letter-spacing:.5px}.tag{font-size:12px;font-weight:500;margin-left:8px;padding:2px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent)}.top-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.gate{min-height:100vh;display:grid;place-items:center;padding:16px}.gate-box{background:var(--panel);padding:32px;border-radius:14px;box-shadow:var(--shadow);width:min(380px,100%);text-align:center}.gate-box form{display:flex;gap:8px;margin-top:12px}.gate-box h1{font-size:22px;margin:0 0 4px}.start{max-width:980px;margin:0 auto;padding:24px 16px;display:grid;grid-gap:28px;gap:28px;width:100%}.start h2{margin:0 0 4px;font-size:19px}.cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px;gap:12px;margin-top:12px}.case{text-align:left;padding:14px;display:flex;flex-direction:column;gap:4px;border-radius:var(--radius);box-shadow:var(--shadow)}.case span{color:var(--muted);font-size:14px}.case em{font-style:normal;font-size:12px;color:var(--accent)}.case.fit{border-color:var(--accent)}.own{display:grid;grid-gap:10px;gap:10px}.own button{justify-self:start}.problem-bar{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:8px 20px;background:var(--accent-soft);font-size:14px}.problem-bar details{width:100%}.problem-bar summary{cursor:pointer;color:var(--accent)}.stations{padding:10px 20px;overflow-x:auto;border-bottom:1px solid var(--line);background:var(--panel)}.st,.stations{display:flex;gap:6px}.st{white-space:nowrap;align-items:center;border-radius:99px}.st .n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--line);font-size:12px}.st.on{border-color:var(--accent);color:var(--accent);font-weight:600}.st.on .n{background:var(--accent);color:var(--accent-ink)}.st.done .n{background:var(--ok);color:var(--ok-ink)}.mobile-tabs{display:none}.work{flex:1 1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr);grid-gap:16px;gap:16px;padding:16px 20px;min-height:0}.chat,.form{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}.chat{display:flex;flex-direction:column;min-height:60vh;max-height:calc(100vh - 190px)}.station-head{padding:14px 18px 6px;border-bottom:1px solid var(--line)}.station-head h2{margin:0;font-size:18px}.station-head p{margin:2px 0 8px;font-size:14px}.msgs{flex:1 1;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:10px}.msg{max-width:88%;padding:9px 13px;border-radius:12px;white-space:pre-wrap}.msg.user{align-self:flex-end;background:var(--user)}.msg.assistant{align-self:flex-start;background:var(--bg);white-space:normal}.msg.typing{color:var(--muted);font-style:italic}.md p{margin:0 0 6px}.md p:last-child{margin:0}.md ol,.md ul{margin:4px 0 6px;padding-left:22px}.md h2,.md h3,.md h4{margin:10px 0 4px}.md blockquote{margin:6px 0;padding-left:10px;border-left:3px solid var(--accent);color:var(--muted)}.next-bar{align-items:center;justify-content:space-between;padding:10px 18px;background:var(--ok-soft);color:var(--ok)}.composer,.next-bar{display:flex;gap:8px}.composer{padding:12px 18px;border-top:1px solid var(--line)}.composer button{align-self:flex-end;white-space:nowrap;flex-shrink:0}.form{padding:14px 18px;overflow-y:auto;max-height:calc(100vh - 190px)}.form h3{margin:0 0 10px;font-size:16px}.field{margin-bottom:14px}.flabel{display:block;font-weight:600;font-size:14px;margin-bottom:4px}.hint{display:block;font-weight:400;font-size:12.5px}.def,.hint{color:var(--muted)}.def{font-size:13px;margin:6px 0 0}.principles{display:grid;grid-gap:8px;gap:8px}.pcard{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:8px 10px;display:grid;grid-gap:2px;gap:2px;font-size:13.5px}.pcard em{color:var(--muted);font-style:normal}.tbl-wrap{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl th{text-align:left;font-weight:600;padding:4px}.tbl td{padding:2px}.tbl input{padding:4px 6px}.form-actions{display:flex;justify-content:space-between;gap:8px;margin-top:8px}.modal-bg,.result-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);display:grid;place-items:center;z-index:20;padding:16px}.modal{background:var(--panel);border-radius:14px;padding:24px;width:min(460px,100%);display:grid;grid-gap:10px;gap:10px}.modal h2,.modal p{margin:0}.row{display:flex;gap:8px;justify-content:flex-end}.result{background:var(--panel);border-radius:14px;padding:20px 24px;width:min(900px,100%);max-height:92vh;overflow-y:auto}.result.full{width:100vw;height:100vh;max-height:100vh;border-radius:0;display:flex;flex-direction:column}.result.full .card{flex:1 1;font-size:1.35em}.result-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.result-actions strong{margin-right:auto}.card{border:2px solid var(--accent);border-radius:14px;padding:20px;margin-bottom:18px}.card h1{margin:0 0 12px;font-size:1.5em}.card-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.cell{background:var(--bg);border-radius:10px;padding:10px 14px}.cell.wide{grid-column:1/-1}.cell h4{color:var(--accent);font-size:.85em;letter-spacing:1px}.cell h4,.cell p{margin:0 0 4px}.report{border-top:1px solid var(--line);padding-top:12px}.foot{text-align:center;color:var(--muted);font-size:12px;padding:18px 16px}@media (max-width:820px){.work{grid-template-columns:1fr;padding:12px 16px}.mobile-tabs{display:flex;gap:8px;padding:8px 16px 0}.mobile-tabs button{flex:1 1}.mobile-tabs .on{border-color:var(--accent);color:var(--accent);font-weight:600}.chat,.form{display:none;max-height:none}.chat.show,.form.show{display:flex}.form.show{display:block}.chat{min-height:70vh}.problem-bar,.stations,.topbar{padding-left:16px;padding-right:16px}.card-grid{grid-template-columns:1fr}}@media print{body{background:#fff}.app>:not(.result-bg),.no-print{display:none!important}.result-bg{position:static;background:none;padding:0;display:block}.result{max-height:none;overflow:visible;width:100%;padding:0}.card{page-break-inside:avoid;break-inside:avoid}}.mdtbl{border-collapse:collapse;width:100%;margin:6px 0 10px;font-size:14px}.mdtbl td,.mdtbl th{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}.mdtbl th{background:var(--bg)}