.route-progress[data-v-56d23cef]{position:fixed;inset:0 auto auto 0;width:100%;height:4px;opacity:0;pointer-events:none;z-index:1200;transition:opacity .12s linear}.route-progress.visible[data-v-56d23cef]{opacity:1}.route-progress-label[data-v-56d23cef]{position:fixed;top:68px;left:12px;padding:4px 8px;border-radius:6px;background:#0f172adb;color:#f8fafc;font-size:12px;line-height:1.2;white-space:nowrap}.route-progress-bar[data-v-56d23cef]{position:absolute;top:0;left:0;width:38%;height:100%;background:linear-gradient(90deg,#2563eb,#38bdf8);border-radius:999px;animation:route-progress-slide-56d23cef .9s linear infinite}@keyframes route-progress-slide-56d23cef{0%{transform:translate(-120%)}to{transform:translate(360%)}}.route-spinner-wrap[data-v-264a7d18]{position:fixed;top:12px;right:12px;display:inline-flex;align-items:center;gap:8px;opacity:0;pointer-events:none;z-index:1200;transition:opacity .12s linear}.route-spinner-wrap.visible[data-v-264a7d18]{opacity:1}.route-spinner-label[data-v-264a7d18]{color:#0f172a;background:#f8fafceb;border:1px solid #cbd5e1;border-radius:6px;padding:3px 8px;font-size:12px;line-height:1.2}.route-spinner[data-v-264a7d18]{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid rgba(37,99,235,.25);border-top-color:#2563eb;animation:route-spinner-rotate-264a7d18 .7s linear infinite}@keyframes route-spinner-rotate-264a7d18{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--bg-page: #f8fafc;--bg-card: #ffffff;--bg-header: #1e293b;--text-main: #0f172a;--text-subtle: #64748b;--border: #e2e8f0;--field-bg: #ffffff;--field-border: #e2e8f0;--field-readonly-bg: #f8fafc;--field-readonly-border: #cbd5e1;--field-disabled-bg: #f1f5f9;--field-disabled-border: #dbe2ea;--field-disabled-text: #94a3b8;--primary: #3b82f6;--success: #16a34a;--warning: #f59e0b;--danger: #ef4444;--info: #0ea5e9}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;color:var(--text-main);background:var(--bg-page)}a{text-decoration:none;color:inherit}.global-nav{position:sticky;top:0;z-index:160;background:#0f172a;border-bottom:1px solid #1e293b}.nav-content{max-width:1680px;margin:0 auto;padding:0 16px;height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px}.nav-left{display:flex;align-items:center;gap:10px;min-width:0}.nav-menu-toggle{border:1px solid #334155;border-radius:8px;padding:7px 10px;color:#e2e8f0;background:#111c31;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;cursor:pointer;line-height:1;transition:background-color .15s ease,border-color .15s ease}.nav-menu-toggle:hover{background:#17233a;border-color:#475569}.nav-menu-toggle-icon{font-size:14px;line-height:1}.nav-brand-text{color:#f8fafc;display:inline-flex;align-items:center;height:24px;font-size:23px;font-weight:600;letter-spacing:.2px;white-space:nowrap;line-height:24px}.nav-divider{color:#64748b;font-size:14px;font-weight:500;line-height:1}.nav-page-title{color:#f8fafc;display:inline-flex;align-items:center;height:20px;font-size:15px;font-weight:600;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.nav-center-btn{border:1px solid #334155;border-radius:8px;padding:7px 10px;background:#111c31;color:#e2e8f0;font-size:12px;font-weight:600;line-height:1;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background-color .15s ease,border-color .15s ease}.nav-center-btn:hover{background:#17233a;border-color:#475569}.nav-center-badge{min-width:18px;height:18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ef4444;color:#fff;font-size:11px;font-weight:700;line-height:1;padding:0 4px}.nav-user-label{color:#cbd5e1;font-size:12px;font-weight:600;line-height:1;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-logout-btn{border:1px solid #334155;border-radius:8px;padding:7px 10px;background:#111c31;color:#e2e8f0;font-size:12px;font-weight:600;line-height:1;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.nav-logout-btn:hover{background:#17233a;border-color:#475569}.nav-logout-btn:focus-visible,.nav-menu-toggle:focus-visible,.nav-center-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.nav-logout-btn:disabled,.nav-menu-toggle:disabled,.nav-center-btn:disabled{opacity:.6;cursor:not-allowed}.layout-shell{position:relative;display:grid;grid-template-columns:240px minmax(0,1fr);min-height:calc(100vh - 64px)}.layout-shell.is-overlay{grid-template-columns:minmax(0,1fr)}.side-nav{background:#0f172a;border-right:1px solid #334155;min-height:calc(100vh - 64px);overflow:auto}.side-nav-menu{display:flex;flex-direction:column;padding:10px 8px;gap:4px}.side-nav-item{color:#94a3b8;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:600;transition:all .2s ease}.side-nav-item:hover{color:#fff;background:#ffffff14}.side-nav-item.active{color:#fff;background:#3b82f640}.side-nav.is-overlay{position:fixed;top:64px;left:0;width:240px;height:calc(100vh - 64px);transform:translate(-100%);transition:transform .2s ease;z-index:130}.side-nav.is-overlay.is-open{transform:translate(0)}.side-nav-backdrop{position:fixed;top:64px;left:0;right:0;bottom:0;border:none;background:#02061766;z-index:120}.main-content{width:100%;padding:24px}.cards-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:16px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid #64748b;border-radius:10px;padding:14px}.stat-card .label{margin:0;color:var(--text-subtle);font-size:13px;font-weight:600}.stat-card .value{margin:6px 0 0;font-size:28px;font-weight:700}.tone-default{border-left-color:#64748b}.tone-success{border-left-color:var(--success)}.tone-warning{border-left-color:var(--warning)}.tone-danger{border-left-color:var(--danger)}.tone-info{border-left-color:var(--info)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}.card-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-title{margin:0;font-size:18px;font-weight:700}.card-body{padding:12px 16px 16px}.table-wrap{overflow:auto;max-height:420px;border:1px solid var(--border);border-radius:8px;background:#fff}.table-wrap thead th{position:sticky;top:0;z-index:1}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}th{background:#f8fafc;color:#334155;font-size:13px}tbody tr:hover{background:#f8fafc}.filters{display:grid;grid-template-columns:1fr 180px;gap:10px;margin-bottom:12px}input,select,textarea,button{font:inherit}input[type=text],input[type=password],input[type=number],input[type=date],textarea,select{width:100%;border:1px solid var(--field-border);background:var(--field-bg);border-radius:8px;padding:8px 10px}textarea{resize:vertical}input[readonly],textarea[readonly]{background:var(--field-readonly-bg);border-color:var(--field-readonly-border);color:#334155}input:disabled,textarea:disabled,select:disabled{background:var(--field-disabled-bg);border-color:var(--field-disabled-border);color:var(--field-disabled-text);cursor:not-allowed}.btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 10px;font-size:13px;cursor:pointer}.btn:disabled,button:disabled{background:var(--field-disabled-bg);border-color:var(--field-disabled-border);color:#64748b;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.actions{display:flex;gap:6px}.status-badge{display:inline-block;border-radius:999px;font-size:12px;font-weight:700;padding:4px 8px}.status-neutral{background:#e2e8f0;color:#334155}.status-warning{background:#fef3c7;color:#92400e}.status-info{background:#dbeafe;color:#1e40af}.status-success{background:#dcfce7;color:#166534}.tag-list{display:flex;gap:6px;flex-wrap:wrap}.tag{padding:4px 8px;border-radius:8px;background:#e2e8f0;color:#334155;font-size:12px;font-weight:700}.split-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px}.selectable-row{cursor:pointer}.selectable-row.is-selected{background:#eff6ff}.tabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.tab-btn{border:1px solid var(--border);border-radius:8px;padding:7px 12px;background:#fff;font-weight:600;color:#334155;cursor:pointer}.tab-btn.active{border-color:var(--primary);color:#fff;background:var(--primary)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.field-label{display:block;margin:0 0 4px;font-size:12px;color:var(--text-subtle);font-weight:700}.inline-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.related-actions-grid{display:grid;gap:8px;margin-top:8px}.related-actions-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.link-btn{border:none;background:transparent;color:var(--primary);cursor:pointer;padding:0;text-decoration:underline}.update-confirm-option{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-subtle);-webkit-user-select:none;user-select:none}.update-confirm-option input[type=checkbox]{margin:0}.hint-text{margin:0;font-size:12px;color:var(--text-subtle)}.validation-errors{margin:0 0 12px;padding:10px 12px;border-radius:10px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b}.validation-errors-title{margin:0 0 6px;font-size:12px;font-weight:700}.validation-errors-list{margin:0;padding-left:18px;font-size:12px;display:grid;gap:3px}.empty-note{margin:0;color:var(--text-subtle);font-size:13px}.deferred-load-note{margin:0 0 10px;font-size:12px;color:var(--text-subtle)}.pagination{margin-top:12px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:nowrap;overflow-x:auto}.pagination-controls{display:flex;gap:8px;align-items:center;flex-wrap:nowrap}.pagination .hint-text,.pagination-controls .hint-text{white-space:nowrap}.pagination-controls select{width:auto;min-width:84px}.toast-layer{position:fixed;right:16px;bottom:16px;z-index:300;display:grid;gap:8px;width:min(360px,calc(100vw - 32px))}.toast-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:10px;border:1px solid var(--border);background:#fff;box-shadow:0 10px 24px #0f172a24;padding:10px 12px;font-size:13px}.toast-success{border-color:#86efac;background:#f0fdf4}.toast-info{border-color:#bae6fd;background:#f0f9ff}.toast-error{border-color:#fecaca;background:#fef2f2}.toast-close{border:none;background:transparent;color:#64748b;cursor:pointer;padding:2px;font-size:15px;line-height:1}.section-title{margin:0 0 8px;font-size:15px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;padding:16px;z-index:200}.modal-card{width:min(720px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border:1px solid var(--border);border-radius:12px}.modal-header,.modal-footer{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.modal-footer{border-top:1px solid var(--border);border-bottom:none;justify-content:flex-end}.modal-submit-hint{margin-right:auto}.modal-title{margin:0;font-size:18px}.modal-body{padding:12px 14px}.login-page{min-height:calc(100vh - 60px);display:grid;place-items:center;padding:20px}.login-shell{min-height:100vh}.auth-nav-content{justify-content:flex-start}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px}.login-title{margin:0;font-size:24px}.login-subtitle{margin:6px 0 14px;color:var(--text-subtle)}.login-btn{margin-top:14px;width:100%}.login-error{margin:10px 0 0;color:var(--danger);font-size:13px}@media(max-width:960px){.nav-content{padding:0 12px;gap:8px}.nav-user-label,.nav-divider{display:none}.nav-page-title{font-size:14px}.nav-menu-toggle{padding:6px 9px}.main-content{padding:14px}.filters,.split-grid,.form-grid{grid-template-columns:1fr}.related-actions-row{align-items:flex-start;flex-direction:column}}
