.form-field{flex-direction:column;gap:4px;display:flex}.form-label{color:var(--color-text-secondary,#6b6b6f);font-size:12px}.form-input{border:1px solid var(--color-border-default,#dddde3);height:44px;color:var(--color-text-primary,#18181b);background:var(--color-bg-secondary,#fff);border-radius:6px;padding:0 12px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-width:2px;border-color:var(--color-accent-primary,#2563eb);outline:none}.form-input-error{border-color:var(--color-error,#dc2626);border-width:2px}.form-error{color:var(--color-error,#dc2626);font-size:12px}.form-input:disabled{opacity:.5;cursor:not-allowed}.btn{letter-spacing:.05em;cursor:pointer;border:none;border-radius:8px;height:44px;padding:0 20px;font-size:13px;font-weight:600;transition:background-color .15s,transform .15s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-accent-primary,#2563eb);color:var(--color-text-inverse,#fff)}.btn-primary:hover:not(:disabled){background:var(--color-accent-primary-hover,#1d4ed8)}.btn-ghost{color:var(--color-accent-primary,#2563eb);border:1px solid var(--color-border-default,#dddde3);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-accent-primary-subtle,#eff6ff)}.btn-danger{background:var(--color-error,#dc2626);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.toast{background:var(--color-bg-elevated,#fff);box-shadow:var(--shadow-lg,0 4px 16px #0000001a);border-left:3px solid var(--color-info,#2563eb);z-index:1000;border-radius:8px;padding:12px 20px;animation:.2s toast-in;position:fixed;top:16px;right:16px}.toast-success{border-left-color:var(--color-success,#16a34a)}.toast-error{border-left-color:var(--color-error,#dc2626)}.toast-warning{border-left-color:var(--color-warning,#d97706)}.toast-exit{opacity:0;transition:opacity .2s}@keyframes toast-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.mfa-input-group{justify-content:center;gap:8px;display:flex}.mfa-input-box{text-align:center;width:44px;height:52px;font-family:var(--font-mono,monospace);border:2px solid var(--color-border-default,#dddde3);background:var(--color-bg-secondary,#fff);color:var(--color-text-primary,#18181b);border-radius:6px;font-size:24px;font-weight:700}.mfa-input-box:focus{border-color:var(--color-accent-neon,#06b6d4);outline:none;box-shadow:0 0 12px #06b6d440}.form-checkbox{flex-direction:column;gap:4px;display:flex}.form-checkbox-label{cursor:pointer;align-items:flex-start;gap:8px;min-height:44px;padding:4px 0;display:flex}.form-checkbox-input{width:20px;height:20px;accent-color:var(--color-accent-primary,#2563eb);cursor:pointer;flex-shrink:0;margin-top:2px}.form-checkbox-text{color:var(--color-text-secondary,#6b6b6f);font-size:13px;line-height:1.5}.form-checkbox-text a{color:var(--color-accent-primary,#2563eb);text-decoration:underline}.form-checkbox-text a:hover{opacity:.8}@media (min-width:640px){.toast{right:24px}}.password-requirements{margin:4px 0 8px}.password-requirements__list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.password-requirements__item{align-items:center;gap:8px;font-size:12px;transition:color .2s;display:flex}.password-requirements__item--met{color:var(--color-success,#16a34a)}.password-requirements__item--unmet{color:var(--color-text-secondary,#6b6b6f)}.password-requirements__icon{justify-content:center;align-items:center;width:14px;font-size:13px;font-weight:700;display:inline-flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
:root{--congestion-1-bg:#e1f5ee;--congestion-1-text:#085041;--congestion-2-bg:#eaf3de;--congestion-2-text:#27500a;--congestion-3-bg:#faeeda;--congestion-3-text:#633806;--congestion-4-bg:#faece7;--congestion-4-text:#712b13;--congestion-5-bg:#fcebeb;--congestion-5-text:#791f1f}[data-app=user][data-theme=dark]{--congestion-1-bg:#0e3d32;--congestion-1-text:#a8e6d4;--congestion-2-bg:#1e3410;--congestion-2-text:#b8d99a;--congestion-3-bg:#3d2808;--congestion-3-text:#e8c487;--congestion-4-bg:#3d1d0e;--congestion-4-text:#e89b80;--congestion-5-bg:#3d1515;--congestion-5-text:#e88a8a}[data-app=admin][data-theme=dark]{--congestion-1-bg:#0a2e25;--congestion-1-text:#6edcba;--congestion-2-bg:#152808;--congestion-2-text:#9ed06e;--congestion-3-bg:#302006;--congestion-3-text:#d4a44e;--congestion-4-bg:#30160a;--congestion-4-text:#d47850;--congestion-5-bg:#300e0e;--congestion-5-text:#d45a5a}.congestion-badge{border-radius:9999px;justify-content:center;align-items:center;font-weight:600;transition:background-color .3s,color .3s;display:inline-flex}.badge-sm{padding:3px 8px;font-size:12px}.badge-md{padding:5px 10px;font-size:13px}.meter-track{background-color:var(--color-bg-tertiary,#f5f3ef);border-radius:4px;width:100%;height:8px;overflow:hidden}.meter-fill{border-radius:4px;height:100%;transition:width .3s,background-color .3s}
.crowd-indicator{justify-content:center;align-items:center;display:inline-flex}.crowd-indicator__people{justify-content:center;align-items:flex-end;display:flex}.crowd-indicator__person{filter:drop-shadow(0 1px 2px #0000001a);transition:margin-left .4s cubic-bezier(.34,1.56,.64,1),opacity .3s;position:relative}.crowd-indicator__svg{display:block}.crowd-indicator--xs .crowd-indicator__person{width:9px;height:13.5px}.crowd-indicator--sm .crowd-indicator__person{width:14px;height:21px}.crowd-indicator--md .crowd-indicator__person{width:20px;height:30px}.crowd-indicator--lg .crowd-indicator__person{width:28px;height:42px}@keyframes crowd-pop-in{0%{opacity:0;transform:scale(0)translateY(8px)}60%{transform:scale(1.1)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.crowd-indicator__person{animation:.4s cubic-bezier(.34,1.56,.64,1) both crowd-pop-in}.crowd-indicator__person:first-child{animation-delay:0s}.crowd-indicator__person:nth-child(2){animation-delay:60ms}.crowd-indicator__person:nth-child(3){animation-delay:.12s}.crowd-indicator__person:nth-child(4){animation-delay:.18s}.crowd-indicator__person:nth-child(5){animation-delay:.24s}
.congestion-button{box-sizing:border-box;cursor:pointer;border:2px solid #0000;border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;min-width:56px;height:68px;padding:4px;transition:transform .15s,box-shadow .15s,border-color .15s,background-color .15s;display:flex}.congestion-button:active:not(:disabled){transform:scale(.95)}.congestion-button:disabled{opacity:.5;cursor:not-allowed}.congestion-button-active{border-color:var(--color-text-primary,currentColor);box-shadow:var(--shadow-neon-active,none)}@media (forced-colors:active){.congestion-button{border-color:buttonface}.congestion-button-active{box-shadow:none;border-color:highlight}}.congestion-button-crowd{justify-content:center;align-items:center;width:100%;height:28px;min-height:28px;display:flex}.congestion-button-label{margin-top:2px;font-size:12px;line-height:1.2}.congestion-button-active .congestion-button-label{font-weight:700}
.heatmap{background:var(--color-bg-secondary,#fff);border:1px solid var(--color-border-subtle,#f0ede8);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex;position:relative}.heatmap__header{justify-content:space-between;align-items:center;gap:8px;display:flex}.heatmap__title{color:var(--color-text-primary,#2c2c2e);margin:0;font-size:16px;font-weight:600}.heatmap__badge{background-color:var(--color-accent-secondary-subtle,#fbf3ec);color:var(--color-accent-secondary,#d4956a);letter-spacing:.02em;border-radius:9999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.heatmap__waiting-wrapper{flex-direction:column;align-items:center;gap:8px;padding:32px 0;display:flex}.heatmap__waiting-icon{opacity:.4;font-size:32px}.heatmap__waiting{color:var(--color-text-secondary,#6b6b6f);text-align:center;margin:0;font-size:14px}.heatmap__grid-wrapper{-webkit-overflow-scrolling:touch;padding-bottom:4px;overflow-x:auto}.heatmap__hour-header{color:var(--color-text-tertiary,#9e9ea3);text-align:center;font-variant-numeric:tabular-nums;justify-content:center;align-items:flex-end;font-size:10px;display:flex}.heatmap__day-label{color:var(--color-text-secondary,#6b6b6f);-webkit-user-select:none;user-select:none;justify-content:flex-end;align-items:center;min-width:40px;height:28px;padding-right:8px;font-size:13px;display:flex}.heatmap__day-label--today{color:var(--color-accent-primary,#3a9e8f);font-weight:600}.heatmap__cell{cursor:pointer;border-radius:5px;width:100%;min-width:26px;height:28px;transition:background-color .2s,transform .1s,box-shadow .1s}.heatmap__cell:hover{z-index:1;transform:scale(1.15);box-shadow:0 2px 8px #0000001f}.heatmap__cell:active{transform:scale(1.05)}.heatmap__cell--null{border:1px dashed var(--color-border-subtle,#e8e5df);background-color:#0000;position:relative}.heatmap__cell--null:before{content:"−";color:var(--color-text-tertiary,#8c8c96);opacity:.5;pointer-events:none;justify-content:center;align-items:center;font-size:.75rem;display:flex;position:absolute;inset:0}.heatmap__cell--today-row{border:1px solid var(--color-accent-primary-subtle,#e6f5f2)}.heatmap__tooltip{background:var(--color-bg-elevated,#fff);border:1px solid var(--color-border-default,#e8e5df);z-index:9999;pointer-events:none;white-space:nowrap;border-radius:10px;padding:8px 12px;animation:.15s heatmap-tooltip-in;position:fixed;transform:translate(-50%,-100%);box-shadow:0 6px 20px #00000026}@keyframes heatmap-tooltip-in{0%{opacity:0;transform:translate(-50%,-90%)}to{opacity:1;transform:translate(-50%,-100%)}}.heatmap__tooltip-header{color:var(--color-text-primary,#2c2c2e);margin-bottom:4px;font-size:12px;font-weight:600}.heatmap__tooltip-body{align-items:center;gap:8px;display:flex}.heatmap__tooltip-badge{border-radius:9999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.heatmap__tooltip-level{color:var(--color-text-secondary,#6b6b6f);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.heatmap__tooltip-no-data{color:var(--color-text-tertiary,#9e9ea3);font-size:12px}.heatmap__recommendation{color:var(--color-text-primary,#2c2c2e);background:linear-gradient(135deg, var(--color-accent-primary-subtle,#e6f5f2), var(--color-bg-tertiary,#f5f3ef));border-radius:10px;align-items:center;gap:6px;margin:0;padding:10px 14px;font-size:14px;font-weight:500;display:flex}.heatmap__recommendation-icon{flex-shrink:0;font-size:16px}
.facility-card{border:.5px solid var(--color-border-default,#e8e5df);background:var(--color-bg-secondary,#fff);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:14px;transition:transform .15s,box-shadow .15s;display:flex;position:relative}.facility-card:active{transform:scale(.98)}.facility-card-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.facility-card-icon--closed{background-color:var(--color-bg-tertiary,#f5f3ef);filter:grayscale();opacity:.6}.facility-card-content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.facility-card-name{color:var(--color-text-primary,#2c2c2e);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:16px;font-weight:500;display:flex;overflow:hidden}.facility-card-name-link{color:inherit;text-decoration:none}.facility-card-name-link:after{content:"";position:absolute;inset:0}.facility-card-name-link:focus-visible:after{outline:2px solid var(--color-accent-primary,#007aff);outline-offset:-2px;border-radius:12px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.facility-card-website{width:16px;height:16px;color:var(--color-text-tertiary,#8e8e93);z-index:1;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s;display:inline-flex;position:relative}.facility-card-website:hover{color:var(--color-accent-primary,#007aff)}.facility-card-website svg{width:100%;height:100%}.facility-card-meta{color:var(--color-text-secondary,#6b6b6f);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.facility-card-favorite{cursor:pointer;z-index:1;width:36px;height:36px;color:var(--color-accent-secondary,#d4956a);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:20px;line-height:1;transition:background-color .15s;display:flex;position:relative}.facility-card-favorite:hover{background:var(--color-bg-tertiary,#f5f3ef)}.facility-card--stacked{cursor:default;flex-direction:column;align-items:stretch;gap:12px}.facility-card--stacked:active{transform:none}.facility-card-main{align-items:center;gap:12px;display:flex;position:relative}.facility-card-name-button{font:inherit;color:inherit;text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;padding:0;overflow:hidden}.facility-card-name-button:after{content:"";position:absolute;inset:-14px -14px -12px}.facility-card-name-button:focus-visible{outline:none}.facility-card-name-button:focus-visible:after{outline:2px solid var(--color-accent-primary,#007aff);outline-offset:-2px;border-radius:12px}.facility-card-subtray{z-index:1;background:var(--color-bg-tertiary,#f5f3ef);border-radius:10px;flex-direction:column;gap:2px;padding:3px;display:flex;position:relative}.facility-card--with-footer{flex-direction:column;align-items:stretch;gap:10px}.facility-card--with-footer .facility-card-main{position:static}.facility-card-footer{border-top:1px solid var(--color-border-subtle,#f0ede8);flex-direction:column;gap:8px;padding-top:10px;display:flex}.facility-card--stacked .facility-card-head{flex-direction:column;gap:10px;display:flex;position:relative}.facility-card--stacked .facility-card-head>.facility-card-main{position:static}.facility-card-trailing{border:1px solid var(--color-border-default,#dddde3);cursor:pointer;z-index:1;border-radius:var(--radius-md,8px);width:44px;height:44px;color:var(--color-text-secondary,#6b6b6f);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background-color .15s,color .15s,border-color .15s;display:flex;position:relative}.facility-card-trailing:hover,.facility-card-trailing:focus-visible{background:var(--color-accent-neon-subtle,#ecfeff);color:var(--color-accent-neon,#06b6d4);border-color:var(--color-accent-neon,#06b6d4)}.facility-card-trailing:focus-visible{outline:2px solid var(--color-accent-neon,#06b6d4);outline-offset:1px}
.facility-notice{z-index:1;box-sizing:border-box;width:100%;min-width:0;padding:var(--space-2,8px) var(--space-3,12px);border-radius:var(--radius-sm,8px);background:var(--color-accent-secondary-subtle,#fbf3ec);color:var(--color-text-primary,#2c2c2e);font:inherit;text-align:left;cursor:pointer;transition:box-shadow var(--duration-fast,.15s) var(--easing-default,ease);border:0;align-items:center;gap:8px;margin:0;font-size:13px;line-height:1.45;text-decoration:none;display:flex;position:relative}.facility-notice:before{content:"";position:absolute;inset:-6px 0}.facility-notice:hover{box-shadow:inset 0 0 0 1px var(--color-accent-secondary,#d4956a)}.facility-notice:focus-visible{outline:2px solid var(--color-accent-primary,#3a9e8f);outline-offset:2px}.facility-notice--static{cursor:default}.facility-notice--static:hover{box-shadow:none}.facility-notice__icon{color:var(--color-accent-secondary,#d4956a);flex-shrink:0}.facility-notice__label{flex-shrink:0;font-weight:700}.facility-notice__text{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--color-text-secondary,#6b6b6f);flex:1;overflow:hidden}
.help-link{min-width:44px;min-height:44px;color:var(--color-text-tertiary);border-radius:50%;justify-content:center;align-items:center;transition:color .2s;display:inline-flex}.help-link:hover{color:var(--color-text-secondary)}.help-link:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px;color:var(--color-text-secondary)}.help-link svg{display:block}
.lang-toggle{border:1px solid var(--color-border-default,#e8e5df);background:var(--color-bg-secondary,#fff);cursor:pointer;letter-spacing:.03em;-webkit-tap-highlight-color:transparent;border-radius:9999px;align-items:center;gap:2px;padding:4px 10px;font-size:12px;font-weight:600;line-height:1;transition:border-color .2s,box-shadow .2s;display:inline-flex}.lang-toggle:hover{border-color:var(--color-accent-primary,#3a9e8f);box-shadow:0 0 0 2px var(--color-accent-primary-subtle,#e6f5f2)}.lang-toggle:active{transform:scale(.96)}.lang-toggle__option{color:var(--color-text-tertiary,#9e9ea3);transition:color .2s}.lang-toggle__option--active{color:var(--color-accent-primary,#3a9e8f)}.lang-toggle__divider{color:var(--color-border-default,#e8e5df);font-weight:400}
.mfa-method-choice{gap:var(--space-4,16px);flex-direction:column;display:flex}.mfa-method-choice__title{font:var(--text-heading-md,600 18px / 1.3 sans-serif);color:var(--color-text-primary,#111827);margin:0}.mfa-method-choice__description{color:var(--color-text-secondary,#4b5563);margin:0;font-size:14px;line-height:1.6}.mfa-method-choice__options{gap:var(--space-3,12px);flex-direction:column;display:flex}.mfa-method-choice__error{color:var(--color-danger,#dc2626);margin:0;font-size:13px}.mfa-method-card{gap:var(--space-2,8px);padding:var(--space-4,16px);border:1px solid var(--color-border-default,#d1d5db);border-radius:var(--radius-lg,12px);background:var(--color-bg-secondary,#fff);font:inherit;color:inherit;text-align:left;cursor:pointer;appearance:none;flex-direction:column;transition:border-color .16s,box-shadow .16s,transform .12s,background-color .16s;display:flex;position:relative}.mfa-method-card:focus-visible{outline:2px solid var(--color-primary,#0284c7);outline-offset:2px}.mfa-method-card:disabled{cursor:not-allowed}.mfa-method-card[data-pending=true]{border-color:var(--color-primary,#0284c7);background:var(--color-primary-soft,#38bdf814)}.mfa-method-card__header{align-items:center;gap:var(--space-2,8px);flex-wrap:wrap;display:flex}.mfa-method-card__icon{font-size:22px;line-height:1}.mfa-method-card__title{font:var(--text-heading-sm,600 16px / 1.3 sans-serif);color:var(--color-text-primary,#111827);flex:auto;margin:0}.mfa-method-card__description{color:var(--color-text-secondary,#4b5563);margin:0;font-size:14px;line-height:1.55}.mfa-method-card__benefit{color:var(--color-text-tertiary,#6b7280);margin:0;font-size:13px;line-height:1.5}.mfa-method-card__badge{letter-spacing:.02em;border-radius:999px;align-items:center;padding:2px 10px;font-size:11px;font-weight:600;display:inline-flex}.mfa-method-card__badge--recommended{background:var(--color-primary-soft,#38bdf826);color:var(--color-primary,#0284c7)}.mfa-method-card__badge--muted{background:var(--color-bg-tertiary,#f3f4f6);color:var(--color-text-tertiary,#6b7280)}.mfa-method-card__note{color:var(--color-text-tertiary,#6b7280);font-size:12px}.mfa-method-card--primary{border-color:var(--color-primary,#0284c7);box-shadow:0 0 0 3px var(--color-primary-soft,#38bdf826);border-width:2px}.mfa-method-card--deemphasized{padding:var(--space-3,12px);border-color:var(--color-border-subtle,#e5e7eb);background:0 0}.mfa-method-card--deemphasized .mfa-method-card__title{font-size:14px}.mfa-method-card--deemphasized .mfa-method-card__description,.mfa-method-card--deemphasized .mfa-method-card__benefit{font-size:12px}.mfa-method-card[data-available=false]{opacity:.6;cursor:not-allowed}@media (hover:hover){.mfa-method-card[data-available]:not([data-available=false]):not(:disabled):hover{border-color:var(--color-primary,#0284c7);transform:translateY(-1px)}}.mfa-method-card[data-available]:not([data-available=false]):not(:disabled):active{background:var(--color-primary-soft,#38bdf814);transform:translateY(0)}
.report-heatmap{--report-heatmap-row:44px;--report-heatmap-cell-min:44px;gap:var(--space-2,8px);font-family:var(--font-sans,inherit);flex-direction:column;display:flex;position:relative}.report-heatmap--compact{--report-heatmap-row:18px;--report-heatmap-cell-min:18px;gap:var(--space-1,4px)}.report-heatmap__grid-wrapper{-webkit-overflow-scrolling:touch;padding-bottom:2px;overflow-x:auto}.report-heatmap__dow-header{color:var(--color-text-secondary,#6b6b6f);text-align:center;-webkit-user-select:none;user-select:none;justify-content:center;align-items:flex-end;font-size:.75rem;font-weight:600;display:flex}.report-heatmap__dow-header--holiday{color:var(--color-accent-secondary,var(--color-text-secondary,#6b6b6f))}.report-heatmap__hour-label{color:var(--color-text-tertiary,#9e9ea3);padding-right:var(--space-1,4px);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;justify-content:flex-end;align-items:center;font-size:.6875rem;display:flex}.report-heatmap__cell{width:100%;min-width:var(--report-heatmap-cell-min);height:var(--report-heatmap-row);border-radius:var(--radius-xs,4px);font-variant-numeric:tabular-nums;cursor:default;color:var(--color-text-primary,#2c2c2e);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;margin:0;padding:0;font-family:inherit;font-size:.75rem;font-weight:600;line-height:1;display:flex}.report-heatmap--compact .report-heatmap__cell{border-radius:calc(var(--radius-xs,4px) / 2);font-size:.5625rem}button.report-heatmap__cell{cursor:pointer;transition:transform var(--duration-fast,.15s) var(--easing-default,ease), box-shadow var(--duration-fast,.15s) var(--easing-default,ease)}button.report-heatmap__cell:hover{z-index:1;box-shadow:var(--shadow-md,0 2px 8px #00000014);transform:scale(1.06)}button.report-heatmap__cell:focus-visible{outline:2px solid var(--color-accent-primary,#2563eb);outline-offset:2px;z-index:1}.report-heatmap__cell--selected{box-shadow:0 0 0 2px var(--color-accent-primary,#2563eb)}@media (prefers-reduced-motion:reduce){button.report-heatmap__cell{transition:none}button.report-heatmap__cell:hover{transform:none}}.report-heatmap__cell--insufficient{background-color:#0000;background-image:repeating-linear-gradient(-45deg, transparent, transparent 3px, color-mix(in srgb, var(--color-text-tertiary,#8c8c96) 35%, transparent) 3px, color-mix(in srgb, var(--color-text-tertiary,#8c8c96) 35%, transparent) 4px);border-color:var(--color-border-subtle,#e8e5df)}.report-heatmap__cell--no-scale{background-color:var(--color-bg-tertiary,#eaeaef);border-color:var(--color-border-default,#dddde3);color:var(--color-text-tertiary,#8c8c96)}.report-heatmap__tooltip{min-height:1.5em;color:var(--color-text-secondary,#6b6b6f);font-variant-numeric:tabular-nums;margin:0;font-size:.75rem}.report-heatmap__legend{gap:var(--space-1,4px) var(--space-3,12px);color:var(--color-text-secondary,#6b6b6f);flex-wrap:wrap;margin:0;padding:0;font-size:.6875rem;list-style:none;display:flex}.report-heatmap__legend-item{align-items:center;gap:var(--space-1,4px);display:inline-flex}.report-heatmap__legend-swatch{border-radius:var(--radius-xs,4px);border:1px solid var(--color-border-subtle,#e8e5df);flex-shrink:0;width:14px;height:14px;display:inline-flex;overflow:hidden}.report-heatmap__legend-swatch--levels{border:none;gap:1px;width:auto}.report-heatmap__legend-level{width:9px;height:14px;display:inline-block}.report-heatmap__legend-level:first-child{border-radius:var(--radius-xs,4px) 0 0 var(--radius-xs,4px)}.report-heatmap__legend-level:last-child{border-radius:0 var(--radius-xs,4px) var(--radius-xs,4px) 0}@media print{.report-heatmap{--report-heatmap-row:var(--report-heatmap-print-row,7mm);--report-heatmap-cell-min:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;gap:3px}.report-heatmap__grid{gap:1.5px}.report-heatmap__grid-wrapper{padding-bottom:0;overflow:visible}.report-heatmap__cell{-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:1px;font-size:8pt}.report-heatmap__cell--off-hours{opacity:1}.report-heatmap__dow-header,.report-heatmap__hour-label,.report-heatmap__legend{color:var(--print-muted,#444);font-size:8pt}.report-heatmap__tooltip{display:none}}
.sub-congestion-updater{border:1px solid var(--color-border-default,#e5e7eb);background:var(--color-bg-secondary,#fff);border-radius:8px;flex-direction:column;gap:12px;padding:12px 16px;display:flex}.sub-congestion-updater-primary{border-color:var(--color-bg-tertiary,#93c5fd);background:var(--color-bg-elevated,#fff)}.sub-congestion-updater-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sub-congestion-updater-icon{flex-shrink:0;font-size:1.25rem}.sub-congestion-updater-name{flex:1;align-items:center;gap:6px;min-width:0;font-weight:600;display:flex}.sub-congestion-updater-primary-badge{background:var(--color-bg-tertiary,#dbeafe);color:var(--color-text-primary,#1e40af);border-radius:4px;padding:2px 6px;font-size:.6875rem;font-weight:600}.sub-congestion-updater-current{color:var(--color-text-secondary,#6b7280);margin-left:auto;font-size:.875rem}.sub-congestion-updater-buttons{flex-wrap:wrap;gap:6px;display:flex}.sub-congestion-updater-footer{color:var(--color-text-secondary,#6b7280);align-items:center;gap:12px;font-size:.75rem;display:flex}.sub-congestion-updater-cooldown{color:var(--color-warning,#b45309);margin-left:auto}.sub-congestion-updater-toast{background:var(--color-bg-tertiary,#d1fae5);color:var(--color-success,#065f46);border-radius:4px;margin:0;padding:6px 10px;font-size:.8125rem}.sub-congestion-updater-error{background:var(--color-bg-tertiary,#fee2e2);color:var(--color-error,#991b1b);border-radius:4px;margin:0;padding:6px 10px;font-size:.8125rem}@media (max-width:640px){.sub-congestion-updater-current{width:100%;margin-left:0}.sub-congestion-updater-buttons{gap:4px}}
.facility-sub-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.facility-sub-chip{border-radius:var(--radius-sm,8px);white-space:nowrap;background:var(--color-bg-tertiary,#f5f3ef);color:var(--color-text-secondary,#6b6b6f);border:1px solid #0000;align-items:center;gap:5px;padding:4px 10px 4px 8px;font-size:12px;font-weight:500;line-height:1.4;display:inline-flex}.facility-sub-chip--l1{background:var(--congestion-1-bg);color:var(--congestion-1-text)}.facility-sub-chip--l2{background:var(--congestion-2-bg);color:var(--congestion-2-text)}.facility-sub-chip--l3{background:var(--congestion-3-bg);color:var(--congestion-3-text)}.facility-sub-chip--l4{background:var(--congestion-4-bg);color:var(--congestion-4-text)}.facility-sub-chip--l5{background:var(--congestion-5-bg);color:var(--congestion-5-text)}.facility-sub-chip__glyph{font-size:13px;line-height:1}.facility-sub-chip__name{text-overflow:ellipsis;max-width:10em;overflow:hidden}.facility-sub-chip--overflow,.facility-card--closed .facility-sub-chip{background:var(--color-bg-tertiary,#f5f3ef);color:var(--color-text-secondary,#6b6b6f);border-color:#0000}.facility-card--closed .facility-sub-chips .crowd-indicator{display:none}
.sub-facility-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sub-facility-list-item{border:1px solid var(--color-border-default,#e5e7eb);background:var(--color-bg-secondary,#fff);border-radius:10px;flex-direction:row;align-items:stretch;gap:8px;padding:0;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.sub-facility-list-item-trigger,.sub-facility-list-item-readonly{text-align:left;font:inherit;color:inherit;background:0 0;border:0;border-radius:10px 0 0 10px;flex-direction:column;flex:1;gap:6px;min-height:44px;padding:10px 12px;display:flex}.sub-facility-list-item-trigger{cursor:pointer}.sub-facility-list-item-trigger:hover{background:var(--color-bg-hover,#f3f4f6)}.sub-facility-list-item-trigger:focus-visible{outline:2px solid var(--color-accent,#1e3a8a);outline-offset:-2px}.sub-facility-list-item--selected{border-color:var(--color-accent,#1e3a8a);box-shadow:0 0 0 1px var(--color-accent,#1e3a8a);background:var(--color-accent-bg,#dbeafe)}.sub-facility-list-item--selected .sub-facility-list-item-trigger:hover{background:var(--color-accent-bg,#dbeafe)}.sub-facility-list-item-header{align-items:center;gap:8px;display:flex}.sub-facility-list-icon{font-size:1.3em;line-height:1}.sub-facility-list-name{color:var(--color-text-primary,#111827);flex:1;min-width:0;font-size:.95rem;font-weight:600}.sub-facility-list-primary-badge{background:var(--color-accent-bg,#dbeafe);color:var(--color-accent,#1e3a8a);border-radius:999px;margin-left:8px;padding:2px 6px;font-size:.7rem;font-weight:500}.sub-facility-list-level{align-items:center;gap:8px;display:flex}.sub-facility-list-updated{color:var(--color-text-secondary,#6b7280);font-size:.8rem}.sub-facility-list-closed{color:var(--color-text-secondary,#6b7280);font-size:.85rem;font-weight:500}.sub-facility-list-favorite{border:1px solid var(--color-border-default,#e5e7eb);cursor:pointer;min-width:44px;min-height:28px;color:var(--color-text-primary,#111827);background:0 0;border-radius:999px;justify-content:center;align-self:center;align-items:center;margin-right:10px;padding:2px 10px;font-size:.95rem;line-height:1;display:inline-flex}.sub-facility-list-favorite[aria-pressed=true]{color:var(--color-warning,#f59e0b);border-color:var(--color-warning,#f59e0b)}.sub-facility-list-favorite:hover{background:var(--color-bg-hover,#f3f4f6)}
.sub-facility-panel{border:1px solid var(--color-border-default,#dddde3);padding:var(--space-4,16px);background:var(--color-bg-secondary,#fff);margin-bottom:var(--space-4,16px);border-radius:8px}.sub-facility-panel-header{margin-bottom:var(--space-3,12px);justify-content:space-between;align-items:center;display:flex}.sub-facility-panel-header-actions{align-items:center;gap:var(--space-4,16px);display:flex}.sub-facility-panel-header h3{font-family:var(--font-sans,"Inter Variable", "Noto Sans JP", system-ui, sans-serif);font-size:var(--text-heading-sm,.9375rem);color:var(--color-text-primary,#18181b);margin:0;font-weight:600}.sub-facility-panel-add-btn{border:1px solid var(--color-border-default,#dddde3);background:var(--color-bg-tertiary,#eaeaef);color:var(--color-text-primary,#18181b);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-body-md,.8125rem);letter-spacing:.02em;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.sub-facility-panel-add-btn:disabled{opacity:.5;cursor:not-allowed}.sub-facility-panel-limit-hint{color:var(--color-text-secondary,#6b6b6f);margin:0 0 8px;font-size:12px}.sub-facility-panel-add-btn:hover{background:var(--color-accent-primary-subtle,#eff6ff);border-color:var(--color-accent-primary,#2563eb);color:var(--color-accent-primary,#2563eb)}.sub-facility-panel-add-btn:focus-visible{outline:2px solid var(--color-accent-neon,#06b6d4);outline-offset:2px}.sub-facility-panel-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sub-facility-panel-item{align-items:center;gap:var(--space-3,12px);border:1px solid var(--color-border-default,#dddde3);background:var(--color-bg-secondary,#fff);border-radius:6px;grid-template-columns:32px 36px 1fr auto;padding:10px 12px;transition:background .12s,border-color .12s,box-shadow .12s;display:grid}.sub-facility-panel-item:hover{background:var(--color-bg-tertiary,#eaeaef)}.sub-facility-panel-item--dragging{border-color:var(--color-accent-neon,#06b6d4);background:var(--color-bg-elevated,#fff);box-shadow:0 0 0 1px var(--color-accent-neon,#06b6d4), 0 4px 12px #06b6d42e;opacity:.95}.sub-facility-panel-item--over{border-color:var(--color-accent-primary,#2563eb)}.sub-facility-panel-handle{width:32px;height:32px;color:var(--color-text-tertiary,#8c8c96);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.sub-facility-panel-handle:hover,.sub-facility-panel-handle:focus-visible{background:var(--color-accent-neon-subtle,#ecfeff);color:var(--color-accent-neon,#06b6d4)}.sub-facility-panel-handle:focus-visible{outline:2px solid var(--color-accent-neon,#06b6d4);outline-offset:1px}.sub-facility-panel-handle:active{cursor:grabbing}.sub-facility-panel-icon{background:var(--color-bg-tertiary,#eaeaef);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.25rem;line-height:1;display:inline-flex}.sub-facility-panel-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-sans);font-size:var(--text-body-lg,.9375rem);color:var(--color-text-primary,#18181b);align-items:center;gap:8px;font-weight:600;display:inline-flex;overflow:hidden}.sub-facility-panel-primary-badge{background:var(--color-accent-neon-subtle,#ecfeff);color:var(--color-accent-neon,#06b6d4);border:1px solid var(--color-accent-neon,#06b6d4);font-family:var(--font-mono,"JetBrains Mono Variable", "Fira Code", ui-monospace, monospace);font-size:var(--text-label,.6875rem);letter-spacing:.08em;text-transform:uppercase;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-weight:600;display:inline-flex}.sub-facility-panel-item-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.sub-facility-panel-icon-btn{width:36px;height:36px;color:var(--color-text-secondary,#5c5c66);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.sub-facility-panel-icon-btn:hover:not(:disabled){background:var(--color-bg-tertiary,#eaeaef);color:var(--color-text-primary,#18181b);border-color:var(--color-border-default,#dddde3)}.sub-facility-panel-icon-btn:focus-visible{outline:2px solid var(--color-accent-neon,#06b6d4);outline-offset:1px}.sub-facility-panel-icon-btn:disabled{opacity:.35;cursor:not-allowed}.sub-facility-panel-icon-btn--primary-on:hover:not(:disabled){background:var(--color-accent-neon-subtle,#ecfeff);color:var(--color-accent-neon,#06b6d4);border-color:var(--color-accent-neon,#06b6d4)}.sub-facility-panel-icon-btn--danger:hover:not(:disabled){color:var(--color-error,#dc2626);border-color:var(--color-error,#dc2626);background:#dc262614}.sub-facility-panel-empty{padding:var(--space-4,16px);text-align:center;color:var(--color-text-secondary,#5c5c66);font-family:var(--font-sans);font-size:var(--text-body-md,.8125rem);margin:0}.sub-facility-panel-error{margin:0 0 var(--space-3,12px) 0;border-left:3px solid var(--color-error,#dc2626);color:var(--color-error,#dc2626);font-family:var(--font-sans);font-size:var(--text-body-md,.8125rem);background:#dc262614;border-radius:4px;padding:8px 12px}@media (max-width:640px){.sub-facility-panel-item{grid-template-rows:auto auto;grid-template-columns:32px 36px 1fr}.sub-facility-panel-item-actions{grid-column:1/-1;justify-content:flex-end}}.sub-facility-panel-dialog-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.sub-facility-panel-dialog{background:var(--color-bg-elevated,#fff);border:1px solid var(--color-border-default,#dddde3);width:100%;max-width:480px;max-height:90vh;box-shadow:0 10px 25px #00000040, 0 0 0 1px var(--color-border-subtle,#eaeaef);border-radius:8px;padding:24px;overflow-y:auto}.sub-facility-panel-dialog h4{font-family:var(--font-sans);font-size:var(--text-heading-md,1.125rem);color:var(--color-text-primary,#18181b);margin:0 0 16px;font-weight:600}.sub-facility-panel-field{flex-direction:column;margin-bottom:12px;display:flex}.sub-facility-panel-field>span{font-family:var(--font-sans);font-size:var(--text-body-md,.8125rem);color:var(--color-text-primary,#18181b);margin-bottom:4px;font-weight:600}.sub-facility-panel-field-note{color:var(--color-text-secondary,#5c5c66);font-weight:400;font-size:var(--text-body-sm,.6875rem)}.sub-facility-panel-field input,.sub-facility-panel-field select{border:1px solid var(--color-border-default,#dddde3);font-family:var(--font-sans);font-size:var(--text-body-lg,.9375rem);background:var(--color-bg-elevated,#fff);color:var(--color-text-primary,#18181b);border-radius:4px;padding:8px 10px}.sub-facility-panel-field input:focus-visible,.sub-facility-panel-field select:focus-visible{outline:2px solid var(--color-accent-neon,#06b6d4);outline-offset:1px;border-color:var(--color-accent-neon,#06b6d4)}.sub-facility-panel-dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.sub-facility-panel-dialog-actions button{border:1px solid var(--color-border-default,#dddde3);background:var(--color-bg-tertiary,#eaeaef);color:var(--color-text-primary,#18181b);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-body-md,.8125rem);border-radius:4px;padding:8px 16px;font-weight:600}.sub-facility-panel-dialog-actions button:last-child{background:var(--color-accent-primary,#2563eb);color:#fff;border-color:var(--color-accent-primary,#2563eb)}.sub-facility-panel-dialog-actions button:last-child:hover:not(:disabled){background:var(--color-accent-primary-hover,#1d4ed8)}.sub-facility-panel-dialog-actions button:disabled{opacity:.5;cursor:not-allowed}