:root{--primary-color:#2563eb;--primary-gradient:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);--surface-glass:#ffffffe6;--surface-glass-dark:#ffffffb3;--text-primary:#1e293b;--text-secondary:#64748b;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--radius-lg:clamp(.6rem,.8vw,1rem);--radius-xl:clamp(.8rem,1.1vw,1.5rem);--ui-pad:clamp(.5rem,1.2vw,1.5rem);--ui-pad-inner:clamp(.4rem,.9vw,1.25rem);--ui-font-xs:clamp(.55rem,.7vw,.75rem);--ui-font-sm:clamp(.65rem,.8vw,.875rem);--ui-font-base:clamp(.72rem,.9vw,1rem);--ui-font-lg:clamp(.9rem,1.2vw,1.4rem);--ui-font-xl:clamp(1.5rem,2.8vw,3.5rem);--ui-font-hero:clamp(1rem,1.3vw,1.25rem);--ui-gap:clamp(.3rem,.5vw,.75rem);--ui-gap-lg:clamp(.5rem,.7vw,1rem);--ui-edge:clamp(.5rem,1.2vw,1.5rem)}html,body{width:100%;height:100dvh;margin:0;padding:0;position:fixed;top:0;left:0;overflow:hidden}.map-container{z-index:0;width:100vw;height:100dvh;min-height:0;position:absolute;top:0;left:0}.ui-overlay{z-index:10;pointer-events:none;width:100%;height:100dvh;padding:calc(var(--ui-edge) + env(safe-area-inset-top,0px))calc(var(--ui-edge) + env(safe-area-inset-right,0px))calc(var(--ui-edge) + env(safe-area-inset-bottom,0px))calc(var(--ui-edge) + env(safe-area-inset-left,0px));box-sizing:border-box;color:var(--text-primary);flex-direction:column;justify-content:space-between;font-family:Noto Sans JP,sans-serif;display:flex;position:absolute;top:0;left:0;overflow:hidden}@supports (-webkit-touch-callout:none){.ui-overlay{padding-bottom:calc(var(--ui-edge) + env(safe-area-inset-bottom,0px) + 100px)}}.ui-interactive{pointer-events:auto}.status-card{background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);padding:var(--ui-pad-inner)var(--ui-pad);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);cursor:pointer;flex-direction:column;align-self:flex-start;gap:.25rem;max-width:clamp(260px,28vw,400px);transition:transform .2s;display:flex}.status-card:active{transform:scale(.98)}.status-label{font-size:var(--ui-font-sm);color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;font-weight:500}.status-value{font-size:var(--ui-font-hero);color:var(--text-primary);font-weight:700}.status-sub{font-size:var(--ui-font-sm);color:var(--text-secondary)}.control-panel{background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);padding:var(--ui-pad);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);gap:var(--ui-gap-lg);flex-direction:column;width:100%;display:flex}.map-controls{top:var(--ui-edge);right:var(--ui-edge);align-self:flex-start;align-items:flex-end;gap:var(--ui-gap);z-index:10;flex-direction:column;display:flex;position:absolute}.map-controls .ctrl-btn{background:var(--surface-glass);-webkit-backdrop-filter:blur(14px);width:clamp(100px,14vw,190px);font-size:var(--ui-font-sm);color:var(--text-primary);cursor:pointer;border:1px solid #ffffff80;border-radius:clamp(8px,1vw,14px);justify-content:center;align-items:center;gap:clamp(.25rem,.4vw,.5rem);padding:clamp(.4rem,.6vw,.7rem) clamp(.5rem,.8vw,1.1rem);font-family:Noto Sans JP,sans-serif;font-weight:600;transition:all .2s;display:flex;box-shadow:0 2px 12px #00000014}.map-controls .ctrl-btn:hover{background:#ffffffd9;transform:translateY(-1px);box-shadow:0 4px 16px #0000001f}.map-controls .ctrl-btn:active{transform:translateY(0);box-shadow:0 1px 6px #0000001a}.map-controls .ctrl-btn .ctrl-icon{font-size:var(--ui-font-base);text-align:center;flex-shrink:0;width:clamp(.8rem,1vw,1.2rem);line-height:1}.map-controls .ctrl-btn-active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.map-controls .ctrl-btn-active:hover{background:#1d4ed8}.map-controls .ctrl-btn:disabled{opacity:.4;cursor:default;transform:none}.map-help{background:var(--surface-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#202a36;font-size:var(--ui-font-sm);pointer-events:none;text-align:center;opacity:.85;border-radius:clamp(6px,.7vw,10px);width:clamp(120px,16vw,210px);padding:clamp(.35rem,.5vw,.6rem) clamp(.5rem,.7vw,.85rem);font-weight:600;box-shadow:0 1px 6px #0000000f}.btn-icon{align-items:center;gap:var(--ui-gap);font-size:var(--ui-font-sm);padding:clamp(.3rem,.5vw,.5rem) clamp(.5rem,.8vw,1rem);display:flex}.timer-display{text-align:center;font-variant-numeric:tabular-nums}.timer-time{font-size:var(--ui-font-xl);background:var(--primary-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Inter,sans-serif;font-weight:800;line-height:1}.timer-label{font-size:var(--ui-font-sm);color:var(--text-secondary);margin-top:.25rem}.btn-group{gap:var(--ui-gap);grid-template-columns:1fr 1fr;display:grid}.btn{border-radius:var(--radius-lg);font-size:var(--ui-font-base);cursor:pointer;border:none;padding:clamp(.4rem,.6vw,.75rem) clamp(.5rem,.8vw,1rem);font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn:active{transform:scale(.96)}.btn-primary{background:var(--primary-gradient);color:#fff;box-shadow:0 4px 6px -1px #2563eb4d}.btn-primary:hover{filter:brightness(1.1);box-shadow:0 6px 8px -1px #2563eb66}.btn-secondary{color:var(--text-primary);background:#fff;border:1px solid #e2e8f0}.btn-secondary:hover{background:#f8fafc}.btn-danger{color:#991b1b;background:#fee2e2}.btn-danger:hover{background:#fecaca}.share-btn-group{justify-content:flex-start;gap:1rem;max-width:210px;margin:2.2rem 0 0;display:flex}.btn-share-sub{color:#515964;white-space:nowrap;text-align:center;background:0 0;border:1px solid #e2e8f0;border-radius:8px;flex:1;padding:.35rem .5rem;font-size:.72rem}.btn-share-sub:hover{color:#475569;background:#f1f5f9}.btn-share-sub.btn-share-x{color:#fff;background:#1a1a1a;border-color:#1a1a1a}.btn-share-sub.btn-share-x:hover{color:#fff;background:#333}.stats-bar,.stat-chip{display:none}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;opacity:0;pointer-events:none;visibility:hidden;background:#0003;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s,visibility .3s;display:flex;position:fixed;top:0;left:0}.modal-overlay.open{opacity:1;pointer-events:auto;visibility:visible}.modal{border-radius:var(--radius-xl);text-align:center;background:#fffffff2;width:90%;max-width:400px;padding:2rem;transition:transform .3s cubic-bezier(.34,1.56,.64,1);transform:translateY(20px);box-shadow:0 20px 25px -5px #0000001a}.modal-overlay.open .modal{transform:translateY(0)}.modal h2{color:var(--text-primary);margin:0 0 1rem;font-size:1.5rem}.stat-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;display:grid}.stat-box{border-radius:var(--radius-lg);background:#f1f5f9;padding:1rem}.stat-box-num{color:var(--primary-color);font-size:1.5rem;font-weight:700;display:block}.stat-box-label{color:var(--text-secondary);font-size:.75rem}.maplibregl-marker{pointer-events:none!important}@keyframes walk-bounce{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-4px)rotate(-2deg)}50%{transform:translateY(0)rotate(0)}75%{transform:translateY(-4px)rotate(2deg)}}.marker-pin{pointer-events:none;z-index:5;width:60px;height:70px}.marker-user{z-index:10}@keyframes pin-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.pin-inner{will-change:transform;justify-content:center;width:100%;height:100%;animation:2s ease-in-out infinite pin-float;display:flex;position:relative}.marker-pin:not(.marker-user) .pin-inner{pointer-events:none;animation:none!important;translate:none!important}.marker-pin:not(.marker-user) .pin-img{pointer-events:auto;cursor:pointer}.marker-pin:not(.marker-user) .pin-inner:before{animation:none!important}.pin-inner:after{content:"";filter:drop-shadow(0 4px 2px #0003);z-index:0;border-top:14px solid #fff;border-left:10px solid #0000;border-right:10px solid #0000;width:0;height:0;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.pin-img{object-fit:cover;z-index:1;background:#fff;border:3px solid #fff;border-radius:50%;width:56px;height:56px;position:relative;box-shadow:0 4px 10px #0003}@media (max-width:600px){.control-panel{border-radius:var(--radius-xl)var(--radius-xl)0 0;max-width:100%;margin-top:auto;margin-bottom:2rem}.status-card{border-radius:0 0 var(--radius-xl)var(--radius-xl);width:100%;max-width:none}.ui-overlay{padding:env(safe-area-inset-top,0px)env(safe-area-inset-right,0px)env(safe-area-inset-bottom,0px)env(safe-area-inset-left,0px)}.stats-bar{flex-direction:column;align-items:flex-start;top:6rem;bottom:auto;left:1rem}.map-controls{align-items:flex-end;top:auto;bottom:11rem;right:.5rem}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{bottom:0!important;left:auto!important;right:0!important}}.route-slot-wrapper{flex-direction:column;align-items:center;display:flex}.route-slot-window{border-radius:var(--radius-lg);background:#f1f5f9;border:1px solid #0000000a;width:100%;height:140px;position:relative;overflow:hidden;box-shadow:inset 0 2px 6px #0000000f}.route-slot-mask{z-index:2;pointer-events:none;height:42px;position:absolute;left:0;right:0}.route-slot-mask-top{background:linear-gradient(#f1f5f9 20%,#0000);top:0}.route-slot-mask-bottom{background:linear-gradient(#0000,#f1f5f9 80%);bottom:0}.route-slot-reel{will-change:transform}.route-slot-item{color:var(--text-primary);text-align:center;white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;padding:0 1rem;font-size:1.2rem;font-weight:700;transition:color .3s,transform .3s;display:flex;overflow:hidden}.route-slot-item-confirmed{color:var(--primary-color);animation:.5s cubic-bezier(.34,1.56,.64,1) slot-confirm;transform:scale(1.08)}@keyframes slot-confirm{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.route-slot-item-confirmed{animation:none;transform:scale(1)}}.marker-status-bubble{white-space:nowrap;pointer-events:auto;z-index:20;opacity:.9;background:#fff;border:1px solid #0000000d;border-radius:12px;flex-direction:column;align-items:center;gap:.1rem;max-width:160px;padding:.3rem .65rem;display:flex;position:absolute;bottom:74px;left:50%;transform:translate(-50%);box-shadow:0 4px 6px -1px #0000001a}.marker-bubble-status{color:var(--text-secondary);text-overflow:ellipsis;max-width:100%;font-size:.7rem;overflow:hidden}.marker-bubble-name{color:var(--text-primary);text-overflow:ellipsis;max-width:100%;font-size:.75rem;font-weight:700;overflow:hidden}.marker-user{cursor:pointer;position:relative;pointer-events:auto!important;z-index:20!important}.marker-user:after{content:"";pointer-events:auto;position:absolute;inset:-12px}@keyframes pin-float-user{0%,to{translate:0}50%{translate:0 -8px}}.marker-user .pin-inner{will-change:translate;animation-name:pin-float-user;transform:scale(1.1)}.marker-user.moving .pin-inner{animation:none;translate:none}.marker-user.moving .pin-inner:before{opacity:0!important;animation:none!important}.marker-user .pin-img{border-color:#2563eb;box-shadow:0 4px 12px #2563eb66}@keyframes user-pulse{0%{transform:translate(-50%,-50%)var(--pulse-scale-start,scale(.5));opacity:.6}to{transform:translate(-50%,-50%)var(--pulse-scale-end,scale(2));opacity:0}}.marker-user .pin-inner:before{content:"";pointer-events:none;z-index:-1;background:#2563eb4d;border-radius:50%;width:60px;height:60px;animation:2s ease-out infinite user-pulse;position:absolute;top:28px;left:50%;transform:translate(-50%,-50%)scale(.5)}@media (prefers-reduced-motion:reduce){.marker-user .pin-inner{animation:none;transform:scale(1.1)}.marker-user .pin-inner:before{opacity:.3;animation:none;transform:translate(-50%,-50%)scale(1.2)}}.profile-header{flex-direction:column;align-items:center;margin-bottom:1.5rem;display:flex;position:relative}.close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:1.5rem;position:absolute;top:0;right:0}.profile-body input,.profile-body textarea{border-radius:var(--radius-lg);border:1px solid #e2e8f0;padding:.75rem;font-family:inherit;font-size:1rem}.profile-body input:focus,.profile-body textarea:focus{border-color:var(--primary-color);outline:none}.avatar-selector{justify-content:center;gap:1rem;display:flex}.avatar-option.selected{border-color:var(--primary-color);transform:scale(1.1)}.avatar-wrapper{display:inline-block;position:relative}.avatar-edit-btn{cursor:pointer;z-index:2;background:#fff;border:2px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:.8rem;line-height:1;transition:all .2s;display:flex;position:absolute;bottom:6px;right:-4px;box-shadow:0 2px 6px #0000001f}.avatar-edit-btn:hover{border-color:var(--primary-color);transform:scale(1.1)}.avatar-picker-overlay{z-index:310;-webkit-backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:center;padding:1rem;animation:.2s avatar-picker-in;display:flex;position:fixed;inset:0}.avatar-picker-modal{border-radius:var(--radius-xl,16px);background:#fff;width:100%;max-width:360px;padding:1.25rem;animation:.2s avatar-picker-in;box-shadow:0 25px 50px #0003}@keyframes avatar-picker-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.avatar-picker-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:0 .25rem;display:flex}.avatar-picker-title{color:var(--text-primary);font-size:.85rem;font-weight:700}.avatar-picker-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.1rem .3rem;font-size:1rem;transition:background .15s}.avatar-picker-close:hover{background:#f1f5f9}.avatar-picker-grid{grid-template-columns:repeat(4,1fr);gap:.85rem;padding:.5rem;display:grid}.avatar-picker-item{aspect-ratio:1;object-fit:cover;cursor:pointer;border:3px solid #0000;border-radius:50%;width:100%;transition:all .2s}.avatar-picker-item:hover{border-color:#cbd5e1;transform:scale(1.08)}.avatar-picker-item.selected{border-color:var(--primary-color);transform:scale(1.08);box-shadow:0 0 0 3px #2563eb33}.edit-trigger{width:100%}.profile-nav-header{-webkit-backdrop-filter:blur(10px);z-index:10;box-sizing:border-box;background:#fffffff2;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;height:56px;padding:.75rem 1rem;display:flex;position:sticky;top:0}.nav-title{color:var(--text-primary);white-space:nowrap;font-size:1rem;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.nav-btn{cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-md);z-index:11;background:0 0;border:none;align-items:center;height:100%;padding:.5rem;font-size:.95rem;transition:all .2s;display:flex}.nav-btn:hover{color:var(--text-primary);background:#f8fafc}.nav-btn:disabled{opacity:.5;cursor:not-allowed}.nav-btn.save{color:#94a3b8;font-weight:700}.nav-btn.save.active{color:var(--primary-color)}.nav-btn.edit{color:var(--primary-color);font-weight:700}.profile-header{flex-direction:column;align-items:center;margin-bottom:1.5rem;padding-top:1rem;display:flex;position:relative}.marker-status-bubble{color:var(--text-primary);white-space:nowrap;pointer-events:auto;z-index:20;text-overflow:ellipsis;background:#fff;border:1px solid #0000000d;border-radius:12px;max-width:150px;padding:.3rem .6rem;font-size:.75rem;font-weight:700;position:absolute;bottom:74px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 6px -1px #0000001a}.marker-status-bubble:after{content:"";border-top:6px solid #fff;border-left:5px solid #0000;border-right:5px solid #0000;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}.marker-user{cursor:pointer;pointer-events:auto!important}.profile-avatar-large{object-fit:cover;width:80px;height:80px;box-shadow:var(--shadow-lg);border:3px solid #fff;border-radius:50%;margin-bottom:.75rem}.profile-title{text-align:center}.profile-title h3{color:var(--text-primary);margin:0;font-size:1.25rem}.profile-status{color:var(--text-secondary);background:#f1f5f9;border-radius:999px;margin-top:.25rem;padding:.2rem .5rem;font-size:.875rem;display:inline-block}.profile-body .edit-form{flex-direction:column;gap:1rem;display:flex}.profile-body label{color:var(--text-secondary);flex-direction:column;gap:.25rem;font-size:.875rem;display:flex}.profile-body input,.profile-body textarea{border-radius:var(--radius-lg);border:1px solid #e2e8f0;padding:.75rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.profile-body input:focus,.profile-body textarea:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #2563eb1a}.avatar-selector{justify-content:center;gap:1rem;padding:1rem 0;display:flex}.avatar-option{cursor:pointer;object-fit:cover;border:3px solid #0000;border-radius:50%;width:60px;height:60px;transition:all .2s}.avatar-option.selected{border-color:var(--primary-color);transform:scale(1.1);box-shadow:0 4px 6px -1px #2563eb4d}.profile-bio{border-radius:var(--radius-lg);color:var(--text-primary);white-space:pre-wrap;background:#f8fafc;margin-bottom:1.5rem;padding:1rem;font-size:.875rem;line-height:1.6}@keyframes slot-pulse{0%{opacity:.8;transform:scale(.98)}to{opacity:1;transform:scale(1.02)}}.mode-toggle-container{margin-bottom:.25rem}.mode-toggle{border-radius:var(--radius-lg);background:#f1f5f9;gap:3px;padding:3px;display:flex}.mode-toggle.disabled{opacity:.5;pointer-events:none}.mode-btn{border-radius:calc(var(--radius-lg) - 2px);font-size:var(--ui-font-xs);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:1;padding:clamp(.25rem,.4vw,.5rem);font-weight:600;transition:all .2s}.mode-btn.active{color:var(--primary-color);background:#fff;box-shadow:0 1px 3px #0000001a}.mode-btn:disabled{cursor:not-allowed}.timer-slot{position:relative}.countdown-input-container{border-radius:var(--radius-lg);background:#f8fafc;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.timer-filler{justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;inset:0}.timer-filler-icon{font-size:1.5rem}@keyframes timer-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.countdown-label{font-size:var(--ui-font-xs);color:var(--text-secondary);white-space:nowrap;font-weight:600}.countdown-input{width:clamp(48px,5vw,72px);font-size:var(--ui-font-base);text-align:center;color:var(--primary-color);background:#fff;border:1px solid #e2e8f0;border-radius:clamp(5px,.6vw,8px);padding:clamp(.2rem,.3vw,.4rem) clamp(.3rem,.4vw,.5rem);font-family:Inter,sans-serif;font-weight:700;transition:border-color .2s}.countdown-input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #2563eb1a}.countdown-input::-webkit-inner-spin-button{appearance:none;margin:0}.countdown-input::-webkit-outer-spin-button{appearance:none;margin:0}.countdown-input[type=number]{appearance:textfield}.finished-badge{color:#fff;font-size:var(--ui-font-xs);letter-spacing:.05em;background:linear-gradient(135deg,#10b981,#059669);border-radius:999px;margin-left:clamp(.2rem,.4vw,.5rem);padding:.1rem clamp(.2rem,.4vw,.5rem);font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) badge-pop;display:inline-block}@keyframes badge-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.hud-panel{top:var(--ui-edge);left:var(--ui-edge);z-index:10;background:var(--surface-glass);-webkit-backdrop-filter:blur(20px);padding:var(--ui-pad-inner)var(--ui-pad);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg),0 0 0 1px #ffffff26 inset;cursor:default;min-width:clamp(180px,20vw,340px);max-width:clamp(220px,28vw,440px);color:var(--text-primary);font-family:Noto Sans JP,sans-serif;transition:transform .2s;position:absolute}.hud-panel:active{transform:scale(.98)}.hud-hero{border-bottom:1px solid #0000000f;flex-direction:column;gap:.1rem;margin-bottom:clamp(.3rem,.6vw,.8rem);padding-bottom:clamp(.3rem,.6vw,.8rem);display:flex}.hud-hero-label{font-size:var(--ui-font-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.hud-hero-value{font-size:var(--ui-font-lg);color:var(--text-primary);font-weight:800;line-height:1.3}.hud-grid{flex-direction:column;gap:0;display:flex}.hud-grid-row{border-bottom:1px solid #0000000a;justify-content:space-between;align-items:center;padding:clamp(.15rem,.3vw,.4rem) 0;display:flex}.hud-grid-row:last-child{border-bottom:none}.hud-grid-row-highlight{margin:0 calc(-1*var(--ui-pad));padding:clamp(.2rem,.4vw,.5rem)var(--ui-pad);background:#2563eb0a;border-bottom:1px solid #0000000a}.hud-divider{border:none;border-top:2px solid #0000001a;height:0;margin:.3rem 0}.hud-grid-label{font-size:var(--ui-font-sm);color:var(--text-secondary);white-space:nowrap;flex-shrink:0;min-width:clamp(3rem,5vw,5rem);font-weight:500}.hud-grid-value{font-size:var(--ui-font-sm);color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;gap:clamp(.2rem,.3vw,.4rem);font-weight:600;display:flex}.hud-grid-value-primary{font-size:var(--ui-font-lg);color:var(--primary-color);font-weight:800}.hud-remaining-badge{font-size:var(--ui-font-xs);color:var(--primary-color);white-space:nowrap;background:#2563eb14;border-radius:999px;padding:.1rem clamp(.2rem,.3vw,.45rem);font-weight:600}.left-panel{top:var(--ui-edge);left:var(--ui-edge);z-index:9;pointer-events:none;scrollbar-width:none;-ms-overflow-style:none;width:clamp(180px,22vw,400px);max-height:calc(100dvh - clamp(240px,28vw,420px));margin-top:clamp(180px,22vw,340px);position:absolute;overflow-y:auto}.left-panel::-webkit-scrollbar{display:none}.left-panel>*{pointer-events:auto}.bgm-player{bottom:calc(clamp(1.5rem,2vw,2.5rem) + env(safe-area-inset-bottom,0px) + clamp(180px,22vw,320px) + .75rem);right:var(--ui-edge);z-index:11;background:var(--surface-glass);-webkit-backdrop-filter:blur(14px);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid #fff9;flex-direction:column;gap:.55rem;width:clamp(180px,20vw,300px);padding:.7rem .9rem;display:flex;position:absolute}@supports (-webkit-touch-callout:none){.bgm-player{bottom:calc(clamp(1.5rem,2vw,2.5rem) + env(safe-area-inset-bottom,0px) + clamp(180px,22vw,320px) + .75rem + 100px)}}.bgm-track-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;text-align:center;letter-spacing:.02em;padding:0 .25rem;font-size:.75rem;font-weight:600;overflow:hidden}.bgm-progress-row{align-items:center;gap:.4rem;display:flex}.bgm-time{color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;min-width:2em;font-size:.58rem}.bgm-time:last-child{text-align:right}.bgm-progress-bar{background:#0000001a;border-radius:2px;flex:1;height:3px;overflow:hidden}.bgm-progress-fill{background:var(--text-primary);border-radius:2px;height:100%;transition:width .3s linear}.bgm-controls{justify-content:center;align-items:center;gap:.5rem;display:flex}.bgm-ctrl-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;font-size:1rem;transition:all .15s;display:flex}.bgm-ctrl-btn:hover{background:#0000000f;transform:scale(1.1)}.bgm-ctrl-btn:active{transform:scale(.92)}.bgm-menu-btn{font-size:1.15rem;font-weight:700}.bgm-menu-btn.active{background:#00000014}.bgm-repeat-btn:hover{background:0 0;transform:none}.bgm-repeat-icon{opacity:.4;width:1rem;height:1rem;transition:opacity .15s}.bgm-repeat-active .bgm-repeat-icon{opacity:1}.bgm-repeat-active{background:#2563eb1a!important}.bgm-play-btn{background:var(--text-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.8rem;height:2.8rem;font-size:1rem;transition:all .15s;display:flex;box-shadow:0 2px 8px #00000026}.bgm-play-btn:hover{background:#0f172a;transform:scale(1.08)}.bgm-play-btn:active{transform:scale(.94)}.bgm-play-btn.playing{background:var(--text-primary);box-shadow:0 2px 12px #0003}.bgm-playlist{background:#00000005;border-top:1px solid #0000000f;border-radius:10px;flex-direction:column;gap:1px;padding:.25rem;animation:.18s bgm-menu-in;display:flex}@keyframes bgm-menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.bgm-playlist-item{cursor:pointer;color:var(--text-secondary);text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.7rem;transition:all .12s;display:flex}.bgm-playlist-item:hover{color:var(--text-primary);background:#0000000d}.bgm-playlist-item.active{color:var(--primary-color);background:#2563eb14;font-weight:600}.bgm-playlist-indicator{text-align:center;opacity:.5;flex-shrink:0;width:1.1em;font-size:.6rem}.bgm-playlist-item.active .bgm-playlist-indicator{opacity:1;color:var(--primary-color)}.bgm-playlist-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width:768px){.bgm-player{display:none}}.timer-panel{bottom:calc(clamp(1.5rem,2vw,2.5rem) + env(safe-area-inset-bottom,0px));right:var(--ui-edge);z-index:10;background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);padding:var(--ui-pad);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);gap:var(--ui-gap-lg);flex-direction:column;width:clamp(180px,22vw,360px);min-height:auto;display:flex;position:absolute}@supports (-webkit-touch-callout:none){.timer-panel{bottom:calc(clamp(1.5rem,2vw,2.5rem) + env(safe-area-inset-bottom,0px) + 100px)}}.todo-panel{background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);padding:var(--ui-pad-inner);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.todo-header{margin-bottom:var(--ui-gap);justify-content:space-between;align-items:center;display:flex}.todo-title{font-size:var(--ui-font-sm);color:var(--text-primary);font-weight:700}.todo-count{background:var(--primary-gradient);color:#fff;font-size:var(--ui-font-xs);text-align:center;border-radius:999px;min-width:clamp(14px,1.5vw,20px);padding:.1rem clamp(.25rem,.4vw,.5rem);font-weight:700}.todo-input-row{margin-bottom:.5rem;display:flex}.todo-input{font-size:var(--ui-font-sm);background:#fff;border:1px solid #e2e8f0;border-radius:clamp(5px,.6vw,8px);flex:1;padding:clamp(.25rem,.4vw,.5rem) clamp(.4rem,.6vw,.75rem);font-family:inherit;transition:border-color .2s}.todo-input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 2px #2563eb1a}.todo-input::placeholder{color:#94a3b8}.todo-list{scrollbar-width:thin;flex-direction:column;gap:.25rem;max-height:400px;display:flex;overflow:hidden auto}.todo-drag-handle{cursor:grab;opacity:.8;touch-action:none;background:#2563eb1a;border-radius:4px;flex-shrink:0;align-items:center;margin-right:.5rem;padding:.2rem .4rem;font-size:1.1rem;line-height:1;transition:all .2s;display:flex}.todo-drag-handle:hover{opacity:1;color:var(--text-secondary)}.todo-drag-handle:active{cursor:grabbing}.todo-item{background:#fff;border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;padding:.35rem .5rem;transition:background .2s,box-shadow .2s;display:flex}.todo-item:hover{background:#00000008}.todo-item-done{opacity:.6}.todo-checkbox-label{cursor:pointer;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.todo-checkbox{width:16px;height:16px;accent-color:var(--primary-color);cursor:pointer;flex-shrink:0}.todo-text{font-size:var(--ui-font-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.todo-text-done{color:var(--text-secondary);text-decoration:line-through}.todo-remove{color:#94a3b8;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 .25rem;font-size:1.1rem;line-height:1;transition:color .2s}.todo-remove:hover{color:#ef4444}.todo-done-toggle{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;padding:.35rem .5rem;font-size:.75rem;font-weight:500;transition:color .2s}.todo-done-toggle:hover{color:var(--text-primary)}.todo-empty{text-align:center;color:var(--text-secondary);padding:1rem;font-size:.8rem}.toast-container{z-index:999;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;top:1.5rem;left:50%;transform:translate(-50%)}.toast-item{color:#fff;border-radius:var(--radius-lg);font-size:var(--ui-font-sm);pointer-events:auto;white-space:nowrap;background:linear-gradient(135deg,#1e293b 0%,#334155 100%);padding:clamp(.4rem,.6vw,.75rem) clamp(.75rem,1.2vw,1.5rem);font-family:Noto Sans JP,sans-serif;font-weight:600;animation:.3s cubic-bezier(.34,1.56,.64,1) toast-in,.3s ease-out 3.5s forwards toast-out;box-shadow:0 10px 25px #0003}@keyframes toast-in{0%{opacity:0;transform:translateY(-20px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-10px)scale(.95)}}.milestone-marker{cursor:default;flex-direction:column;align-items:center;transition:transform .3s,filter .3s;display:flex}.milestone-marker .milestone-flag{filter:grayscale(.6)opacity(.5);font-size:1.5rem;transition:filter .3s}.milestone-marker .milestone-label{color:#64748b;white-space:nowrap;background:#ffffffd9;border-radius:4px;margin-top:-2px;padding:.1rem .3rem;font-family:Inter,sans-serif;font-size:.65rem;font-weight:700}.milestone-marker.reached .milestone-flag{filter:grayscale(0)opacity();animation:.5s cubic-bezier(.34,1.56,.64,1) flag-celebrate}.milestone-marker.reached .milestone-label{color:#ea580c;background:#ffedd5e6;font-weight:800}@keyframes flag-celebrate{0%{transform:scale(1)}50%{transform:scale(1.5)}to{transform:scale(1)}}.mobile-sheet-toggle{z-index:15;background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);color:var(--primary-color);cursor:pointer;text-align:center;border:none;border-top:1px solid #00000014;padding:.75rem;font-family:Noto Sans JP,sans-serif;font-size:.9rem;font-weight:600;display:none;position:fixed;bottom:0;left:0;right:0}.hud-collapsed-btn,.timer-collapsed-btn,.hud-close-btn,.timer-close-btn{display:none}@media (max-width:768px){.hud-collapsed-btn,.timer-collapsed-btn{z-index:12;background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);width:44px;height:44px;box-shadow:var(--shadow-lg);cursor:pointer;pointer-events:auto;border:1px solid #ffffff4d;border-radius:12px;justify-content:center;align-items:center;font-size:1.2rem;transition:transform .15s;display:flex;position:absolute}.hud-collapsed-btn:active,.timer-collapsed-btn:active{transform:scale(.92)}.hud-collapsed-btn{top:.75rem;left:.75rem}.timer-collapsed-btn{top:.75rem;right:.75rem}.hud-close-btn,.timer-close-btn{z-index:5;width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:#0000000f;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;transition:background .15s;display:flex;position:absolute;top:.5rem;right:.5rem}.hud-close-btn:active,.timer-close-btn:active{background:#0000001f}.hud-panel.hud-mobile-hidden{display:none}.hud-panel.hud-mobile-visible{min-width:0;max-width:none;padding:2rem 1.2rem 1rem;animation:.2s panel-slide-in;display:block;top:.75rem;left:.75rem;right:.75rem}.hud-panel.hud-mobile-visible~.hud-collapsed-btn,.hud-panel.hud-mobile-visible+.hud-collapsed-btn,.timer-panel.timer-mobile-hidden{display:none}.timer-panel.timer-mobile-visible{width:auto;max-width:none;padding:2rem 1rem 1rem;animation:.2s panel-slide-in;display:flex;inset:.75rem .75rem auto}@keyframes panel-slide-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.timer-mobile-visible~.timer-collapsed-btn,.map-controls,.mobile-sheet-toggle,.left-panel{display:none}}.mypage-overlay{z-index:400;-webkit-backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.mypage-modal{border-radius:var(--radius-xl);background:#fff;flex-direction:column;width:100%;max-width:900px;height:min(80vh,100vh - 2rem);animation:.25s cubic-bezier(.34,1.56,.64,1) mypage-in;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}@keyframes mypage-in{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.mypage-header{border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.mypage-title{color:var(--text-primary);margin:0;font-size:1.2rem;font-weight:700}.mypage-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.25rem .5rem;font-size:1.1rem;transition:background .2s,color .2s}.mypage-close:hover{color:var(--text-primary);background:#f1f5f9}.mypage-body{flex:1;min-height:0;display:flex;overflow:hidden}.mypage-tabs{background:#f8fafc;border-right:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;gap:.25rem;width:140px;padding:.75rem 0;display:flex}.mypage-tab-btn{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:.5rem;padding:.65rem 1rem;font-family:Noto Sans JP,sans-serif;font-size:.85rem;font-weight:500;transition:all .2s;display:flex}.mypage-tab-btn:hover{color:var(--text-primary);background:#00000008}.mypage-tab-btn.active{color:var(--primary-color);border-left-color:var(--primary-color);background:#fff;font-weight:600;box-shadow:1px 0 3px #0000000d}.mypage-tab-icon{font-size:1rem}.mypage-tab-label{white-space:nowrap}.mypage-content{flex:1;padding:1.5rem;overflow-y:auto}.report-tab{flex-direction:column;gap:1.5rem;display:flex}.report-totals{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.report-total-card{border-radius:var(--radius-lg);background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;flex-direction:column;align-items:center;gap:.3rem;padding:1.25rem;display:flex}.report-total-value{color:var(--primary-color);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800}.report-total-label{color:var(--text-secondary);font-size:.8rem;font-weight:500}.report-section{flex-direction:column;gap:.75rem;display:flex}.report-section-title{color:var(--text-primary);border-bottom:2px solid #e2e8f0;margin:0;padding-bottom:.3rem;font-size:.95rem;font-weight:700}.report-table{border-collapse:collapse;width:100%;font-size:.85rem}.report-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e2e8f0;padding:.5rem .75rem;font-size:.75rem;font-weight:600}.report-table td{color:var(--text-primary);border-bottom:1px solid #f1f5f9;padding:.5rem .75rem}.report-table tbody tr:hover{background:#f8fafc}.report-today td{background:#2563eb0a;font-weight:600}.report-table tfoot td{border-top:2px solid #e2e8f0;border-bottom:none;padding-top:.6rem}.report-calendar-nav{justify-content:center;align-items:center;gap:1rem;display:flex}.report-cal-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:1px solid #e2e8f0;border-radius:6px;padding:.25rem .6rem;font-size:.85rem;transition:all .2s}.report-cal-btn:hover{color:var(--text-primary);background:#f1f5f9}.report-cal-month{color:var(--text-primary);text-align:center;min-width:100px;font-size:.95rem;font-weight:600}.report-calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.report-cal-header{text-align:center;color:var(--text-secondary);padding:.4rem 0;font-size:.7rem;font-weight:600}.report-cal-cell{text-align:center;cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:36px;padding:.5rem .25rem;transition:background .15s;display:flex;position:relative}.report-cal-cell.empty{cursor:default}.report-cal-cell:not(.empty):hover{background:#f1f5f9}.report-cal-cell.today{background:#2563eb0f;font-weight:700}.report-cal-cell.selected{background:var(--primary-color);color:#fff}.report-cal-cell.selected .report-cal-dot{background:#fff}.report-cal-day{font-size:.8rem;line-height:1}.report-cal-dot{background:var(--primary-color);border-radius:50%;width:5px;height:5px}.report-day-detail{border-radius:var(--radius-lg);background:#f8fafc;border:1px solid #e2e8f0;margin-top:.5rem;padding:.75rem 1rem}.report-day-detail-header{color:var(--text-primary);margin-bottom:.3rem;font-size:.85rem;font-weight:600}.report-day-detail-body{color:var(--text-secondary);flex-wrap:wrap;gap:1rem;font-size:.8rem;display:flex}.settings-tab{flex-direction:column;gap:1.5rem;display:flex}.settings-group{flex-direction:column;gap:.6rem;display:flex}.settings-group-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #0000000f;margin:0;padding-bottom:.3rem;font-size:.8rem;font-weight:700}.settings-card{border-radius:var(--radius-lg);background:#fff9;border:1px solid #0000000f;flex-direction:column;gap:.6rem;padding:.8rem 1rem;display:flex}.settings-card-highlight{background:#2563eb0a;border-color:#2563eb26}.settings-card-header{flex-direction:column;gap:.15rem;display:flex}.settings-section{flex-direction:column;gap:.5rem;display:flex}.settings-section-title{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:700}.settings-section-desc{color:var(--text-secondary);margin:0;font-size:.8rem}.account-email-display{color:var(--text-primary);letter-spacing:.01em;font-size:.88rem;font-weight:600}.account-route-stats{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.25rem;display:grid}.account-route-stat{border-radius:var(--radius-lg);background:#2563eb0a;flex-direction:column;gap:.1rem;padding:.5rem .6rem;display:flex}.account-route-stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600}.account-route-stat-value{color:var(--primary-color);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:700}.settings-coming-soon{opacity:.5;font-style:italic}.room-status-bar{z-index:200;-webkit-backdrop-filter:blur(8px);color:#e2e8f0;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0f172ad9;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:4px;padding:4px 14px;font-size:.75rem;font-weight:600;display:flex;position:fixed;top:10px;left:50%;transform:translate(-50%)}.room-status-id{color:#93c5fd;letter-spacing:.05em;font-family:SF Mono,Fira Code,monospace}.room-status-divider{opacity:.4;font-size:.65rem}.room-status-count{color:#86efac}.settings-toggle-group{gap:.5rem;display:flex}.settings-toggle-btn{border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;background:#fff;border:1px solid #e2e8f0;padding:.5rem 1.25rem;font-family:Noto Sans JP,sans-serif;font-size:.85rem;font-weight:600;transition:all .2s}.settings-toggle-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.settings-toggle-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.settings-action-btn{border-radius:var(--radius-lg);background:var(--primary-gradient);color:#fff;cursor:pointer;white-space:nowrap;opacity:.95;border:none;align-self:flex-start;padding:.5rem 1.5rem;font-family:Noto Sans JP,sans-serif;font-size:.85rem;font-weight:600;transition:all .2s}.settings-action-btn:hover{opacity:.9;transform:translateY(-1px)}.settings-action-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.settings-logout-btn{border-radius:var(--radius-lg);color:#ef4444;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #fca5a5;align-self:flex-start;padding:.5rem 1.5rem;font-family:Noto Sans JP,sans-serif;font-size:.85rem;font-weight:600;transition:all .2s}.settings-logout-btn:hover{background:#fef2f2;border-color:#ef4444;transform:translateY(-1px)}.settings-room-input-row{align-items:center;gap:.5rem;display:flex}.settings-room-input{border-radius:var(--radius-lg);text-align:center;letter-spacing:.2em;width:5rem;color:var(--text-primary);background:#fff;border:1px solid #e2e8f0;padding:.4rem .6rem;font-family:Inter,monospace;font-size:.8rem;font-weight:700;transition:border-color .2s}.settings-room-input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #2563eb1a}.settings-room-current{color:var(--text-secondary);margin:.2rem 0 0;font-size:.75rem}@media (max-width:768px){.mypage-modal{border-radius:16px;max-width:none;max-height:95vh}.mypage-body{flex-direction:column}.mypage-tabs{border-bottom:1px solid #e2e8f0;border-right:none;flex-direction:row;gap:0;width:100%;padding:.5rem;overflow-x:auto}.mypage-tab-btn{border-bottom:3px solid #0000;border-left:none;flex:1;justify-content:center;padding:.5rem .75rem;font-size:.8rem}.mypage-tab-btn.active{border-left-color:#0000;border-bottom-color:var(--primary-color);box-shadow:none}.mypage-content{padding:1rem}.report-totals{grid-template-columns:1fr}}.chat-dock{z-index:20;align-items:center;gap:var(--ui-gap);pointer-events:none;flex-direction:column;width:100%;max-width:clamp(280px,42vw,600px);display:flex;position:absolute;bottom:clamp(.4rem,.6vw,.75rem);left:50%;transform:translate(-50%)}@supports (-webkit-touch-callout:none){.chat-dock{bottom:calc(clamp(.4rem,.6vw,.75rem) + env(safe-area-inset-bottom,0px) + 100px)}}.chat-dock.ui-interactive,.chat-toggle-btn,.chat-content,.chat-bubble-btn{pointer-events:auto}.chat-toggle-btn{background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);font-size:var(--ui-font-xs);color:var(--text-secondary);cursor:pointer;border:1px solid #fff6;border-radius:clamp(12px,1.5vw,20px);padding:clamp(.2rem,.3vw,.4rem) clamp(.5rem,.8vw,1rem);font-weight:600;transition:all .2s;box-shadow:0 4px 6px -1px #0000001a}.chat-toggle-btn:hover{color:var(--primary-color);background:#fff;transform:translateY(-1px)}.chat-content{justify-content:center;width:80%;display:flex;position:relative}.chat-panel{background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-xl);border:1px solid #ffffff4d;flex-direction:column;width:100%;height:clamp(160px,22vw,330px);display:flex;overflow:hidden;box-shadow:0 10px 25px -5px #00000026}.chat-list{padding:var(--ui-pad-inner);gap:var(--ui-gap);scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-item{font-size:var(--ui-font-sm);color:var(--text-primary);gap:var(--ui-gap);align-items:baseline;line-height:1.4;animation:.3s ease-out fade-slide-up;display:flex}.chat-name{font-weight:700;font-size:var(--ui-font-xs);color:var(--text-secondary);white-space:nowrap}.chat-text{border-radius:0 var(--radius-lg)var(--radius-lg)var(--radius-lg);background:#fff9;padding:clamp(.2rem,.3vw,.4rem) clamp(.4rem,.6vw,.8rem);box-shadow:0 1px 2px #0000000d}.chat-empty-state{text-align:center;font-size:var(--ui-font-sm);color:var(--text-secondary);opacity:.7;flex:1;justify-content:center;align-items:center;display:flex}@keyframes fade-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-bubble-btn{background:var(--primary-gradient);color:#fff;cursor:pointer;z-index:50;border:clamp(2px,.2vw,3px) solid #fff;border-radius:50%;justify-content:center;align-items:center;width:clamp(2.2rem,3vw,3.5rem);height:clamp(2.2rem,3vw,3.5rem);font-size:clamp(.9rem,1.2vw,1.5rem);transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;bottom:clamp(-.75rem,-.5vw,-.5rem);right:clamp(-.75rem,-.5vw,-.5rem);box-shadow:0 8px 16px #2563eb4d}.chat-bubble-btn:hover{transform:scale(1.1)rotate(-5deg);box-shadow:0 12px 20px #2563eb66}.chat-bubble-btn:active{transform:scale(.95)}.chat-bubble-btn:disabled{background:var(--text-secondary);opacity:1;cursor:not-allowed;transform:none}.chat-picker-overlay{z-index:1000;background:0 0;justify-content:center;align-items:center;padding-bottom:20vh;display:flex;position:fixed;inset:0}.chat-picker{-webkit-backdrop-filter:blur(20px);background:#ffffffd9;border-radius:24px;flex-direction:column;gap:1rem;width:90%;max-width:500px;max-height:50vh;padding:1.5rem;animation:.4s cubic-bezier(.34,1.56,.64,1) pop-in-spring;display:flex;box-shadow:0 20px 40px -5px #0000001a,0 10px 15px -3px #0000000d,inset 0 0 0 1px #ffffff80}.chat-picker-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.chat-picker-header h3{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:800}.chat-close-btn{color:var(--text-secondary);cursor:pointer;background:#0000000d;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.25rem;transition:all .2s;display:flex}.chat-close-btn:hover{color:var(--text-primary);background:#0000001a}.chat-picker-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;max-height:calc(60vh - 80px);margin:-.5rem;padding:.5rem;display:grid;overflow-y:auto}.chat-preset-btn{border-radius:var(--radius-lg);font-size:var(--ui-font-sm);color:var(--text-primary);cursor:pointer;text-align:center;background:#fff9;border:1px solid #fff9;justify-content:center;align-items:center;padding:clamp(.5rem,.8vw,1rem) clamp(.4rem,.6vw,.8rem);font-weight:600;transition:all .2s cubic-bezier(.2,.8,.2,1);display:flex;box-shadow:0 2px 4px #00000005}.chat-preset-btn:hover{border-color:var(--primary-color);color:var(--primary-color);background:#fff;transform:translateY(-2px)scale(1.02);box-shadow:0 8px 16px -4px #2563eb26}.chat-preset-btn:active{transform:scale(.96)}.chat-preset-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;background:#f1f5f9;transform:none}@keyframes pop-in-spring{0%{opacity:0;transform:scale(.8)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (max-width:768px){.chat-dock,.chat-bubble-btn{display:none!important}}.ctrl-btn-badged{position:relative}.ctrl-badge{white-space:nowrap;pointer-events:none;border:2px solid #fff;border-radius:20px;padding:2px 7px;font-size:.6rem;font-weight:700;line-height:1.4;transition:transform .2s cubic-bezier(.34,1.56,.64,1);position:absolute;bottom:-8px;left:90%;transform:translate(-50%);box-shadow:0 2px 4px #0003}.ctrl-btn-badged:hover .ctrl-badge{transform:translate(-50%)scale(1.1)}.ctrl-badge-guest{color:#fff;background:#94a3b8}.ctrl-badge-loggedin{color:#fff;background:#22c55e;animation:.4s cubic-bezier(.34,1.56,.64,1) badge-pop}.email-link-overlay{z-index:400;-webkit-backdrop-filter:blur(4px);background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.email-link-modal{background:#fff;border-radius:20px;width:100%;max-width:420px;animation:.35s cubic-bezier(.34,1.56,.64,1) pop-in-spring;overflow:hidden;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #ffffff1a}.email-link-header{background:#f8fafc;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.email-link-title{color:var(--text-primary);font-size:1rem;font-weight:700}.email-link-close{cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:#0000000f;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;transition:all .2s;display:flex}.email-link-close:hover{color:var(--text-primary);background:#0000001f}.email-link-body{flex-direction:column;gap:1rem;padding:1.5rem 1.25rem;display:flex}.email-link-desc{color:var(--text-primary);margin:0;font-size:.9rem;line-height:1.6}.email-link-note{color:var(--text-secondary);font-size:.78rem}.email-link-form{flex-direction:column;gap:.4rem;display:flex}.email-link-label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.email-link-input{width:100%;color:var(--text-primary);box-sizing:border-box;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;padding:.7rem 1rem;font-family:Inter,sans-serif;font-size:.95rem;transition:all .2s}.email-link-input:focus{border-color:var(--primary-color);background:#fff;outline:none;box-shadow:0 0 0 3px #2563eb1f}.email-link-error{color:#ef4444;margin:0;font-size:.78rem}.email-link-send-btn{background:var(--primary-gradient);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:.75rem;font-family:Noto Sans JP,sans-serif;font-size:.95rem;font-weight:700;transition:all .2s}.email-link-send-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 6px 16px #2563eb4d}.email-link-send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.email-link-status{text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:.75rem;padding:1rem 0;font-size:.9rem;display:flex}.email-link-spinner{border:3px solid #e2e8f0;border-top-color:var(--primary-color);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.email-link-success-icon{font-size:2.5rem;animation:.4s cubic-bezier(.34,1.56,.64,1) badge-pop}.email-link-success-title{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:700}.email-link-success-desc{color:var(--text-secondary);margin:0;font-size:.88rem;line-height:1.6}.email-link-done-btn{color:var(--text-secondary);cursor:pointer;background:#f1f5f9;border:none;border-radius:10px;margin-top:.5rem;padding:.6rem 2rem;font-family:Noto Sans JP,sans-serif;font-size:.9rem;font-weight:600;transition:all .2s}.email-link-done-btn:hover{color:var(--text-primary);background:#e2e8f0}@media (max-width:480px){.email-link-modal{border-radius:16px}}
