:root{--primary:#ff4600;--primary-dark:#d93b00;--primary-light:#fff1ec;--navy:#0f3282;--text:#1e2328;--muted:#5b6472;--bg:#f6f6f4;--surface:#fff;--surface-2:#f1f0ed;--zebra:#faf9f7;--offhours:#0f18280d;--border:#e4e3df;--danger:#d6452a;--danger-bg:#fdece7;--success:#0f766e;--success-bg:#e7f5f2;--radius:10px;--shadow-sm:0 1px 2px #1018280a, 0 1px 3px #1018280f;--shadow-md:0 6px 20px #1018281a;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--fs-cap:12px;--fs-sub:13px;--fs-body:14px;--fs-lg:16px;--fs-h2:18px;--fs-h1:20px;--st-reserved-bg:#eef1f8;--st-reserved-fg:#0f3282;--st-onboard-bg:#fdece3;--st-onboard-fg:#b4480c;--st-completed-bg:#e7f5f2;--st-completed-fg:#0f766e;--st-cancelled-bg:#eee;--st-cancelled-fg:#5b6270;--st-aborted-bg:#fdeceb;--st-aborted-fg:#b42318}*{box-sizing:border-box;margin:0;padding:0}html{height:100%;overflow-x:clip}body{max-width:100%;min-height:100%;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums;word-break:auto-phrase;overflow-wrap:break-word;font-family:Yu Gothic,游ゴシック,YuGothic,游ゴシック体,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;line-height:1.6;overflow-x:clip}a{color:inherit;text-decoration:none}.card{background:var(--surface);box-shadow:var(--shadow-sm);border:1px solid #ecebe7;border-radius:12px;padding:24px}.portal-btn{background:0 0;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;text-decoration:none;display:inline-flex;overflow:hidden}.portal-btn:hover{box-shadow:0 0 0 2px var(--primary)}.portal-btn img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.card.add-form{border:1px dashed var(--primary);box-shadow:none;background:#fff8f5}.btn{border-radius:var(--radius);cursor:pointer;background:var(--surface);height:44px;color:var(--text);white-space:nowrap;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:700;transition:transform 80ms,box-shadow .12s,background .12s,border-color .12s;display:inline-flex}.btn:disabled{opacity:.6;cursor:default}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #ff460040}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 3px 8px #ff460047}.btn-outline{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-outline:hover:not(:disabled){background:var(--bg);border-color:#d7d6d1}.btn-sm{height:36px;padding:0 12px;font-size:13px}.btn-lg{border-radius:12px;height:56px;padding:0 22px;font-size:16px}.btn-xl{border-radius:14px;height:64px;padding:0 22px;font-size:18px}.btn-block{width:100%}@media (min-width:641px){.btn-lg{height:48px;font-size:15px}.btn-xl{height:52px;padding:0 20px;font-size:16px}}@keyframes phub-spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite phub-spin}.loading-wrap{color:var(--muted);place-items:center;gap:10px;padding:56px 0;font-size:13px;display:grid}@keyframes releo-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.releo-bob{animation:1s ease-in-out infinite releo-bob}.hint{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5}.stepper{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;display:flex}.stepper .step{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.stepper .step .num{background:var(--bg);width:22px;height:22px;color:var(--muted);border:1px solid var(--border);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.stepper .step.current .num{background:var(--primary);color:#fff;border-color:var(--primary)}.stepper .step.current{color:var(--text);font-weight:700}.stepper .step.done .num{background:var(--success);color:#fff;border-color:var(--success)}.stepper .sep{color:var(--border);font-size:12px}@media (max-width:640px){.stepper .step .label{display:none}.stepper .step.current .label{display:inline}}.toast{max-width:92vw;box-shadow:var(--shadow-md);font-size:var(--fs-body);border-radius:10px;align-items:center;gap:14px;padding:11px 16px;font-weight:700;animation:.18s toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes modal-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.modal-panel{animation:.16s modal-in}@keyframes sk{0%{background-position:-200px 0}to{background-position:200px 0}}.skeleton{background:linear-gradient(90deg,#ededeb 25%,#f6f6f4 37%,#ededeb 63%) 0 0/400px 100%;border-radius:6px;animation:1.2s linear infinite sk}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--muted);font-size:13px;font-weight:700}.field input{border:1px solid var(--border);border-radius:var(--radius);height:44px;color:var(--text);background:#fff;padding:0 12px;font-size:15px}.field input:focus,.field select:focus,.field textarea:focus,input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #ff460026}.field input::placeholder,.field textarea::placeholder{color:#8c8c85}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),textarea{border:1px solid var(--border);border-radius:var(--radius);height:44px;color:var(--text);background:#fff;padding:0 12px;font-size:15px}textarea{height:auto;min-height:88px;padding:10px 12px;line-height:1.6}input::placeholder,textarea::placeholder{color:#8c8c85}.btn:focus-visible,.app-nav a:focus-visible,.tab:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.form-group{border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:14px 16px 16px}.form-group>legend{color:var(--text);align-items:center;gap:5px;padding:0 6px;font-size:13px;font-weight:700;display:inline-flex}.form-group>legend svg{color:var(--primary)}.field-error{color:var(--danger);margin-top:5px;font-size:12px;font-weight:700}.alert-error{color:var(--danger);border-radius:var(--radius);background:#fdecea;border:1px solid #f5c6c0;padding:10px 12px;font-size:14px}.alert-warn{color:#8a5a00;border-radius:var(--radius);background:#fff5e6;border:1px solid #f0c78a;padding:10px 12px;font-size:14px;line-height:1.6}.app-header{z-index:30;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #1018280a}.app-nav{gap:16px;font-size:14px;font-weight:700;display:flex}.app-nav a{white-space:nowrap;color:var(--text);border-bottom:2px solid #0000;padding:4px 2px;transition:color .1s,border-color .1s}.app-nav a:hover{color:var(--primary)}.app-nav a.active{color:var(--primary);border-bottom-color:var(--primary)}.app-header-user{align-items:center;gap:8px;margin-left:auto;font-size:13px;display:flex}.app-header-user .btn{height:30px;padding:0 10px;font-size:13px}.app-main{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:24px}@media (max-width:640px){.app-header{gap:6px;padding:8px 12px}.app-header>a:first-child{flex-basis:100%}.app-header a img{width:auto!important;height:30px!important}.app-header-user{gap:6px;font-size:12px}.impersonate-btn-label{display:none}.impersonate-btn{padding:0 8px!important}.app-header .scope-chip{font-size:12px}.app-nav{white-space:nowrap;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;flex-basis:100%;order:3;gap:14px;padding-bottom:2px;overflow-x:auto}.app-main{padding:14px}.card{padding:16px}h1{font-size:18px!important}}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.app-nav-divider{background:var(--border);flex:none;align-self:stretch;width:1px;margin:0 2px}.sub-nav{top:var(--app-header-h,0px);z-index:20;background:var(--surface);border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;will-change:transform;transition:transform .25s;position:sticky;overflow-x:auto}.sub-nav[data-hidden=true]{transform:translateY(calc(-100% - var(--app-header-h,0px)))}@media (prefers-reduced-motion:reduce){.sub-nav{transition:none}}@keyframes strip-pulse{0%,to{opacity:1}50%{opacity:.45}}.strip-pulse{animation:1.4s ease-in-out infinite strip-pulse}@media (prefers-reduced-motion:reduce){.strip-pulse{animation:none}}.strip-tab{-webkit-tap-highlight-color:transparent}.strip-tab-box{transition:box-shadow .12s;box-shadow:0 2px 4px #00000029}.strip-tab:not(:disabled):hover .strip-tab-box{outline:2px solid var(--primary);outline-offset:-2px;box-shadow:0 4px 10px #0000003d}.strip-tab:not(:disabled):active .strip-tab-box{box-shadow:0 1px 2px #0003}.strip-tab:focus-visible{outline:none}.strip-tab:focus-visible .strip-tab-box{outline:2px solid var(--primary);outline-offset:2px}.strip-tab-veh svg{filter:drop-shadow(0 2px 2px #0000002e);transition:filter .12s}.strip-tab-veh:not(:disabled):hover svg{filter:drop-shadow(0 4px 5px #00000047)}@media (prefers-reduced-motion:reduce){.strip-tab-box,.strip-tab-veh svg{transition:none}}.strip-flow{background-image:linear-gradient(90deg, var(--primary) 0%, var(--primary) 25%, #fff 50%, var(--primary) 75%, var(--primary) 100%);background-size:200% 100%;animation:1.35s linear infinite strip-flow;display:inline-flex}.strip-flow-box{border-radius:12px;margin-bottom:-2px;padding:2px;display:inline-flex}.strip-flow-pill{border-radius:999px;padding:2px;display:inline-flex}@keyframes strip-flow{0%{background-position:200% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.strip-flow{animation:none}}.strip-veh-flow{background-image:linear-gradient(90deg, var(--flow-a) 0%, var(--flow-a) 25%, #fff 50%, var(--flow-a) 75%, var(--flow-a) 100%);background-size:200% 100%;animation:1.35s linear infinite strip-flow;-webkit-mask:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%2010H6%22%2F%3E%3Cpath%20d%3D%22M14%2018V6a2%202%200%200%200-2-2H4a2%202%200%200%200-2%202v11a1%201%200%200%200%201%201h2%22%2F%3E%3Cpath%20d%3D%22M19%2018h2a1%201%200%200%200%201-1v-3.28a1%201%200%200%200-.684-.948l-1.923-.641a1%201%200%200%201-.578-.502l-1.539-3.076A1%201%200%200%200%2016.382%208H14%22%2F%3E%3Cpath%20d%3D%22M8%208v4%22%2F%3E%3Cpath%20d%3D%22M9%2018h6%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2218%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2218%22%20r%3D%222%22%2F%3E%3C%2Fsvg%3E) 50%/contain no-repeat;mask:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%2010H6%22%2F%3E%3Cpath%20d%3D%22M14%2018V6a2%202%200%200%200-2-2H4a2%202%200%200%200-2%202v11a1%201%200%200%200%201%201h2%22%2F%3E%3Cpath%20d%3D%22M19%2018h2a1%201%200%200%200%201-1v-3.28a1%201%200%200%200-.684-.948l-1.923-.641a1%201%200%200%201-.578-.502l-1.539-3.076A1%201%200%200%200%2016.382%208H14%22%2F%3E%3Cpath%20d%3D%22M8%208v4%22%2F%3E%3Cpath%20d%3D%22M9%2018h6%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2218%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2218%22%20r%3D%222%22%2F%3E%3C%2Fsvg%3E) 50%/contain no-repeat}@media (prefers-reduced-motion:reduce){.strip-veh-flow{background-image:none;background-color:var(--flow-a);animation:none}}.strip-dash{pointer-events:none;flex-direction:column;align-items:flex-end;gap:5px;display:flex;position:absolute;top:20px;right:calc(100% + 5px)}.strip-dash i{opacity:.5;background:currentColor;border-radius:999px;height:2px;animation:1.6s ease-out infinite strip-dash;display:block}.strip-dash i:first-child{width:14px}.strip-dash i:nth-child(2){width:9px;animation-delay:.18s}.strip-dash i:nth-child(3){width:16px;animation-delay:.36s}@keyframes strip-dash{0%{opacity:0;transform:translate(5px)}35%{opacity:.65;transform:translate(0)}to{opacity:0;transform:translate(-7px)}}@media (prefers-reduced-motion:reduce){.strip-dash i{opacity:.45;animation:none}}.sub-nav-inner{gap:4px;width:100%;max-width:1040px;margin:0 auto;padding:0 24px;display:flex}.sub-nav a{white-space:nowrap;color:var(--muted);border-bottom:2px solid #0000;padding:10px 14px;font-size:13px;font-weight:700}.sub-nav a:hover{color:var(--primary)}.sub-nav a.active{color:var(--primary);border-bottom-color:var(--primary)}@media (max-width:640px){.sub-nav-inner{padding:0 12px}}.scope-chip{white-space:nowrap;background:var(--surface-2,#f1f5f9);color:var(--text);border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.scope-chip svg{color:var(--muted)}.scope-chip-all{background:color-mix(in srgb, var(--primary) 10%, #fff);color:var(--primary);border-color:color-mix(in srgb, var(--primary) 35%, #fff)}.scope-chip-all svg{color:var(--primary)}.breadcrumbs{color:var(--muted);flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:14px;font-size:13px;display:flex}.breadcrumb-item{align-items:center;gap:2px;display:inline-flex}.breadcrumb-item a{color:var(--muted)}.breadcrumb-item a:hover{color:var(--primary);text-decoration:underline}.breadcrumb-item [aria-current=page]{color:var(--text);font-weight:700}.breadcrumb-sep{color:var(--border)}.tab-bar{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:4px;display:flex;overflow-x:auto}.tab{height:40px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;padding:0 16px;font-size:14px;font-weight:700}.tab:hover{color:var(--text)}.tab-active{color:var(--primary);border-bottom-color:var(--primary)}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:700;line-height:1.7;display:inline-flex}.badge-navy{color:var(--navy);background:#eaf0fb}.badge-orange{background:var(--primary-light);color:var(--primary-dark)}.badge-danger{color:var(--danger);background:#fdecea}.badge-muted{background:var(--bg);color:var(--muted);border:1px solid var(--border)}.badge-success{color:var(--success);background:#e9f7f4}.section-title{border-left:3px solid var(--navy);margin:20px 0 10px;padding-left:10px;font-size:15px;font-weight:700;line-height:1.4}.card table tbody tr:hover,.table-scroll table tbody tr:hover{background:#faf9f7}.empty-state{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:28px 16px;font-size:14px;display:flex}.notice-success{color:var(--success);border-radius:var(--radius);background:#e9f7f4;border:1px solid #b8e6df;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:flex}.arrival-banner{z-index:120;background:var(--surface);border-top:2px solid var(--primary);padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #00000014}.arrival-banner-inner{max-width:1120px;margin:0 auto;padding:6px 16px}.arrival-row{height:26px;color:var(--text);align-items:center;gap:6px;font-size:13px;display:flex}.arrival-row-icon{color:var(--primary);flex:none}.arrival-row-main{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.arrival-row-hospital{color:var(--muted);margin-right:6px}.arrival-row-vehicle{font-weight:700}.arrival-row-time{color:var(--primary);font-variant-numeric:tabular-nums;flex:none;font-weight:700}.arrival-row-at{color:var(--muted);margin-left:4px;font-weight:400}.arrival-row.is-emergency .arrival-row-icon,.arrival-row.is-emergency .arrival-row-time,.arrival-row.is-emergency .arrival-row-vehicle{color:var(--danger)}.arrival-banner-more{cursor:pointer;color:var(--primary);background:0 0;border:none;align-items:center;gap:4px;padding:2px 0;font-size:12px;font-weight:700;display:inline-flex}@media (max-width:480px){.arrival-row-at{display:none}.arrival-banner-inner{padding:6px 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}.arrival-banner-spacer{height:calc(var(--arrival-h,0px) + env(safe-area-inset-bottom,0px));flex:none}
