:root{color-scheme:light;--bg: #fff8fb;--bg-soft: rgba(255, 255, 255, .72);--panel: rgba(255, 255, 255, .78);--panel-strong: rgba(255, 255, 255, .92);--panel-border: rgba(195, 176, 255, .34);--text: #43315f;--text-soft: #7a6897;--accent: #a977ff;--accent-2: #6bc7ff;--accent-3: #ff96c7;--accent-soft: rgba(169, 119, 255, .14);--success: #3a9f74;--success-soft: rgba(58, 159, 116, .14);--shadow: 0 18px 48px rgba(173, 142, 216, .18);--radius-lg: 26px;--radius-md: 20px;--radius-sm: 16px}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;font-family:Inter,Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(255,200,236,.92),transparent 28%),radial-gradient(circle at top right,rgba(192,231,255,.94),transparent 30%),radial-gradient(circle at center,rgba(247,235,255,.8),transparent 44%),linear-gradient(180deg,#fffdfd,#f8f1ff 48%,#eef8ff)}button,input{font:inherit}.app-shell{position:relative;overflow:hidden;min-height:100vh}.app-shell__spark{position:absolute;border-radius:999px;filter:blur(80px);pointer-events:none;opacity:.7}.app-shell__spark--one{width:320px;height:320px;top:-40px;left:-40px;background:#ffa9d261}.app-shell__spark--two{width:340px;height:340px;top:12%;right:-90px;background:#81deff57}.app-shell__spark--three{width:420px;height:420px;bottom:-180px;left:25%;background:#cfb3ff42}.app{position:relative;width:min(1120px,calc(100% - 24px));margin:0 auto;padding:28px 0 22px}.hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.hero__subtitle{display:inline-flex;align-items:center;padding:8px 14px;border-radius:999px;margin-bottom:10px;background:linear-gradient(135deg,#ffffffc7,#ffe8f7d6);border:1px solid rgba(255,255,255,.78);box-shadow:0 8px 24px #eab5dc2e,inset 0 1px #ffffffe6;color:#8a5ecd;font-size:14px;font-weight:800;letter-spacing:.02em}.eyebrow{color:#8b68cf;font-size:13px;letter-spacing:.08em;font-weight:800;margin-bottom:6px}.hero__title,.panel__title{margin:0;line-height:1.15;letter-spacing:-.025em}.hero__title{font-size:clamp(28px,4vw,40px);text-wrap:balance;color:#4a3670;text-shadow:0 2px 0 rgba(255,255,255,.48)}.hero__actions{display:flex;flex-wrap:wrap;gap:10px}.hero-button,.stepper__btn,.candidate-pill,.pip-clear,.pip-stepper__btn{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.hero-button:hover,.stepper__btn:hover,.candidate-pill:hover,.pip-clear:hover,.pip-stepper__btn:hover{transform:translateY(-1px)}.hero-button{min-width:104px;height:44px;border-radius:14px;padding:0 16px;border:none;cursor:pointer;font-weight:800}.hero-button--accent{color:#fff;background:linear-gradient(135deg,#b07cff,#79cfff);box-shadow:0 14px 28px #79cfff42}.hero-button--ghost{color:#7655b7;background:#ffffffc7;border:1px solid rgba(190,176,234,.5);box-shadow:0 12px 26px #c7b3e929}.panel,.response-card,.pip-card,.pip-result{background:linear-gradient(180deg,#ffffffd6,#ffffffb3);border:1px solid var(--panel-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.panel--compact{padding:18px 18px 16px}.hero-panel{background:linear-gradient(135deg,#ffffffe0,#f5faffb8)}.panel__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel__header--tight{margin-bottom:10px}.panel__title{font-size:clamp(18px,2.6vw,24px);color:#503a75}.plain-text{margin:0;color:var(--text-soft);font-size:15px;line-height:1.65}.response-grid,.summary-grid{display:grid;gap:16px}.response-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.summary-grid{grid-template-columns:1.15fr 1fr;margin-top:16px}.response-card{padding:16px}.response-card__top{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.response-card__meta{min-width:0}.response-card__label{color:#8a63d2;font-size:13px;font-weight:800;margin-bottom:6px}.response-card__title{font-size:18px;font-weight:900;margin-bottom:6px;color:#503a75}.response-card__hint{color:var(--text-soft);font-size:14px;line-height:1.55}.response-card__badge,.summary-chip,.status-badge,.pip-card__badge,.pip-result__pill{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;font-weight:900}.response-card__badge,.pip-card__badge{min-width:58px;height:36px;padding:0 12px;background:linear-gradient(135deg,#b17dff24,#75ccff29);color:#8659d2;border:1px solid rgba(183,155,236,.42)}.stepper,.pip-stepper{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:10px}.stepper__btn,.pip-stepper__btn{height:52px;border-radius:16px;cursor:pointer;border:1px solid rgba(189,171,234,.46);background:linear-gradient(180deg,#ffffffe0,#f3ecffc2);color:#805ec4;font-size:22px;box-shadow:0 10px 18px #c8b8e929}.stepper__input,.pip-stepper__input{width:100%;min-width:0;height:52px;text-align:center;border-radius:16px;border:1px solid rgba(195,180,236,.52);background:#fffffff0;color:#4e3a72;font-size:22px;font-weight:900;outline:none;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;box-shadow:inset 0 1px #ffffffd9}.stepper__input::-webkit-outer-spin-button,.stepper__input::-webkit-inner-spin-button,.pip-stepper__input::-webkit-outer-spin-button,.pip-stepper__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper__input:focus,.pip-stepper__input:focus{border-color:#977fff80;box-shadow:0 0 0 5px #a977ff1f}.summary-chip{height:36px;padding:0 14px;background:linear-gradient(135deg,#ffffffd6,#eef7ffc2);border:1px solid rgba(196,176,235,.45);color:#815acf}.candidate-list{display:flex;flex-wrap:wrap;gap:10px}.candidate-pill{min-width:72px;padding:11px 14px;border-radius:14px;cursor:pointer;font-size:18px;font-weight:900;border:1px solid rgba(190,176,234,.42);background:#ffffffd1;color:#7155ae;box-shadow:0 10px 18px #c4b4e726}.candidate-pill--active{background:linear-gradient(135deg,#b17cff33,#77ceff38);border-color:#ae97eb85;color:#633fae;box-shadow:0 14px 24px #a489df33}.empty-state{min-height:160px;display:grid;place-items:center;text-align:center;color:var(--text-soft);line-height:1.7;padding:12px}.stairs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stairs__step{min-height:184px;border-radius:20px;border:1px solid rgba(191,175,232,.4);background:linear-gradient(180deg,#ffffffe6,#f4f8ffbd);padding:14px 12px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:12px;box-shadow:inset 0 1px #fffffff0}.stairs__number{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:linear-gradient(135deg,#ae79ff29,#78ccff2e);color:#7d57c5;font-weight:900}.stairs__people{min-height:64px;display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:8px;font-size:22px}.stairs__person{color:#8c64db;text-shadow:0 0 12px rgba(169,119,255,.32),0 0 18px rgba(119,206,255,.18)}.stairs__empty{color:var(--text-soft);font-size:14px}.stairs__count{color:#4f3a74;font-size:18px;font-weight:900}.solution-code{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border-radius:16px;background:#ffffffb3;border:1px solid rgba(192,175,233,.36)}.solution-code__label{color:var(--text-soft)}.solution-code__value{font-size:26px;font-weight:900;letter-spacing:.08em;color:#6849ab}.status-badge{height:34px;padding:0 14px}.status-badge--success{background:var(--success-soft);color:var(--success);border:1px solid rgba(58,159,116,.24)}.status-badge--info{background:#a977ff1f;color:#865fd1;border:1px solid rgba(174,151,235,.34)}.site-footer{margin-top:18px;text-align:right;color:#725aa2db;font-size:13px;letter-spacing:.02em;text-shadow:0 0 12px rgba(169,119,255,.16),0 0 22px rgba(118,205,255,.14)}.pip-body{margin:0;min-height:100vh;padding:12px;background:radial-gradient(circle at top left,rgba(255,208,233,.8),transparent 34%),radial-gradient(circle at top right,rgba(205,242,255,.82),transparent 36%),linear-gradient(180deg,#fffdfd,#f8f1ff 56%,#eef8ff)}.pip-panel{display:flex;flex-direction:column;gap:12px}.pip-panel__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.pip-panel__eyebrow{font-size:12px;color:#8d6bce;font-weight:800;margin-bottom:4px}.pip-panel__title{font-size:22px;font-weight:900;color:#513a77}.pip-clear{border:1px solid rgba(192,175,233,.5);background:#ffffffd1;color:#7656b7;height:40px;padding:0 14px;border-radius:14px;cursor:pointer;font-weight:900}.pip-grid{display:grid;gap:10px}.pip-card{padding:12px;border-radius:18px}.pip-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.pip-card__label{color:#8a63d2;font-size:12px;font-weight:900;margin-bottom:2px}.pip-card__name{color:#4f3b74;font-size:15px;font-weight:900}.pip-result{padding:14px;border-radius:20px}.pip-result__label{color:#8661cf;font-size:13px;font-weight:900;margin-bottom:10px}.pip-result__values{display:flex;flex-wrap:wrap;gap:8px}.pip-result__pill{min-width:64px;height:36px;padding:0 12px;background:linear-gradient(135deg,#b17cff2e,#77ceff2e);border:1px solid rgba(179,160,234,.45);color:#6d4fb0}.pip-result__empty{color:var(--text-soft);font-size:14px}@media (max-width: 920px){.summary-grid{grid-template-columns:1fr}}@media (max-width: 720px){.app{width:min(100% - 16px,1120px);padding-top:18px;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}.hero{align-items:stretch;flex-direction:column;margin-bottom:14px}.hero__actions{width:100%}.hero-button{flex:1 1 0}.response-grid{grid-template-columns:1fr;gap:12px}.response-card,.panel--compact{border-radius:20px}.response-card{padding:14px}.response-card__title{font-size:17px}.response-card__hint{font-size:13px}.response-card__badge{min-width:52px;height:34px;font-size:14px}.stepper{grid-template-columns:46px minmax(0,1fr) 46px;gap:8px}.stepper__btn,.stepper__input{height:46px;border-radius:14px}.stepper__input{font-size:20px}.stairs{gap:10px}.stairs__step{min-height:156px;padding:12px 10px}.stairs__people{font-size:20px;min-height:54px}.stairs__count{font-size:16px}.site-footer{text-align:center;line-height:1.6;padding-bottom:env(safe-area-inset-bottom,0px)}}@media (max-width: 420px){.hero__title{font-size:26px}.panel__title{font-size:20px}.candidate-pill{min-width:64px;font-size:16px;padding:10px 12px}.hero__actions{flex-direction:column}.hero-button{width:100%}}.pip-body{margin:0;padding:10px}.pip-panel{gap:10px}.pip-panel__header{align-items:center}.pip-panel__eyebrow{font-size:11px}.pip-panel__title{font-size:18px}.pip-inline-list{display:grid;grid-template-columns:1fr;gap:8px}.pip-inline-item{display:grid;grid-template-columns:68px 1fr;gap:8px;align-items:center;padding:8px 10px;border-radius:16px;background:linear-gradient(180deg,#ffffffe0,#f8f4ffd1);border:1px solid rgba(192,175,233,.42);box-shadow:0 10px 18px #c4b4e71f}.pip-inline-item__head{display:flex;flex-direction:column;gap:4px;min-width:0}.pip-inline-item__label{color:#7f59cb;font-size:12px;font-weight:900}.pip-inline-item__badge{display:inline-flex;align-items:center;justify-content:center;height:24px;width:fit-content;padding:0 8px;border-radius:999px;background:linear-gradient(135deg,#b17cff2e,#77ceff2e);border:1px solid rgba(179,160,234,.45);color:#6d4fb0;font-size:12px;font-weight:900}.pip-inline-stepper{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:6px;align-items:center}.pip-inline-stepper__btn{height:34px;border-radius:12px;border:1px solid rgba(189,171,234,.46);background:linear-gradient(180deg,#ffffffe0,#f3ecffc2);color:#805ec4;font-size:18px;box-shadow:0 8px 14px #c8b8e91f;cursor:pointer}.pip-inline-stepper__input{width:100%;min-width:0;height:34px;border-radius:12px;border:1px solid rgba(195,180,236,.52);background:#fffffff0;color:#4e3a72;text-align:center;font-size:18px;font-weight:900;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.pip-inline-stepper__input::-webkit-outer-spin-button,.pip-inline-stepper__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pip-result{padding:10px 12px;border-radius:16px}.pip-result__label{margin-bottom:8px}.pip-result__pill{min-width:54px;height:30px;font-size:14px}.pip-clear{height:34px;padding:0 12px;border-radius:12px}
