:root,[data-theme=blue]{--surface: #f9f9ff;--surface-container: #e7eefe;--surface-container-low: #f0f3ff;--surface-container-lowest: #ffffff;--surface-container-high: #e2e8f8;--on-surface: #151c27;--on-surface-variant: #434654;--outline-variant: #c3c5d7;--primary: #1a56db;--on-primary: #ffffff;--primary-container: #dbe1ff;--on-primary-container: #00174d;--secondary: #059669;--on-secondary: #ffffff;--secondary-container: #a7f3d0;--on-secondary-container: #005236;--error: #ba1a1a;--on-error: #ffffff;--ai-spark: #fbbf24;--on-ai-spark: #452c03;--font-head: "Plus Jakarta Sans", "PingFang TC", system-ui, sans-serif;--font-body: "Inter", "PingFang TC", system-ui, sans-serif}[data-theme=yellow]{--surface: #fdf9ee;--surface-container: #f1eee3;--surface-container-low: #f7f3e8;--surface-container-lowest: #ffffff;--surface-container-high: #ece8dd;--on-surface: #1c1c15;--on-surface-variant: #504533;--outline-variant: #d5c4ac;--primary: #7c5800;--on-primary: #ffffff;--primary-container: #ffdea7;--on-primary-container: #271900;--secondary: #565e74;--on-secondary: #ffffff;--secondary-container: #dae2fd;--on-secondary-container: #131b2e;--error: #ba1a1a;--on-error: #ffffff;--ai-spark: #fdb813;--on-ai-spark: #271900;--font-head: "Bricolage Grotesque", "PingFang TC", system-ui, sans-serif;--font-body: "Lexend", "PingFang TC", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--surface);color:var(--on-surface);font-size:15px;line-height:1.5}button{font:inherit;border:0;background:none;cursor:pointer;color:inherit}input,textarea,select{font:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100dvh}.screen{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 14px calc(84px + env(safe-area-inset-bottom))}.screen.no-tabs{padding-bottom:24px}.header{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent)}.header h1{font-family:var(--font-head);font-size:20px;color:var(--primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header .sub{font-size:11px;color:var(--on-surface-variant)}.tabs{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-around;padding:6px 8px calc(8px + env(safe-area-inset-bottom));background:var(--surface-container-lowest);box-shadow:0 -4px 20px #0000000f}.tab{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--on-surface-variant);padding:5px 12px;border-radius:14px}.tab.active{color:var(--primary);background:var(--primary-container)}.tab .ico{font-size:20px;line-height:1}.card{background:var(--surface-container-lowest);border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent);border-radius:16px;padding:14px;box-shadow:0 4px 20px #0000000a;margin-bottom:12px}.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--surface-container-high);color:var(--on-surface-variant)}.pill.primary{background:var(--primary-container);color:var(--primary)}.pill.green{background:var(--secondary-container);color:var(--on-secondary-container)}.pill.red{background:color-mix(in srgb,var(--error) 14%,white);color:var(--error)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--primary-container);color:var(--primary);font-weight:700;flex:none}.h2{font-family:var(--font-head);font-size:17px;font-weight:700;margin:4px 0 10px}.muted{color:var(--on-surface-variant);font-size:13px}.tiny{font-size:11px;color:var(--on-surface-variant)}.btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:12px;border-radius:12px;background:var(--primary);color:var(--on-primary);font-weight:600}.btn:disabled{opacity:.5}.btn.ghost{background:var(--surface-container);color:var(--on-surface)}.btn.danger-ghost{background:color-mix(in srgb,var(--error) 10%,white);color:var(--error);border:1px solid color-mix(in srgb,var(--error) 40%,transparent)}.btn.danger{background:var(--error);color:var(--on-error)}.btn.spark{background:var(--ai-spark);color:var(--on-ai-spark)}.btn.sm{width:auto;padding:8px 14px;border-radius:999px;font-size:13px}.field{width:100%;padding:12px;border-radius:10px;border:1px solid transparent;background:var(--surface-container);outline:none}.field:focus{border-color:var(--primary)}textarea.field{resize:vertical;min-height:90px}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.col{display:flex;flex-direction:column;gap:4px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.chip{padding:8px 14px;border-radius:999px;background:var(--surface-container);font-size:13px;font-weight:500}.chip.on{background:var(--primary);color:var(--on-primary)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000059;display:flex;align-items:flex-end}.sheet{background:var(--surface);width:100%;max-height:88dvh;overflow-y:auto;border-radius:20px 20px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom));animation:up .22s ease}@keyframes up{0%{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}.sheet h3{font-family:var(--font-head);font-size:17px;margin-bottom:12px}.label{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--on-surface-variant);margin:10px 0 5px;text-transform:uppercase}.task{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border-radius:12px;background:var(--surface-container);margin-bottom:8px}.task.done{opacity:.65}.task .box{width:22px;height:22px;border-radius:50%;border:2px solid var(--outline-variant);flex:none;margin-top:1px;display:flex;align-items:center;justify-content:center;font-size:12px}.task.done .box{background:var(--secondary);border-color:var(--secondary);color:var(--on-secondary)}.task .t{font-weight:500}.task.done .t{text-decoration:line-through}.hero{border-radius:18px;padding:40px 16px 14px;margin-bottom:12px;background:linear-gradient(135deg,var(--primary-container),var(--surface-container-high))}.hero .inner{background:color-mix(in srgb,var(--surface) 60%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;padding:12px}.hero h2{font-family:var(--font-head);font-size:17px;color:var(--on-primary-container)}.ring{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:none;background:conic-gradient(var(--secondary) calc(var(--p) * 1%),var(--surface-container-high) 0)}.ring>span{width:44px;height:44px;border-radius:50%;background:var(--surface-container-lowest);display:flex;align-items:center;justify-content:center}.map{height:240px;border-radius:16px;overflow:hidden;margin-bottom:12px}.map-lg{height:46dvh;border-radius:16px;overflow:hidden}.banner{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:14px;font-size:13px;margin-bottom:12px}.banner.spark{background:color-mix(in srgb,var(--ai-spark) 85%,white);color:var(--on-ai-spark)}.err{color:var(--error);font-size:13px;margin:8px 0}.empty{text-align:center;padding:40px 20px;color:var(--on-surface-variant);background:var(--surface-container);border-radius:14px;font-size:13px;margin-bottom:12px}.seg{display:flex;background:var(--surface-container);border-radius:10px;padding:3px;margin-bottom:12px}.seg button{flex:1;padding:8px;border-radius:8px;font-weight:600;font-size:13px;color:var(--on-surface-variant)}.seg button.on{background:var(--surface-container-lowest);color:var(--primary);box-shadow:0 1px 4px #00000014}.rowbtn{display:flex;align-items:center;gap:12px;width:100%;padding:13px 6px;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 30%,transparent);text-align:left}.rowbtn:last-child{border-bottom:0}.rowbtn .ico{width:32px;height:32px;border-radius:9px;background:var(--primary-container);color:var(--primary);display:flex;align-items:center;justify-content:center;flex:none}
