:root{--bg:#0b0f14;--surface:#141a22;--surface-2:#1c242e;--line:#2a3441;--text:#eef3f8;--muted:#93a3b4;--dim:#5c6b7a;--lime:#84cc16;--green:#22c55e;--amber:#f59e0b;--red:#ef4444;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);overscroll-behavior-y:contain;margin:0;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Noto Sans KR,system-ui,sans-serif;font-size:16px;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}.app{max-width:560px;min-height:100%;padding-bottom:calc(72px + var(--safe-b));flex-direction:column;margin:0 auto;display:flex}.hdr{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:14px 16px 12px;padding-top:calc(14px + env(safe-area-inset-top,0px));background:#0b0f14f0;position:sticky;top:0}.hdr-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.hdr h1{letter-spacing:-.02em;margin:0;font-size:19px;font-weight:800}.hdr .sub{color:var(--muted);margin-top:2px;font-size:13px}.gps-chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:8px 13px;font-size:12px;font-weight:700;display:inline-flex}.gps-chip.on{border-color:color-mix(in srgb, var(--green) 50%, transparent);color:var(--green)}.dot{background:currentColor;border-radius:50%;width:7px;height:7px}.day{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex}.day-head{color:var(--muted);font-size:14px;font-weight:700}.row{text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px 4px;display:flex}.bullet{border:2px solid var(--dim);border-radius:50%;flex-shrink:0;width:15px;height:15px}.bullet.ok{border-color:var(--green);background:var(--green)}.row-name{color:var(--muted);flex:1;font-size:15px}.row-tag{background:var(--surface-2);color:var(--dim);border-radius:7px;padding:3px 8px;font-size:11px;font-weight:800}.row-tag.req{background:color-mix(in srgb, var(--amber) 20%, transparent);color:var(--amber)}.card{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--lime);border-radius:0 16px 16px 0;flex-direction:column;gap:10px;padding:16px;display:flex}.card-seq{color:var(--muted);font-size:13px}.card-title{letter-spacing:-.02em;font-size:22px;font-weight:800}.card-sub{color:var(--muted);word-break:keep-all;font-size:14px}.spacer{flex:1;min-height:6px}.lbl{color:var(--muted);margin-top:4px;font-size:12px}.code{letter-spacing:.12em;font-variant-numeric:tabular-nums;color:var(--lime);font-size:34px;font-weight:900}.note{background:var(--surface-2);border-radius:12px;padding:13px 14px;font-size:14px;font-weight:700;line-height:1.5}.note span{color:var(--muted);margin-top:3px;font-size:13px;font-weight:400;display:block}.note.warn{background:color-mix(in srgb, var(--amber) 14%, transparent);border:1px solid color-mix(in srgb, var(--amber) 40%, transparent);color:#ffd899}.note.warn span{color:#d9b482}.ask{background:var(--surface-2);border-radius:12px;padding:13px 14px}.ask-row{gap:8px;margin-top:8px;display:flex}.ask-row input{flex:1}input[type=text],input[type=tel],input[type=password],input[type=number]{background:var(--bg);width:100%;min-height:54px;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:12px;padding:0 14px}.btn{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;justify-content:center;align-items:center;width:100%;min-height:58px;padding:0 14px;font-size:17px;font-weight:800;display:flex}.btn:disabled{opacity:.4}.btn.primary{background:var(--lime);color:#0b0f14;border-color:var(--lime)}.btn.ghost{background:0 0}.btn.sm{border-radius:12px;min-height:48px;font-size:14px}.btn.warn{color:var(--red);border-color:color-mix(in srgb, var(--red) 45%, transparent)}.more{color:var(--dim);background:0 0;border:none;min-height:44px;padding:10px 0;font-size:13px;font-weight:700}.extras{grid-template-columns:1fr 1fr;gap:8px;display:grid}.extras .warn{grid-column:1/-1}.shots{grid-template-columns:1fr 1fr;gap:10px;display:grid}.shot{aspect-ratio:1.5;border:1px dashed var(--line);background:var(--surface-2);color:var(--muted);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.shot-ic{color:var(--dim);font-size:22px}.shot-ic.ok{color:var(--green)}.body{flex-direction:column;flex:1;gap:14px;padding:16px;display:flex}.section{flex-direction:column;gap:10px;display:flex}.section h2{color:var(--muted);margin:0;font-size:14px;font-weight:700}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px}.kv{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:9px 0;font-size:14px;display:flex}.kv:last-child{border-bottom:none}.kv .k{color:var(--muted)}.kv .v{text-align:right;word-break:break-all;font-weight:700}.tabs{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:var(--safe-b);background:#0b0f14f5;grid-template-columns:repeat(3,1fr);max-width:560px;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--muted);background:0 0;border:none;min-height:58px;padding:16px 4px;font-size:13px;font-weight:700}.tab.active{color:var(--lime)}.empty{text-align:center;color:var(--muted);padding:48px 20px;font-size:15px}.err{background:color-mix(in srgb, var(--red) 14%, transparent);border:1px solid color-mix(in srgb, var(--red) 40%, transparent);color:#ffb4b4;border-radius:12px;padding:12px 14px;font-size:14px}.toast{left:50%;bottom:calc(84px + var(--safe-b));z-index:60;background:var(--surface-2);border:1px solid var(--line);text-align:center;border-radius:999px;max-width:88vw;padding:12px 18px;font-size:14px;font-weight:700;position:fixed;transform:translate(-50%);box-shadow:0 8px 28px #00000080}.spin{text-align:center;color:var(--muted);padding:32px 0;font-size:14px}.hint{color:var(--dim);text-align:center;margin:4px 0 0;font-size:12px;line-height:1.6}.login-wrap{flex-direction:column;gap:14px;width:100%;max-width:420px;margin:0 auto;padding:48px 20px;display:flex}.brand{text-align:center;margin-bottom:8px}.brand .logo{letter-spacing:-.04em;font-size:36px;font-weight:900}.brand .tag{color:var(--muted);margin-top:4px;font-size:14px}
