:root{--brand: #1C1F24;--accent: #8E949B;--soft: #EEF0F2;--line: #C9CDD2;--bg: #FFFFFF;--surface: #F6F7F8;--ink: #16181C;--muted: #5F666E;--ok: #1F6B45;--warn: #8A5A00;--warn-bg: #FBF3E2;--err: #A3262A;--err-bg: #F8E9E9;--radius: 2px;--demo-bar-h: 24px;--font: -apple-system, BlinkMacSystemFont, "PingFang TC", "Helvetica Neue", "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif}*{box-sizing:border-box}html{color-scheme:light only;-webkit-text-size-adjust:100%}body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-tap-highlight-color:transparent}#root{min-height:100dvh;max-width:480px;margin:0 auto;background:var(--bg)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.num{font-variant-numeric:tabular-nums;letter-spacing:.01em}.page{padding:20px 20px 96px}.page-title{font-size:22px;font-weight:700;letter-spacing:.01em}.page-sub{margin-top:4px;color:var(--muted);font-size:14px}.section{margin-top:24px}.section-title{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.section-title+*{margin-top:10px}.hr{height:1px;background:var(--line);margin:20px 0}.muted{color:var(--muted)}.small{font-size:13px}.bold{font-weight:700}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--brand);background:var(--brand);color:#fff;font-size:17px;font-weight:700}.btn:disabled{background:var(--line);border-color:var(--line);color:var(--muted)}.btn-secondary{background:var(--bg);color:var(--ink);border-color:var(--line)}.btn-ghost{background:transparent;border-color:transparent;color:var(--ink);min-height:44px;font-weight:600;width:auto;padding:0 8px}.btn-danger{background:var(--bg);color:var(--err);border-color:var(--err)}.input{width:100%;min-height:52px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);font-size:16px}.input:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}textarea.input{padding:12px 14px;min-height:84px;resize:vertical}.field{display:grid;gap:6px}.field>span{font-size:14px;font-weight:700}.form{display:grid;gap:16px}.alert{padding:12px 14px;border-radius:var(--radius);font-weight:600;font-size:15px;border:1px solid}.alert-err{background:var(--err-bg);color:var(--err);border-color:#e6c7c8}.alert-warn{background:var(--warn-bg);color:var(--warn);border-color:#e7d7b6}.alert-info{background:var(--soft);color:var(--ink);border-color:var(--line)}.list{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.list>*+*{border-top:1px solid var(--line)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:60px;padding:12px 14px;text-align:left;background:var(--bg);border:0;border-left:3px solid transparent}.row.on{border-left-color:var(--brand);background:var(--soft)}.row-main{min-width:0;display:grid;gap:2px}.row-title{font-size:16px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-sub{font-size:13px;color:var(--muted)}.row-right{flex-shrink:0;text-align:right;display:grid;gap:2px}.choice{display:block;width:100%;padding:14px;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius)}.choice.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:var(--soft)}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.choice-grid .choice{text-align:center;padding:14px 6px}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.slot{min-height:52px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font-weight:700;font-size:16px;display:grid;place-items:center;gap:2px}.slot.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:var(--soft)}.slot:disabled{color:var(--line);background:var(--surface);text-decoration:line-through}.slot .small{font-weight:500}.days{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.days::-webkit-scrollbar{display:none}.day{flex:0 0 60px;min-height:64px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);display:grid;place-items:center;gap:2px;font-weight:700}.day.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:var(--soft)}.day .small{font-weight:500;color:var(--muted)}.tag{display:inline-block;padding:1px 6px;font-size:12px;font-weight:700;border:1px solid currentColor;border-radius:var(--radius);line-height:1.5}.tag-ok{color:var(--ok)}.tag-muted{color:var(--muted)}.tag-warn{color:var(--warn)}.tag-err{color:var(--err)}.summary{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:100%;max-width:480px;background:var(--bg);border-top:1px solid var(--line);padding:12px 20px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:40}.summary .btn{width:auto;min-width:140px;min-height:48px}.summary-text{display:grid;gap:2px}.summary-text .amount{font-size:20px;font-weight:700}.steps{display:flex;gap:6px;margin-top:16px}.steps>span{flex:1;height:2px;background:var(--line)}.steps>span.on{background:var(--brand)}.tabs{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:100%;max-width:480px;display:flex;background:var(--bg);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:30}.tabs button{flex:1;min-height:56px;background:transparent;border:0;border-top:2px solid transparent;font-weight:700;color:var(--muted)}.tabs button.on{color:var(--ink);border-top-color:var(--brand)}.demo-bar{position:fixed;left:50%;top:0;transform:translate(-50%);width:100%;max-width:480px;height:var(--demo-bar-h);display:flex;align-items:center;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--line);font-size:12px;font-weight:600;color:var(--muted);z-index:60}.demo-bar-space{height:var(--demo-bar-h)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line)}.topbar .brand{font-size:17px;font-weight:700;letter-spacing:.02em}.topbar .who{font-size:13px;color:var(--muted);display:flex;gap:8px;align-items:center}.topbar .who button{min-height:32px;padding:0 8px;border:1px solid var(--line);background:var(--bg);font-size:13px;font-weight:600;border-radius:var(--radius)}.watermark{pointer-events:none;position:fixed;inset:0;z-index:70;overflow:hidden;user-select:none;contain:strict}.watermark>div{position:absolute;left:50%;top:50%;width:220vmax;transform:translate(-50%,-50%) rotate(-24deg);display:grid;gap:64px}.watermark>div>div{display:flex;justify-content:space-around;white-space:nowrap}.watermark span{font-size:15px;font-weight:700;color:var(--ink);opacity:.07}.kv{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;font-size:15px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600}.center{text-align:center}.busy{color:var(--muted);text-align:center;padding:32px 0}
