body{margin:0}:root{color:#14181d;font-synthesis:none;text-rendering:optimizelegibility;background:#e8eef2;font-family:Pretendard,Apple SD Gothic Neo,Malgun Gothic,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input{font:inherit;font-size:16px}button{touch-action:manipulation}.app{flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.map,.map *{touch-action:none}.map svg,.tap-pin,.gps-dot{pointer-events:none!important}.map{z-index:0;flex:auto;width:100%;min-height:0;position:relative}.map-pending{color:#41505d;background:#e7eef2;place-items:center;display:grid}.legend{z-index:3;top:calc(12px + env(safe-area-inset-top));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#3d4a55;background:#ffffffe6;border-radius:999px;flex-wrap:wrap;gap:8px 12px;width:fit-content;max-width:calc(100% - 24px);padding:8px 12px;font-size:12px;display:flex;position:absolute;left:12px}.legend span{align-items:center;gap:5px;display:inline-flex}.swatch{border-radius:999px;width:14px;height:4px;display:inline-block}.swatch.plan{background:#2f6fed}.swatch.done{background:#14804a;height:5px}.swatch.off{background:#f97316}.legend-trail{color:#e600ff;font-weight:800}.banner{z-index:3;top:calc(52px + env(safe-area-inset-top));color:#fff;background:#14202b;border-radius:10px;margin:0;padding:8px 12px;font-size:13px;position:absolute;left:12px;right:12px}.sheet{z-index:2;width:100%;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#fffffffa;border-radius:16px 16px 0 0;flex:none;position:relative;box-shadow:0 -8px 24px #141c241a}.filters{grid-template-columns:.8fr 1.2fr;gap:6px;margin-bottom:8px;display:grid}.filters label{flex-direction:column;gap:3px;min-width:0;display:flex}.filters span{color:#7b8792;font-size:10px;font-weight:650}.filters select{color:#14181d;background:#f6f8f9;border:1px solid #e4eaee;border-radius:10px;width:100%;min-height:36px;padding:0 8px}.sheet-head{justify-content:center;align-items:baseline;gap:8px;display:flex}.eyebrow{color:#7b8792;letter-spacing:.08em;margin:0;font-size:11px;font-weight:650}.clock{letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:0;font-size:28px;font-weight:560;line-height:1}.app.live .legend{max-width:calc(100% - 196px)}.app.live .banner{right:186px}.hud{z-index:3;top:calc(62px + env(safe-area-inset-top));color:#fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0e1216d1;border:1px solid #ffffff24;border-radius:22px;width:168px;padding:14px 12px 12px;position:absolute;right:10px;box-shadow:0 12px 32px #080c1059}.hud-time{text-align:center;border-bottom:1px solid #ffffff1f;padding-bottom:12px}.hud-time span{color:#ffffff9e;letter-spacing:.16em;font-size:10px;font-weight:650;display:block}.hud-time strong{color:#b6ffd4;letter-spacing:-.05em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:36px;font-weight:560;line-height:1;display:block}.hud-grid{grid-template-columns:1fr 1fr;gap:12px 8px;margin-top:12px;display:grid}.hud-grid em{color:#ffffff8c;letter-spacing:.04em;font-size:10px;font-style:normal;font-weight:650;display:block}.hud-grid b{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:3px;font-size:15px;font-weight:680;line-height:1.15;display:block}.run-bar{z-index:2;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#fffffffa;align-items:center;gap:8px;display:flex;position:relative}.run-bar .toggles{flex:1;justify-content:flex-start;margin-top:0}.run-bar .stop{border-radius:999px;width:auto;margin-top:0;padding:0 18px}.summary-backdrop{z-index:20;background:#0c101475;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.summary{background:#fff;border-radius:24px;width:min(340px,100%);padding:22px 18px 16px;box-shadow:0 24px 60px #080c1047}.summary-kicker{text-align:center;color:#7b8792;letter-spacing:.14em;margin:0;font-size:12px;font-weight:700}.summary-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;display:grid}.summary-grid div{text-align:center;background:#f4f7f8;border-radius:16px;padding:12px 10px 10px}.summary-grid span{color:#7b8792;font-size:11px;font-weight:650;display:block}.summary-grid strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:20px;font-weight:680;display:block}.summary-actions{grid-template-columns:1fr 1.2fr;gap:8px;margin-top:14px;display:grid}.summary-actions button{color:#14181d;background:#eef2f4;border:0;border-radius:14px;min-height:44px;font-size:15px;font-weight:700}.summary-actions .primary{color:#fff;background:#14804a}.summary-actions .primary:disabled{background:#8fb9a0}.sub,.hint{color:#66727c;text-align:center;margin:4px 0 0;font-size:12px;line-height:1.35}.toggles{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px;display:flex}.chip{color:#24303a;background:#f6f8f9;border:1px solid #e4eaee;border-radius:999px;align-items:center;gap:6px;min-height:28px;padding:0 10px;font-size:12px;display:inline-flex}.chip.on{color:#fff;background:#14181d;border-color:#14181d}.chip input{accent-color:#14804a;width:15px;height:15px}.chip.on input{accent-color:#fff}.actions{grid-template-columns:1fr 1fr 1.4fr;gap:6px;margin-top:8px;display:grid}.actions button,.stop{border:0;border-radius:12px;min-height:40px;font-size:14px;font-weight:650}.actions button{color:#14181d;background:#eef2f4}.actions button:disabled{opacity:.4}.actions .primary,.stop{color:#fff}.actions .primary{background:#14804a}.stop{background:#14181d;width:100%;margin-top:8px}.hint.warn{color:#9a3412;text-align:left}@media (width>=800px){.sheet{border-radius:0}}.tap-pin{color:#fff;text-align:center;background:#14202b;border-radius:999px;min-width:22px;height:22px;padding:0 5px;font-size:12px;line-height:22px}.gps-dot{background:#14804a;border:3px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 6px #14804a40}.gate{background:#f4f7f8;flex-direction:column;justify-content:center;gap:8px;width:min(520px,100%);min-height:100dvh;margin:0 auto;padding:28px;display:flex}.gate h1{margin:0;font-size:28px}.gate p{color:#41505d;margin:0;line-height:1.5}.gate code{background:#e7eef2;border-radius:5px;padding:1px 5px}.home{gap:14px}.brand{align-items:center;gap:14px;display:flex}.brand-mark{border-radius:18px;flex:none;width:64px;height:64px;box-shadow:0 12px 28px #14202b2e}.brand-names h1{letter-spacing:-.045em;font-size:34px;line-height:1}.brand-names p{color:#14804a;letter-spacing:.02em;margin-top:6px;font-size:14px;font-weight:750}.brand-lead{color:#14181d;letter-spacing:-.03em;font-size:18px;font-weight:650}.home-actions,.auth-form{gap:10px;margin-top:8px;display:grid}.home-actions button,.auth-form button,.back{color:#14181d;background:#e7eef2;border:0;border-radius:16px;min-height:52px;font-size:16px;font-weight:700}.home-actions .primary,.auth-form .primary{color:#fff;background:#14804a}.auth-form label{color:#41505d;gap:6px;font-size:13px;font-weight:650;display:grid}.auth-form input{color:#14181d;background:#fff;border:1px solid #d5dee4;border-radius:12px;min-height:48px;padding:0 12px}.back{color:#66727c;background:0 0;border-radius:999px;width:fit-content;min-height:36px;padding:0 12px;font-size:13px}.library-actions{grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;display:grid}.library-actions button{color:#14181d;background:#eef2f4;border:0;border-radius:12px;min-height:40px;font-size:14px;font-weight:700}.run-bar .library-actions{flex:1;margin-top:0}.library-list{gap:8px;max-height:46dvh;margin:14px 0 0;padding:0;list-style:none;display:grid;overflow:auto}.library-list button{text-align:left;background:#f4f7f8;border:0;border-radius:14px;width:100%;min-height:56px;padding:10px 12px}.library-list strong,.library-list span{display:block}.library-list span{color:#66727c;margin-top:3px;font-size:12px}.my-page{justify-content:flex-start;overflow:auto}.my-page h1{letter-spacing:-.04em;font-size:34px}.my-id{color:#66727c;margin-top:-6px;font-size:15px;font-weight:650}.my-page .library-list{max-height:none}.online-count{z-index:30;top:calc(12px + env(safe-area-inset-top));color:#3d4a55;pointer-events:none;background:#ffffffe6;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex;position:fixed;right:12px;box-shadow:0 8px 20px #14202b14}.online-dot{background:#16a34a;border-radius:999px;width:8px;height:8px}
