@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap";
:root{--paper:#eef0ea;--surface:#fff;--surface-2:#f7f8f4;--ink:#1f241f;--ink-soft:#5c6459;--ink-faint:#8c9488;--line:#d7ddd0;--line-strong:#b9c2b0;--accent:#cc8b1f;--accent-ink:#3d2907;--accent-soft:#f3e2b8;--accent-strong:#a86e12;--accent-on-soft:#6b4a10;--success:#3f7d5c;--success-soft:#dbe9db;--danger:#b64534;--danger-soft:#f3ddd6;--red-cell:#f6c9c0;--red-ink:#8a2a1c;--yellow-cell:#f7e7a1;--yellow-ink:#6b5306;--info:#2f6fb0;--info-soft:#dbe7f3;--shadow:0 1px 2px #1f241f0f, 0 6px 20px #1f241f0f;--font-body:"Noto Sans TC", system-ui, sans-serif;--font-mono:"IBM Plex Mono", "Noto Sans TC", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#141813;--surface:#1c221b;--surface-2:#20261f;--ink:#e9ede4;--ink-soft:#b7bfae;--ink-faint:#7c8577;--line:#333c30;--line-strong:#46503f;--accent:#e0a53c;--accent-ink:#2b1e07;--accent-soft:#4a3a17;--accent-strong:#f0b74e;--accent-on-soft:#f0b74e;--success:#6fbf94;--success-soft:#20362b;--danger:#e08072;--danger-soft:#40241d;--red-cell:#5a2620;--red-ink:#ffb4a8;--yellow-cell:#4d4114;--yellow-ink:#f4dc84;--info:#6fa8e0;--info-soft:#1c2e40;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:inherit}button{cursor:pointer;font-family:inherit}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}input,select,textarea{color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.45;cursor:default}.btn-accent{background:var(--accent);border-color:var(--accent-strong);color:var(--accent-ink)}.btn-accent:hover:not(:disabled){background:var(--accent-strong)}.btn-ghost{background:0 0;border-color:#0000}.btn-sm{border-radius:6px;padding:3px 8px;font-size:12px}.btn-danger{color:var(--danger)}.btn-toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-on-soft)}.topbar{z-index:40;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar-row{flex-wrap:wrap;align-items:center;gap:8px;min-height:46px;padding:7px 16px;display:flex}.wordmark{align-items:center;gap:7px;text-decoration:none;display:flex}.wordmark .mark{background:var(--accent);border-radius:2px;width:9px;height:9px;transform:rotate(45deg)}.wordmark b{font-size:15px;font-weight:800}.crumb{color:var(--ink-faint);align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.crumb strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.topbar-tail{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.whoami{color:var(--ink-faint);align-items:center;gap:6px;font-size:12px;display:flex}.rolebadge{background:var(--accent-soft);color:var(--accent-on-soft);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.page{max-width:1120px;margin:0 auto;padding:24px 16px 64px}.page h1{margin:0 0 4px;font-size:22px;font-weight:800}.page .lede{color:var(--ink-soft);margin:0 0 20px}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px}.err{color:var(--danger);background:var(--danger-soft);border-radius:7px;padding:8px 10px;font-size:13px}.ok{color:var(--success);background:var(--success-soft);border-radius:7px;padding:8px 10px;font-size:13px}.muted{color:var(--ink-faint)}
.empty{text-align:center;color:var(--ink-faint);padding:36px 20px}.chip{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft);white-space:nowrap;border-radius:99px;padding:0 7px;font-size:11px;font-weight:700;line-height:18px;display:inline-block}.chip.good{background:var(--success-soft);color:var(--success);border-color:#0000}.chip.warn{background:var(--danger-soft);color:var(--danger);border-color:#0000}.chip.info{background:var(--info-soft);color:var(--info);border-color:#0000}.chip.accent{background:var(--accent-soft);color:var(--accent-on-soft);border-color:#0000}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.section{margin-bottom:16px;padding:18px 20px}.section h2{margin:0 0 12px;font-size:15px;font-weight:800}.err{white-space:pre-line}.nav{flex-wrap:wrap;gap:2px;display:flex}.nav a{color:var(--ink-soft);border-radius:7px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.nav a:hover{background:var(--surface-2);color:var(--ink)}.nav a.on{background:var(--accent-soft);color:var(--accent-on-soft)}.badge{background:var(--danger);color:#fff;min-width:18px;height:18px;font-size:11px;font-weight:700;font-family:var(--font-mono);border-radius:99px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.authwrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.authcard{flex-direction:column;gap:12px;width:min(380px,100%);padding:28px 26px;display:flex}.authcard h1{margin:0;font-size:20px;font-weight:800}.authcard label{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:13px;display:flex}.authcard input{padding:9px 10px;font-size:15px}.authcard .btn{justify-content:center;padding:9px 12px;font-size:14px}.formgrid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:26px;display:grid}.formcard{flex-direction:column;gap:4px;padding:14px 16px;text-decoration:none;transition:border-color .12s;display:flex}.formcard:hover{border-color:var(--accent)}.formcard b{font-size:15px}.formcard span{color:var(--ink-soft);font-size:12.5px}.formcard .code{font-family:var(--font-mono);color:var(--ink-faint);font-size:11.5px}.h2row{flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 10px;display:flex}.h2row h2{margin:0;font-size:16px;font-weight:800}.h2row a{color:var(--ink-soft);font-size:13px}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:12px 14px;display:flex}.filters input[type=search]{flex:200px;min-width:0}.filters input[type=date]{width:140px}.reqlist{border-collapse:collapse;width:100%;font-size:13px}.reqlist th{text-align:left;color:var(--ink-faint);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:700}.reqlist td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 10px}.reqlist tbody tr:last-child td{border-bottom:0}.reqlist tbody tr{cursor:pointer}.reqlist tbody tr:hover td{background:var(--surface-2)}.reqlist .serial{font-family:var(--font-mono);white-space:nowrap;font-size:12.5px}.reqlist .title{word-break:break-word;font-weight:600}.reqlist .sub{color:var(--ink-faint);font-size:12px}.reqlist .nowrap{white-space:nowrap}.reqlist a{text-decoration:none}.overdue{color:var(--danger);font-weight:700}.listcount{color:var(--ink-faint);margin:0 0 8px;font-size:12.5px}@media (max-width:760px){.reqlist thead{display:none}.reqlist,.reqlist tbody,.reqlist tr,.reqlist td{width:100%;display:block}.reqlist tbody tr{border-bottom:1px solid var(--line);padding:10px 12px}.reqlist tbody tr:last-child{border-bottom:0}.reqlist td{border:0;padding:1px 0}.reqlist td[data-l]:before{content:attr(data-l) "：";color:var(--ink-faint);font-size:12px}}.reqhead{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.reqhead h1{margin:0}.reqhead .serial{font-family:var(--font-mono);color:var(--ink-soft);font-size:14px}.fgrid{grid-template-columns:1fr 1fr;gap:14px 18px;display:grid}.fgrid .full{grid-column:1/-1}.fld{flex-direction:column;gap:5px;min-width:0;display:flex}.fld>label,.fld>.lbl{color:var(--ink-soft);font-size:13px;font-weight:600}.fld .req{color:var(--danger);margin-left:2px}.fld .help{color:var(--ink-faint);font-size:12px}.fld>input,.fld>select,.fld>textarea{width:100%;padding:7px 9px;font-size:14px}.fld textarea{resize:vertical;min-height:84px}.fld .val{white-space:pre-wrap;word-break:break-word;min-height:21px;font-size:14px}.fld .val.none{color:var(--ink-faint)}@media (max-width:640px){.fgrid{grid-template-columns:1fr}}.tablebox{border:1px solid var(--line);background:var(--surface);border-radius:8px;overflow-x:auto}table.items{border-collapse:collapse;width:100%;font-size:13px}table.items th{background:var(--surface-2);color:var(--ink-soft);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px;font-size:12px}table.items td{border-bottom:1px solid var(--line);padding:4px 6px}table.items tbody tr:last-child td{border-bottom:0}table.items td input{width:100%;min-width:80px;padding:5px 6px;font-size:13px}table.items td.n{text-align:right;font-family:var(--font-mono)}table.items td.idx,table.items th.idx{text-align:center;width:34px;color:var(--ink-faint)}table.items td.del{text-align:center;width:40px}table.items tfoot td{background:var(--surface-2);border-top:1px solid var(--line);font-weight:700}.files{flex-direction:column;gap:4px;display:flex}.file{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.file a{color:var(--info);word-break:break-all}.file .size{color:var(--ink-faint);font-size:12px;font-family:var(--font-mono)}.actionsbar{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;padding:10px 14px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 14px #0000000f}.actionsbar .err{flex:100%}.detail{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:16px;display:grid}.detail .side{flex-direction:column;gap:14px;min-width:0;display:flex}@media (max-width:900px){.detail{grid-template-columns:1fr}}.steps{flex-direction:column;display:flex}.st{grid-template-columns:22px 1fr;gap:8px;padding:7px 0;display:grid;position:relative}.st:not(:last-child):after{content:"";background:var(--line);width:2px;position:absolute;top:26px;bottom:-8px;left:10px}.st .dot{border:2px solid var(--line-strong);background:var(--surface);z-index:1;border-radius:99px;width:14px;height:14px;margin:3px 0 0 4px}.st.approved .dot{background:var(--success);border-color:var(--success)}.st.pending .dot{background:var(--accent);border-color:var(--accent-strong);box-shadow:0 0 0 4px var(--accent-soft)}.st.returned .dot,.st.rejected .dot{background:var(--danger);border-color:var(--danger)}.st.withdrawn{opacity:.55}.st.applicant .dot{background:var(--info);border-color:var(--info)}.st .nm{flex-wrap:wrap;align-items:center;gap:6px;font-size:13.5px;font-weight:700;display:flex}.st .who{color:var(--ink-soft);font-size:12.5px}.st .cm{background:var(--surface-2);white-space:pre-wrap;word-break:break-word;border-radius:6px;margin-top:4px;padding:4px 8px;font-size:12.5px}.actbox{border:2px solid var(--accent);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.actbox h2{margin:0;font-size:15px}.actbox textarea,.actbox select{width:100%;font-size:14px}.actbox textarea{min-height:64px}.actbox .btns{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.actbox .btn{justify-content:center}.logs{flex-direction:column;gap:8px;font-size:13px;display:flex}.logs .lg{border-bottom:1px dashed var(--line);flex-direction:column;gap:2px;padding-bottom:8px;display:flex}.logs .lg:last-child{border-bottom:0;padding-bottom:0}.logs .t{color:var(--ink-faint);font-size:11.5px;font-family:var(--font-mono)}.logs .c{white-space:pre-wrap;color:var(--ink);word-break:break-word}.comment{flex-direction:column;gap:6px;margin-top:10px;display:flex}.comment textarea{width:100%;min-height:56px}.comment .btn{align-self:flex-end}.subnav{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.grid-table{border-collapse:collapse;width:100%;font-size:13px}.grid-table th{text-align:left;color:var(--ink-faint);border-bottom:1px solid var(--line);white-space:nowrap;padding:7px 8px;font-size:12px}.grid-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:7px 8px}.grid-table tr.off td{color:var(--ink-faint)}.tablewrap{overflow-x:auto}.modal-bg{z-index:60;background:#0000004d;justify-content:center;align-items:flex-start;padding:6vh 12px;display:flex;position:fixed;inset:0;overflow:auto}.modal{flex-direction:column;gap:12px;width:min(520px,100%);padding:20px 22px;display:flex}.modal h2{margin:0;font-size:16px}.modal label{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:13px;display:flex}.modal label.ck{flex-direction:row;align-items:center;gap:8px}.modal input:not([type=checkbox]),.modal select,.modal textarea{width:100%;padding:7px 9px;font-size:14px}.modal textarea{min-height:160px;font-family:var(--font-mono);font-size:12.5px}.pwbox{font-family:var(--font-mono);background:var(--accent-soft);color:var(--accent-on-soft);-webkit-user-select:all;user-select:all;word-break:break-all;border-radius:8px;padding:10px 12px;font-size:18px}.pwlist{font-family:var(--font-mono);background:var(--surface-2);white-space:pre;-webkit-user-select:all;user-select:all;border-radius:8px;max-height:260px;padding:8px 10px;font-size:12.5px;overflow:auto}.designer{flex-direction:column;gap:10px;display:flex}.fitem{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.fitem .top{grid-template-columns:minmax(0,1fr) 150px auto;align-items:center;gap:8px;display:grid}.fitem .top input,.fitem .top select{width:100%;min-width:0}.fitem .opts{flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.fitem .opts label{align-items:center;gap:5px;display:inline-flex}.fitem .opts input[type=text],.fitem .opts select{min-width:0}.fitem textarea{width:100%;min-height:60px}.fitem .cols{border-left:3px solid var(--line-strong);flex-direction:column;gap:6px;padding-left:12px;display:flex}.fitem .col{grid-template-columns:minmax(0,1fr) 100px auto auto;align-items:center;gap:6px;font-size:13px;display:grid}.fitem .col input[type=text]{width:100%;min-width:0}.fitem .stepno{font-family:var(--font-mono);color:var(--ink-faint);font-weight:700}.mini{gap:2px;display:inline-flex}.mini .btn{padding:2px 7px}@media (max-width:640px){.fitem .top{grid-template-columns:1fr 1fr}.fitem .top .mini{grid-column:1/-1;justify-self:end}.fitem .col{grid-template-columns:1fr 1fr}}.picker{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.picker .chip{align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.picker .chip button{all:unset;cursor:pointer;color:var(--ink-faint);font-size:13px;line-height:1}.picker select{max-width:220px}@media (max-width:720px){.topbar-row{padding:6px 12px}.page{padding:16px 12px 64px}}@media print{.topbar,.actionsbar,.noprint,.actbox,.comment{display:none!important}body{background:#fff}.card{box-shadow:none;border-color:#ccc}.detail{grid-template-columns:1fr}.page{max-width:none;padding:0}}
