:root{--color-canvas: #f1f5f9;--color-surface: #ffffff;--color-surface-subtle: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #94a3b8;--color-primary: #0d9488;--color-primary-hover: #0f766e;--color-primary-active: #115e59;--color-primary-soft: #ccfbf1;--color-on-primary: #ffffff;--color-danger: #dc2626;--color-danger-soft: #fee2e2;--color-danger-soft-text: #991b1b;--color-warning: #d97706;--color-warning-soft: #fff7ed;--color-warning-soft-text: #9a3412;--color-success: #16a34a;--color-success-soft: #dcfce7;--color-success-soft-text: #166534;--color-hover-overlay: rgba(15, 23, 42, .04);--color-well: #eaeff5;--badge-dream-bg: #fae8ff;--badge-dream-text: #86198f;--badge-reach-bg: #ffedd5;--badge-reach-text: #9a3412;--badge-stable-bg: #dbeafe;--badge-stable-text: #1d4ed8;--badge-safe-bg: #dcfce7;--badge-safe-text: #166534;--badge-not-recommended-bg: #fee2e2;--badge-not-recommended-text: #991b1b;--badge-confidence-high-bg: #ccfbf1;--badge-confidence-high-text: #115e59;--badge-confidence-medium-bg: #fef9c3;--badge-confidence-medium-text: #854d0e;--badge-confidence-low-bg: #fee2e2;--badge-confidence-low-text: #991b1b;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 12px 28px rgba(15, 23, 42, .1), 0 2px 6px rgba(15, 23, 42, .05);--shadow-focus: 0 0 0 3px rgba(13, 148, 136, .35);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 27px;--duration-fast: .12s;--duration-base: .18s;--ease-out: cubic-bezier(.16, 1, .3, 1);color-scheme:light}:root[data-theme=dark]{--color-canvas: #0b1220;--color-surface: #131b2c;--color-surface-subtle: #1a2436;--color-border: #263149;--color-border-strong: #374563;--color-text: #f1f5f9;--color-text-secondary: #b4c0d6;--color-text-tertiary: #7b879e;--color-primary: #2dd4bf;--color-primary-hover: #5eead4;--color-primary-active: #14b8a6;--color-primary-soft: rgba(45, 212, 191, .16);--color-on-primary: #05221f;--color-danger: #f87171;--color-danger-soft: rgba(248, 113, 113, .16);--color-danger-soft-text: #fca5a5;--color-warning: #fb923c;--color-warning-soft: rgba(251, 146, 60, .16);--color-warning-soft-text: #fdba74;--color-success: #4ade80;--color-success-soft: rgba(74, 222, 128, .16);--color-success-soft-text: #86efac;--color-hover-overlay: rgba(255, 255, 255, .06);--color-well: #060a13;--badge-dream-bg: rgba(217, 70, 239, .18);--badge-dream-text: #f0abfc;--badge-reach-bg: rgba(251, 146, 60, .18);--badge-reach-text: #fdba74;--badge-stable-bg: rgba(59, 130, 246, .18);--badge-stable-text: #93c5fd;--badge-safe-bg: rgba(74, 222, 128, .18);--badge-safe-text: #86efac;--badge-not-recommended-bg: rgba(248, 113, 113, .18);--badge-not-recommended-text: #fca5a5;--badge-confidence-high-bg: rgba(45, 212, 191, .18);--badge-confidence-high-text: #5eead4;--badge-confidence-medium-bg: rgba(250, 204, 21, .18);--badge-confidence-medium-text: #fde047;--badge-confidence-low-bg: rgba(248, 113, 113, .18);--badge-confidence-low-text: #fca5a5;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 12px 28px rgba(0, 0, 0, .45), 0 2px 6px rgba(0, 0, 0, .3);--shadow-focus: 0 0 0 3px rgba(45, 212, 191, .4);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0}:root,body{background:var(--color-canvas);color:var(--color-text);font-family:Inter,Noto Sans TC,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--font-size-base);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{color:var(--color-text);font-weight:700;letter-spacing:-.01em;line-height:1.3}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-lg)}h3{font-size:var(--font-size-md)}p{margin:0 0 var(--space-2)}a{color:var(--color-primary-hover)}::selection{background:var(--color-primary-soft);color:var(--color-primary-active)}:focus{outline:none}:focus-visible{border-radius:var(--radius-sm);box-shadow:var(--shadow-focus);outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}button,input,select{font:inherit}button{align-items:center;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);justify-content:center;min-height:40px;padding:0 var(--space-4);touch-action:manipulation;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}button:hover:not(:disabled){background:var(--color-surface-subtle);border-color:var(--color-text-tertiary)}button:active:not(:disabled){transform:scale(.98)}button:disabled{color:var(--color-text-tertiary);cursor:not-allowed;opacity:.6}button.primary{background:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--shadow-xs);color:var(--color-on-primary)}button.primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}button.primary:active:not(:disabled){background:var(--color-primary-active);border-color:var(--color-primary-active)}.icon-row button{height:40px;padding:0;width:40px}.icon-row button[aria-label^=刪除]:hover:not(:disabled){background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-danger-soft-text)}input,select{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);min-height:40px;padding:0 var(--space-3);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);width:100%}input:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--color-text-tertiary)}input:focus-visible,select:focus-visible{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}input::placeholder{color:var(--color-text-tertiary)}input:disabled,select:disabled{background:var(--color-surface-subtle);color:var(--color-text-tertiary);cursor:not-allowed}input[type=checkbox]{accent-color:var(--color-primary);height:18px;min-height:0;width:18px}input[type=number]{font-variant-numeric:tabular-nums}input[type=range]{accent-color:var(--color-primary);height:20px;min-height:0;padding:0}label{color:var(--color-text-secondary);display:grid;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-1)}.check-row label{align-items:center;color:var(--color-text);display:flex;font-weight:400;gap:var(--space-2)}.filters{display:flex;flex-direction:column;gap:var(--space-4)}.filters-row{align-items:end;display:flex;flex-wrap:wrap;gap:var(--space-4)}.filters-row .chip-group{flex-shrink:0}.filter-field{flex:0 1 160px}.filter-check{align-items:center;color:var(--color-text);display:flex;flex-direction:row;font-weight:400;gap:var(--space-2);min-height:40px}.chip-group{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;min-height:34px;padding:0 var(--space-3)}.chip:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-text)}.chip.active{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary-active);font-weight:700}.result-count{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:var(--space-3) 0 0}.result-count strong{color:var(--color-text)}.add-notice{align-items:center;background:var(--color-success-soft);border:1px solid color-mix(in srgb,var(--color-success) 32%,transparent);border-radius:var(--radius-md);color:var(--color-success-soft-text);display:flex;font-size:var(--font-size-sm);font-weight:650;gap:var(--space-2);margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4)}.app-shell{margin:0 auto;max-width:1440px;padding:var(--space-6)}.app-header{align-items:end;border-bottom:1px solid var(--color-border);display:flex;gap:var(--space-5);justify-content:space-between;margin-bottom:var(--space-6);padding-bottom:var(--space-4)}.app-header h1{margin:0}.app-header p,.meta,.muted{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.header-actions{align-items:center;display:flex;gap:var(--space-4)}.top-tabs{display:flex;flex-wrap:wrap;gap:var(--space-5)}.theme-toggle{background:var(--color-surface-subtle);border-radius:var(--radius-pill);color:var(--color-text-secondary);height:40px;padding:0;width:40px}.theme-toggle:hover:not(:disabled){background:var(--color-surface-subtle);border-color:var(--color-primary);color:var(--color-primary-active)}.top-tabs button{background:transparent;border:none;border-radius:0;color:var(--color-text-secondary);font-weight:500;min-height:40px;padding:0 var(--space-1) var(--space-3);position:relative}.top-tabs button:after{background:transparent;border-radius:var(--radius-pill);bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0;transition:background-color var(--duration-base) var(--ease-out)}.top-tabs button:hover:not(:disabled){background:transparent;border-color:transparent;color:var(--color-text)}.top-tabs button.active{color:var(--color-primary-active);font-weight:700}.top-tabs button.active:after{background:var(--color-primary)}.nav-count{align-items:center;background:var(--color-primary-soft);border-radius:var(--radius-pill);color:var(--color-primary-active);display:inline-flex;font-size:11px;font-weight:800;height:20px;justify-content:center;margin-left:var(--space-2);min-width:20px;padding:0 6px}.segmented,.action-row,.check-row,.icon-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.segmented{background:var(--color-well);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:var(--space-1);padding:var(--space-1);width:fit-content}.distribution-order-save-hint{align-self:center;color:#9a3412;font-size:.9rem;font-weight:700}.segmented button{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm);min-height:32px;padding:0 var(--space-3)}.segmented button:hover:not(:disabled){background:var(--color-hover-overlay);border-color:transparent;color:var(--color-text)}.segmented button.active{background:var(--color-surface);box-shadow:var(--shadow-xs);color:var(--color-primary-active)}.workspace{display:grid;gap:var(--space-5)}.workspace.two-column{align-items:start;grid-template-columns:minmax(0,1fr) minmax(320px,420px)}.workspace.two-column.distribution-workspace{grid-template-columns:minmax(600px,.8fr) minmax(420px,1.2fr)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}.input-panel{overflow:hidden;position:relative}.prediction-loading-overlay{align-items:center;background:color-mix(in srgb,var(--color-surface) 94%,transparent);display:flex;flex-direction:column;top:0;right:0;bottom:0;left:0;justify-content:center;padding:var(--space-6);position:absolute;text-align:center;z-index:5}.prediction-loading-overlay h3{color:var(--color-text);font-size:var(--font-size-xl);margin:var(--space-4) 0 0}.prediction-loading-overlay p{color:var(--color-text-secondary);margin:0}.prediction-loading-icon{align-items:center;animation:ai-pulse 1.6s ease-in-out infinite;background:var(--color-primary-soft);border:1px solid color-mix(in srgb,var(--color-primary) 35%,transparent);border-radius:50%;color:var(--color-primary-active);display:flex;height:68px;justify-content:center;width:68px}.section-heading{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-5)}.section-heading h2,.panel>h2{margin:0}.volunteer-pdf-source{background:#fff;color:#172033;font-family:Noto Sans TC,Microsoft JhengHei,sans-serif;left:-10000px;line-height:1.6;padding:44px;position:fixed;top:0;width:800px;z-index:-1}.volunteer-pdf-source h1{border-bottom:2px solid #3157c8;font-size:28px;margin:0 0 8px;padding-bottom:14px}.volunteer-pdf-date{color:#667085;margin:0 0 24px}.volunteer-pdf-item{border:1px solid #d9dfe8;border-radius:10px;margin-bottom:18px;padding:20px 24px}.volunteer-pdf-item h2,.volunteer-pdf-conflicts h2{color:#2446a8;font-size:20px;margin:0 0 14px}.volunteer-pdf-item dl{display:grid;gap:8px 16px;grid-template-columns:150px 1fr;margin:0}.volunteer-pdf-item dt{font-weight:700}.volunteer-pdf-item dd{margin:0}.volunteer-pdf-source ul{margin:0;padding-left:22px}.volunteer-pdf-conflicts{margin-top:26px}.volunteer-pdf-conflict{margin-bottom:8px}.form-grid,.weights-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.check-row{margin:var(--space-5) 0}.check-row input{width:auto}.status{border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:600;padding:var(--space-1) var(--space-3)}.status.ok,.success{background:var(--color-success-soft);color:var(--color-success-soft-text)}.status.error,.error-banner,.error-list{background:var(--color-danger-soft);color:var(--color-danger-soft-text)}.warning{align-items:center;background:var(--color-warning-soft);border-radius:var(--radius-md);color:var(--color-warning-soft-text);display:flex;font-size:var(--font-size-sm);gap:var(--space-2);margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3)}.warning svg{flex-shrink:0}.warning.inline{margin:0}.error-banner,.error-list,.success{border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;margin:var(--space-3) 0;padding:var(--space-2) var(--space-3)}.error-list{display:grid;gap:var(--space-1);list-style:none}.dense-table{border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-top:var(--space-4);overflow:visible}.results-sticky-header{background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;position:sticky;top:0;z-index:10}.selected-exam-summary{background:var(--color-primary-soft);border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-4)}.selected-exam-summary>strong{color:var(--color-primary-active);display:block;font-size:var(--font-size-xs);margin-bottom:var(--space-2)}.selected-exam-summary>div{display:flex;flex-wrap:wrap;gap:var(--space-2)}.selected-exam-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-size:var(--font-size-xs);padding:var(--space-1) var(--space-3)}.volunteer-stage-detail{background:var(--color-surface-subtle);border-radius:var(--radius-md);display:grid;font-size:var(--font-size-xs);gap:var(--space-2);padding:var(--space-3)}.volunteer-stage-detail>strong{color:var(--color-text-tertiary)}.volunteer-stage-detail ul{margin:0;padding-left:var(--space-5)}.table-row{align-items:start;border-top:1px solid var(--color-border);display:grid;gap:var(--space-3);grid-template-columns:minmax(190px,1.25fr) 92px 92px minmax(220px,1.6fr) 132px;min-height:72px;padding:var(--space-4);transition:background-color var(--duration-fast) var(--ease-out)}.dense-table>.table-row:not(.table-head){contain-intrinsic-block-size:auto 176px;content-visibility:auto}.table-row:not(.table-head):hover{background:var(--color-surface-subtle)}.table-row:first-child{border-top:0}.table-head{background:var(--color-surface-subtle);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.04em;min-height:0;padding:var(--space-3) var(--space-4)}.link-button{border:0;color:var(--color-primary-hover);font-weight:600;justify-content:start;min-height:0;padding:0;text-align:left}.link-button:hover:not(:disabled){background:transparent;border-color:transparent;text-decoration:underline}.result-actions{align-items:stretch;display:grid;gap:var(--space-2)}.result-actions button{justify-content:flex-start;white-space:nowrap}.button-spinner{animation:criteria-spin .8s linear infinite}.result-actions .remove-volunteer-button{background:#facc15;border-color:#ca8a04;box-shadow:0 4px 12px #ca8a043d;color:#171717;font-weight:750}.result-actions .remove-volunteer-button:hover:not(:disabled){background:#eab308;border-color:#a16207;color:#171717}.criteria-button{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));color:var(--color-primary-hover)}.ai-advice-button{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));border-color:color-mix(in srgb,var(--color-primary) 55%,var(--color-border));color:var(--color-primary-active)}.ai-advice-modal{animation:criteria-rise-in .24s var(--ease-out);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:0 30px 80px #0f172a52;max-height:min(760px,calc(100vh - 48px));overflow:hidden;width:min(760px,100%)}.ai-advice-header{align-items:start;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 13%,var(--color-surface)),var(--color-surface));border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--space-5) var(--space-6)}.ai-advice-header-actions{display:flex;align-items:center;gap:8px}.ai-advice-header-actions>button:not(.criteria-close){display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.ai-advice-title h2{margin:var(--space-1) 0 0}.ai-advice-title p{color:var(--color-text-secondary);margin:var(--space-1) 0 0}.ai-advice-kicker{align-items:center;color:var(--color-primary-hover);display:flex;font-size:var(--font-size-xs);font-weight:800;gap:var(--space-2);letter-spacing:.06em}.ai-advice-body{max-height:min(580px,calc(100vh - 220px));overflow-y:auto;padding:var(--space-6)}.ai-advice-state{align-items:center;display:flex;flex-direction:column;min-height:260px;justify-content:center;text-align:center}.ai-advice-state h3{margin:var(--space-4) 0 var(--space-1)}.ai-advice-state p{color:var(--color-text-secondary);margin:0}.ai-orbit{align-items:center;animation:ai-pulse 1.6s ease-in-out infinite;background:var(--color-primary-soft);border:1px solid color-mix(in srgb,var(--color-primary) 35%,transparent);border-radius:50%;color:var(--color-primary-active);display:flex;height:64px;justify-content:center;width:64px}.ai-advice-content{position:relative}.ai-advice-mark{align-items:center;background:var(--color-primary-soft);border-radius:50%;color:var(--color-primary-active);display:flex;height:42px;justify-content:center;margin-bottom:var(--space-4);width:42px}.ai-advice-prose{color:var(--color-text);font-size:var(--font-size-base);line-height:1.75}.ai-advice-prose h2,.ai-advice-prose h3,.ai-advice-prose h4{color:var(--color-text);line-height:1.35;margin:var(--space-6) 0 var(--space-3)}.ai-advice-prose h2:first-child,.ai-advice-prose h3:first-child{margin-top:0}.ai-advice-prose h2{font-size:var(--font-size-xl)}.ai-advice-prose h3{color:var(--color-primary-active);font-size:var(--font-size-lg)}.ai-advice-prose h4{font-size:var(--font-size-base)}.ai-advice-prose p{margin:0 0 var(--space-3)}.ai-advice-prose ul,.ai-advice-prose ol{display:grid;gap:var(--space-2);margin:0 0 var(--space-4);padding-left:var(--space-6)}.ai-advice-prose li::marker{color:var(--color-primary);font-weight:700}.ai-advice-prose strong{color:var(--color-text);font-weight:800}.ai-advice-prose em{font-style:italic}.ai-advice-prose hr{border:0;border-top:1px solid var(--color-border);margin:var(--space-6) 0}.ai-markdown-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0 0 var(--space-4);max-width:100%;overflow-x:auto}.ai-markdown-table{border-collapse:collapse;font-size:var(--font-size-sm);min-width:100%;text-align:left}.ai-markdown-table th,.ai-markdown-table td{border-bottom:1px solid var(--color-border);padding:var(--space-3);vertical-align:top}.ai-markdown-table th{background:var(--color-surface-subtle);color:var(--color-primary-active);font-weight:800;white-space:nowrap}.ai-markdown-table tbody tr:last-child td{border-bottom:0}.ai-markdown-table tbody tr:nth-child(2n){background:var(--color-surface-subtle)}.ai-advice-disclaimer{border-top:1px solid var(--color-border);color:var(--color-text-tertiary);font-size:var(--font-size-xs);margin:var(--space-6) 0 0;padding-top:var(--space-4)}.ai-streaming-indicator{align-items:center;color:var(--color-primary-active);display:flex;font-size:var(--font-size-sm);gap:var(--space-2);margin-top:var(--space-4)}.ai-streaming-dots{align-items:center;display:inline-flex;gap:5px;height:24px}.ai-streaming-dots i{animation:ai-stream-dot 1.15s ease-in-out infinite;background:currentColor;border-radius:50%;box-shadow:0 2px 5px color-mix(in srgb,currentColor 28%,transparent);display:block;height:6px;width:6px}.ai-streaming-dots i:nth-child(1){animation-delay:-.6s}.ai-streaming-dots i:nth-child(2){animation-delay:-.5s}.ai-streaming-dots i:nth-child(3){animation-delay:-.4s}.ai-streaming-dots i:nth-child(4){animation-delay:-.3s}.ai-streaming-dots i:nth-child(5){animation-delay:-.2s}.ai-streaming-dots i:nth-child(6){animation-delay:-.1s}.ai-streaming-dots i:nth-child(7){animation-delay:0s}.ai-streaming-dots-waiting{color:var(--color-primary-active);margin:var(--space-2) 0 var(--space-3)}.ai-streaming-dots-waiting i{height:9px;width:9px}@keyframes ai-stream-dot{0%,65%,to{opacity:.25;transform:translateY(3px) scale(.75)}30%{opacity:1;transform:translateY(-9px) scale(1.25)}}@media (prefers-reduced-motion: reduce){.ai-streaming-dots i{animation-duration:1.15s!important;animation-iteration-count:infinite!important}}@keyframes ai-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--color-primary) 20%,transparent);transform:scale(1)}50%{box-shadow:0 0 0 12px transparent;transform:scale(1.04)}}.criteria-backdrop{align-items:center;animation:criteria-fade-in var(--duration-base) var(--ease-out);background:#0f172a94;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:var(--space-6);position:fixed;z-index:1000}.criteria-modal{animation:criteria-rise-in .24s var(--ease-out);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:0 30px 80px #0f172a47;display:grid;grid-template-rows:auto minmax(0,1fr);max-height:min(900px,calc(100vh - 48px));overflow:hidden;width:min(1080px,100%)}.criteria-modal-header{align-items:start;background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--space-5) var(--space-6)}.criteria-title-block{min-width:0}.criteria-title-block h2{font-size:var(--font-size-2xl);margin:var(--space-1) 0 0}.criteria-title-block p{color:var(--color-text-secondary);margin:var(--space-1) 0 0}.criteria-kicker{align-items:center;color:var(--color-primary-hover);display:flex;font-size:var(--font-size-xs);font-weight:800;gap:var(--space-2)}.criteria-close{align-items:center;aspect-ratio:1;display:inline-flex;flex:0 0 40px;justify-content:center;padding:0}.criteria-modal-body{overflow-y:auto;overscroll-behavior:contain;padding:0 var(--space-6) var(--space-8);scrollbar-gutter:stable}.criteria-identity-strip{align-items:center;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);display:flex;font-size:var(--font-size-xs);gap:var(--space-5);padding:var(--space-3) 0}.criteria-identity-strip strong{color:var(--color-text);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;margin-left:var(--space-1)}.criteria-section{border-bottom:1px solid var(--color-border);padding:var(--space-6) 0}.criteria-section:last-child{border-bottom:0}.criteria-section-heading{margin-bottom:var(--space-4)}.criteria-section-heading>span{color:var(--color-text-tertiary);display:block;font-size:var(--font-size-xs);font-weight:700;margin-bottom:var(--space-1)}.criteria-section-heading h3{align-items:center;display:flex;font-size:var(--font-size-xl);gap:var(--space-2);margin:0}.criteria-section-heading h3 svg{color:var(--color-primary)}.criteria-facts{border:1px solid var(--color-border);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.criteria-facts>div{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);min-width:0;padding:var(--space-4)}.criteria-facts dt{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:700}.criteria-facts dd{color:var(--color-text);font-size:var(--font-size-md);font-weight:700;margin:var(--space-1) 0 0;overflow-wrap:anywhere}.criteria-facts.prominent dd{color:var(--color-primary-hover);font-size:var(--font-size-lg)}.criteria-table-wrap{border:1px solid var(--color-border);overflow-x:auto}.criteria-table{border-collapse:collapse;min-width:700px;width:100%}.criteria-table th,.criteria-table td{border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-4);text-align:left}.criteria-table thead th{background:var(--color-surface-subtle);color:var(--color-text-secondary);font-size:var(--font-size-xs);white-space:nowrap}.criteria-table tbody tr:last-child>*{border-bottom:0}.criteria-table tbody tr:hover{background:var(--color-hover-overlay)}.criteria-slot{color:var(--color-text-tertiary);width:52px}.criteria-number{font-variant-numeric:tabular-nums;text-align:right!important}.criteria-threshold{background:var(--color-primary-soft);border-radius:var(--radius-sm);color:var(--color-primary-hover);display:inline-flex;font-size:var(--font-size-xs);font-weight:800;min-width:44px;padding:var(--space-1) var(--space-2)}.criteria-weight{color:var(--color-primary-hover);font-size:var(--font-size-md);font-weight:800}.criteria-empty{color:var(--color-text-tertiary);padding:var(--space-8)!important;text-align:center!important}.criteria-narratives{display:grid;gap:var(--space-3)}.criteria-narratives article{border-left:3px solid var(--color-primary);padding:var(--space-3) var(--space-4)}.criteria-narratives h4{color:var(--color-text);font-size:var(--font-size-sm);margin:0 0 var(--space-1)}.criteria-narratives p{color:var(--color-text-secondary);margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.criteria-state{align-items:center;color:var(--color-text-secondary);display:flex;flex-direction:column;justify-content:center;min-height:420px;text-align:center}.criteria-state h3,.criteria-state p{margin:var(--space-2) 0 0}.criteria-error svg{color:var(--color-danger)}.criteria-spinner{animation:criteria-spin .8s linear infinite;border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);height:34px;width:34px}@keyframes criteria-fade-in{0%{opacity:0}}@keyframes criteria-rise-in{0%{opacity:0;transform:translateY(12px) scale(.99)}}@keyframes criteria-spin{to{transform:rotate(360deg)}}.badge{align-items:center;align-self:start;border-radius:var(--radius-pill);display:inline-flex;font-size:var(--font-size-xs);font-weight:700;justify-content:center;line-height:1.2;min-width:58px;padding:var(--space-1) var(--space-2);white-space:nowrap}.badge:before{background:currentColor;border-radius:var(--radius-pill);content:"";height:6px;margin-right:var(--space-1);width:6px}.dream{background:var(--badge-dream-bg);color:var(--badge-dream-text)}.reach{background:var(--badge-reach-bg);color:var(--badge-reach-text)}.stable{background:var(--badge-stable-bg);color:var(--badge-stable-text)}.safe{background:var(--badge-safe-bg);color:var(--badge-safe-text)}.not_recommended{background:var(--badge-not-recommended-bg);color:var(--badge-not-recommended-text)}.confidence-high{background:var(--badge-confidence-high-bg);color:var(--badge-confidence-high-text)}.confidence-medium{background:var(--badge-confidence-medium-bg);color:var(--badge-confidence-medium-text)}.confidence-low{background:var(--badge-confidence-low-bg);color:var(--badge-confidence-low-text)}.evaluation-split{display:grid;gap:var(--space-3)}.result-department-name{display:block}.result-exam-date{color:var(--color-primary-hover);margin-top:var(--space-1)}.evaluation-split strong{color:var(--color-text-tertiary);display:block;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.04em;margin-bottom:2px}.evaluation-split p{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.6;margin:0}.detail-panel{min-width:0;position:sticky;top:var(--space-6)}.tabs{margin:var(--space-4) 0}.detail-list{display:grid;gap:var(--space-3) var(--space-4);grid-template-columns:96px minmax(0,1fr)}.detail-list dt{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em}.detail-list dd{font-variant-numeric:tabular-nums;margin:0;overflow-wrap:anywhere}.json-block{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:var(--font-size-xs);line-height:1.6;max-height:220px;overflow:auto;padding:var(--space-3)}.volunteer-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(6,minmax(145px,1fr))}.volunteer-slot{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:grid;gap:var(--space-2);grid-template-rows:auto 1fr;min-height:210px;min-width:0;padding:var(--space-3);transition:box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.volunteer-slot:has(strong){box-shadow:var(--shadow-xs)}.volunteer-slot:hover{box-shadow:var(--shadow-md)}.volunteer-slot:has(.muted){align-items:center;background:var(--color-surface-subtle);border-style:dashed;box-shadow:none;justify-items:center}.slot-number{align-items:center;background:var(--color-primary);border-radius:var(--radius-pill);color:var(--color-on-primary);display:inline-flex;font-weight:700;height:28px;justify-content:center;width:28px}.slot-body{display:grid;gap:var(--space-2);min-width:0}.slot-body strong{font-size:var(--font-size-sm);overflow-wrap:anywhere}.slot-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.order-arrow-mobile{display:none}.distribution-choice{align-items:center;display:grid;gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;min-width:0}.distribution-choice-name{display:grid;gap:2px;min-width:0}.distribution-choice-name small{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.distribution-choice-name strong{overflow-wrap:anywhere}.distribution-criteria-button{align-items:center;display:inline-flex;height:36px;justify-content:center;padding:0;width:36px}.distribution-row-actions{display:flex;gap:var(--space-1)}.distribution-row-actions button{height:32px;justify-content:center;padding:0;width:32px}.outcome-list{display:grid;gap:var(--space-2);margin-bottom:var(--space-5)}.outcome-row{align-items:center;display:grid;gap:var(--space-2);grid-template-columns:minmax(300px,1fr) 125px 90px}.distribution-advice-panel{max-width:100%;min-width:0;overflow:hidden}.distribution-advice-content,.distribution-advice-content .ai-advice-prose{max-width:100%;min-width:0;overflow-wrap:anywhere}.distribution-advice-content .ai-markdown-table-wrap{max-width:100%;overflow-x:auto;width:100%}.distribution-advice-content .ai-markdown-table{width:max-content;min-width:100%}.weights-grid label{color:var(--color-text);font-weight:500}.report-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.report-block{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-md);min-height:120px;padding:var(--space-4)}.report-block h3{margin:0 0 var(--space-2)}.report-block p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0;overflow-wrap:anywhere;white-space:pre-line}.conflict-list{display:grid;gap:var(--space-2)}.conflict-checking-indicator{align-items:center;color:var(--color-primary-active);display:flex;font-weight:700;gap:var(--space-2);min-height:32px}.conflict-checking-indicator .ai-streaming-dots{color:currentColor}.empty-state{background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);margin-top:var(--space-4);padding:var(--space-6);text-align:center}.empty-state h2{margin-bottom:var(--space-1)}.empty-state p{color:var(--color-text-secondary);margin:0}.empty-state.compact{padding:var(--space-3)}@media (max-width: 1040px){.workspace.two-column,.workspace.two-column.distribution-workspace{grid-template-columns:1fr}.detail-panel{position:static}.volunteer-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}.distribution-advice-panel{width:100%}.app-header{align-items:flex-start;flex-direction:column}.header-actions{justify-content:space-between;min-width:0;width:100%}.top-tabs{flex:1 1 auto;flex-wrap:nowrap;gap:var(--space-4);min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.top-tabs::-webkit-scrollbar{display:none}.top-tabs button{flex:0 0 auto}}@media (max-width: 900px){.table-row,.table-head{grid-template-columns:1fr}.table-head{display:none}.dense-table{border:0;display:grid;gap:var(--space-3)}.results-sticky-header{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.dense-table>.table-row:not(.table-head){background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);contain-intrinsic-block-size:auto 420px;gap:var(--space-4);padding:var(--space-4)}.dense-table>.table-row:not(.table-head)>:nth-child(2),.dense-table>.table-row:not(.table-head)>:nth-child(3),.dense-table>.table-row:not(.table-head)>:nth-child(4){align-items:start;display:grid;gap:var(--space-2);grid-template-columns:88px minmax(0,1fr)}.dense-table>.table-row:not(.table-head)>:nth-child(2):before,.dense-table>.table-row:not(.table-head)>:nth-child(3):before,.dense-table>.table-row:not(.table-head)>:nth-child(4):before{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:700;padding-top:var(--space-1)}.dense-table>.table-row:not(.table-head)>:nth-child(2):before{content:"分類"}.dense-table>.table-row:not(.table-head)>:nth-child(3):before{content:"信心"}.dense-table>.table-row:not(.table-head)>:nth-child(4):before{content:"判斷摘要"}.result-actions{border-top:1px solid var(--color-border);grid-template-columns:repeat(3,minmax(0,1fr));padding-top:var(--space-3)}.result-actions button{justify-content:center;white-space:normal}}@media (max-width: 760px){.criteria-backdrop{align-items:stretch;padding:0}.criteria-modal,.ai-advice-modal{border:0;border-radius:0;height:100dvh;max-height:100dvh;width:100%}.ai-advice-modal{display:grid;grid-template-rows:auto minmax(0,1fr)}.ai-advice-body{max-height:none;min-height:0}.criteria-modal-header,.criteria-modal-body,.ai-advice-header,.ai-advice-body{padding-left:var(--space-4);padding-right:var(--space-4)}.ai-advice-header{gap:var(--space-3)}.ai-advice-header-actions{flex:0 0 auto}.criteria-title-block h2{font-size:var(--font-size-xl)}.criteria-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell{padding:var(--space-3) var(--space-3) calc(var(--space-6) + env(safe-area-inset-bottom))}.app-header{align-items:stretch;display:grid;gap:var(--space-3);margin-bottom:var(--space-4)}.app-header h1{font-size:var(--font-size-xl)}.header-actions{gap:var(--space-2)}.top-tabs{margin-inline:calc(var(--space-3) * -1);padding-inline:var(--space-3)}.panel{border-radius:var(--radius-md);padding:var(--space-4)}.section-heading{align-items:flex-start;margin-bottom:var(--space-4)}.selected-exam-summary>div{display:grid}.selected-exam-item{border-radius:var(--radius-md);overflow-wrap:anywhere;white-space:normal}.volunteer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.volunteer-slot{min-height:190px}.outcome-row{grid-template-columns:1fr}.outcome-row>select,.outcome-row>input{width:100%}.report-grid{grid-template-columns:1fr}.report-block{min-height:0}.detail-list{grid-template-columns:82px minmax(0,1fr)}}@media (max-width: 520px){.criteria-facts{grid-template-columns:1fr}.criteria-identity-strip{align-items:flex-start;flex-direction:column;gap:var(--space-1)}.criteria-modal-header,.ai-advice-header{padding-bottom:var(--space-3);padding-top:var(--space-3)}.criteria-close{flex-basis:44px;height:44px}.ai-advice-title p{display:none}.ai-advice-header-actions>button:not(.criteria-close){min-height:44px;padding-inline:var(--space-3)}.volunteer-grid{grid-template-columns:1fr}.volunteer-slot{min-height:0}.order-arrow-desktop{display:none}.order-arrow-mobile{display:block}.result-actions{grid-template-columns:1fr}.result-actions button,.action-row>button{justify-content:center;min-height:44px;width:100%}.action-row>.distribution-order-save-hint{width:100%}.segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.segmented button{padding-inline:var(--space-2)}.dense-table>.table-row:not(.table-head)>:nth-child(2),.dense-table>.table-row:not(.table-head)>:nth-child(3),.dense-table>.table-row:not(.table-head)>:nth-child(4){grid-template-columns:72px minmax(0,1fr)}.form-grid,.weights-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr;gap:var(--space-1)}.detail-list dd{margin-bottom:var(--space-2)}}@media (max-width: 360px){.app-shell{padding-inline:var(--space-2)}.panel,.dense-table>.table-row:not(.table-head){padding:var(--space-3)}.ai-advice-header-actions>button:not(.criteria-close){font-size:0;padding:0;width:44px}.ai-advice-header-actions>button:not(.criteria-close) svg{height:19px;width:19px}}
