:root{--primary-900:#0f2d4a;--primary-800:#1a3f66;--primary-700:#1e4d7b;--primary-600:#2563a8;--primary-500:#3b82d6;--primary-400:#60a5e8;--primary-100:#e8f2fc;--primary-50:#f4f9ff;--sidebar-bg:linear-gradient(180deg, #1a3f66 0%, #0f2d4a 100%);--sidebar-width:220px;--accent-green:#16a34a;--accent-green-hover:#15803d;--accent-red:#dc2626;--accent-red-hover:#b91c1c;--accent-amber:#d97706;--surface:#fff;--surface-muted:#f8fafc;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#1e293b;--text-muted:#64748b;--text-light:#94a3b8;--shadow-sm:0 1px 2px #0f2d4a0f;--shadow-md:0 4px 12px #0f2d4a14;--shadow-lg:0 12px 32px #0f2d4a1f;--shadow-card:0 8px 24px #0f2d4a1a;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--transition:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--surface-muted);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}.dashboard{flex-direction:column;min-height:100vh;display:flex}.dashboard-header{background:var(--surface);border-bottom:1px solid var(--border);height:56px;box-shadow:var(--shadow-sm);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 24px;display:flex}.dashboard-header .title{color:var(--primary-800);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.dashboard-header .title:before{content:"🚛";font-size:18px}.dashboard-header .logout{cursor:pointer;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);transition:var(--transition);padding:6px 14px;font-family:inherit;font-size:13px}.dashboard-header .logout:hover{background:var(--primary-50);color:var(--primary-700);border-color:var(--primary-400)}.dashboard-body{flex:1;display:flex}.dashboard-sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);flex-shrink:0;padding:16px 0;box-shadow:2px 0 8px #00000014}.sidebar-brand{border-bottom:1px solid #ffffff1a;margin-bottom:8px;padding:0 20px 16px}.sidebar-brand span{color:#fff9;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.sidebar-menu{list-style:none}.sidebar-menu a{color:#ffffffbf;transition:var(--transition);border-left:3px solid #0000;align-items:center;gap:10px;padding:11px 20px;font-size:13px;display:flex}.sidebar-menu a:hover{color:#fff;background:#ffffff14}.sidebar-menu a.active{color:#fff;border-left-color:var(--primary-400);background:#ffffff1f;font-weight:600}.dashboard-content{background:var(--surface-muted);flex:1;padding:24px 28px;overflow-x:auto}.page-header{margin-bottom:20px}.page-header h1{color:var(--primary-800);margin-bottom:4px;font-size:20px;font-weight:700}.page-header p{color:var(--text-muted);font-size:13px}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden}.card-body{padding:20px 24px}.card-header{border-bottom:1px solid var(--border);background:var(--surface-muted);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.card-header h2{color:var(--primary-800);font-size:15px;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--primary-600);color:#fff;box-shadow:0 2px 6px #2563a84d}.btn-primary:hover{background:var(--primary-700);box-shadow:0 4px 10px #2563a859}.btn-success{background:var(--accent-green);color:#fff}.btn-success:hover{background:var(--accent-green-hover)}.btn-outline{background:var(--surface);border:1px solid var(--border-strong);color:var(--text)}.btn-outline:hover{background:var(--primary-50);border-color:var(--primary-400);color:var(--primary-700)}.btn-danger{color:var(--accent-red);background:0 0;padding:4px 10px;font-size:12px}.btn-danger:hover{background:#fef2f2}.btn-link{color:var(--primary-600);background:0 0;padding:4px 10px;font-size:12px}.btn-link:hover{background:var(--primary-50)}.btn-sm{padding:6px 12px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.auth-page{background:linear-gradient(135deg,#0f2d4a 0%,#1a3f66 40%,#2563a8 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.auth-page:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 80%,#60a5e826 0%,#0000 50%),radial-gradient(circle at 80% 20%,#ffffff0d 0%,#0000 40%);position:absolute;inset:0}.auth-wrapper{z-index:1;width:100%;max-width:440px;position:relative}.auth-brand{text-align:center;color:#fff;margin-bottom:28px}.auth-brand .logo{margin-bottom:8px;font-size:40px;display:block}.auth-brand h1{letter-spacing:.02em;font-size:20px;font-weight:700}.auth-brand p{opacity:.75;margin-top:4px;font-size:13px}.auth-card{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg), 0 0 0 1px #ffffff1a;overflow:hidden}.auth-card-header{background:linear-gradient(135deg, var(--primary-700), var(--primary-600));color:#fff;text-align:center;padding:20px 28px}.auth-card-header h2{font-size:17px;font-weight:600}.auth-card-body{padding:28px}.auth-field{margin-bottom:18px}.auth-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.auth-field input,.auth-field select{border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;transition:var(--transition);color:var(--text);padding:11px 14px;font-family:inherit;font-size:14px}.auth-field input:focus,.auth-field select:focus{border-color:var(--primary-500);outline:none;box-shadow:0 0 0 3px #3b82d626}.auth-submit{background:linear-gradient(135deg, var(--primary-600), var(--primary-700));color:#fff;border-radius:var(--radius-md);cursor:pointer;width:100%;transition:var(--transition);border:none;margin-top:8px;padding:13px;font-family:inherit;font-size:15px;font-weight:600;box-shadow:0 4px 12px #2563a859}.auth-submit:hover{transform:translateY(-1px);box-shadow:0 6px 16px #2563a866}.auth-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-footer{text-align:center;color:#fffc;margin-top:20px;font-size:13px}.auth-footer a{color:#fff;text-underline-offset:2px;font-weight:600;text-decoration:underline}.auth-footer a:hover{opacity:.9}.auth-demo{border-radius:var(--radius-md);color:#ffffffb3;background:#ffffff14;border:1px solid #ffffff1f;margin-top:20px;padding:14px;font-size:12px;line-height:1.8}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table thead th{background:var(--primary-50);color:var(--primary-800);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:2px solid var(--border);white-space:nowrap;padding:12px 16px;font-size:12px;font-weight:600}.data-table tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 16px}.data-table tbody tr:hover{background:var(--primary-50)}.data-table tbody tr:last-child td{border-bottom:none}.data-table .actions{align-items:center;gap:4px;display:flex}.data-table input,.data-table select{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;transition:var(--transition);padding:7px 10px;font-family:inherit;font-size:13px}.data-table input:focus,.data-table select:focus{border-color:var(--primary-500);outline:none;box-shadow:0 0 0 2px #3b82d61f}.data-table .new-row td{background:var(--surface-muted);border-top:2px dashed var(--border-strong)}.data-table .id-cell{color:var(--text-muted);width:50px;font-size:12px}.badge{border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.badge-admin{color:#1d4ed8;background:#dbeafe}.badge-member{color:#475569;background:#f1f5f9}.badge-open{color:#15803d;background:#dcfce7}.badge-ordered{color:#4338ca;background:#e0e7ff}.alert{border-radius:var(--radius-md);align-items:center;gap:8px;margin-bottom:16px;padding:12px 16px;font-size:13px;display:flex}.alert-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.alert-success{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.search-panel{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:16px 20px}.search-quick{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;font-size:12px;display:flex}.search-quick a{color:var(--primary-600);cursor:pointer;font-weight:500}.search-quick a:hover{text-decoration:underline}.search-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.search-input{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);min-width:120px;transition:var(--transition);padding:6px 10px;font-family:inherit;font-size:12px}.search-input:focus{border-color:var(--primary-500);outline:none}.search-input-sm{min-width:80px}.search-detail{border-top:1px solid var(--border);margin-top:8px;padding-top:10px}.search-checkboxes{flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.search-footer{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.btn-search{background:var(--accent-green);color:#fff;cursor:pointer;transition:var(--transition);border:none;border-radius:20px;padding:10px 28px;font-family:inherit;font-size:14px;font-weight:600;box-shadow:0 2px 8px #16a34a4d}.btn-search:hover{background:var(--accent-green-hover);transform:translateY(-1px)}.results-header{color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;display:flex}.results-sort{align-items:center;gap:8px;display:flex}.results-sort select{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-family:inherit;font-size:12px}.results-table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-sm);border:1px solid var(--border);font-size:13px;overflow:hidden}.results-table th{background:var(--primary-50);color:var(--primary-800);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:2px solid var(--border);padding:10px 14px;font-size:11px;font-weight:600}.results-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:12px 14px}.results-table tr{cursor:pointer;transition:var(--transition)}.results-table tbody tr:hover{background:var(--primary-50)}.results-table tbody tr:last-child td{border-bottom:none}.result-route{line-height:1.6}.result-route-horizontal{align-items:stretch;gap:0;min-width:0;display:flex}.result-route-horizontal .route-side{flex:1;min-width:0;padding:2px 8px}.result-route-horizontal .route-side.route-from{border-right:1px solid var(--border);padding-right:12px}.result-route-horizontal .route-side.route-to{padding-left:12px}.result-route-horizontal .route-date{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.result-route-horizontal .route-place{color:var(--text-muted);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:11px;display:-webkit-box;overflow:hidden}.result-route-horizontal .route-arrow-col{width:28px;color:var(--text-light);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:300;display:flex}.company-name-cell{color:var(--text);font-size:13px;font-weight:600}.company-name-cell .badge-tag{width:fit-content;margin-top:4px;display:block}.result-arrow{color:var(--text-light);margin:2px 0}.result-price{color:var(--primary-800);font-size:14px;font-weight:700}.result-sub{color:var(--text-muted);font-size:11px}.badge-tag{border-radius:12px;margin-top:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.badge-green{color:#15803d;background:#dcfce7}.badge-blue{color:#1d4ed8;background:#dbeafe}.case-form-grid{flex-direction:column;gap:0;display:flex}.case-form-top{border:1px solid var(--border-strong);border-radius:var(--radius-md) var(--radius-md) 0 0;grid-template-columns:1.2fr 1.2fr .75fr;gap:0;display:grid;overflow:hidden}.case-form-top>.block{border-right:1px solid var(--border)}.case-form-top>.block:last-child{border-right:none}.case-form-top>.block.block-vehicle{min-width:0}.case-form-top>.block.block-vehicle .vehicle-spec-table th,.case-form-top>.block.block-vehicle .vehicle-spec-table td{padding:4px 5px;font-size:12px}.case-form-top>.block:not(.block-vehicle) .location-table th{width:64px}.vehicle-entry-table td span:empty:after{content:" ";min-width:40px;display:inline-block}.vehicle-entry-table td span:not(:has(*)):empty:after{content:" ";min-width:40px;display:inline-block}.block-title{background:var(--primary-50);text-align:center;border-bottom:1px solid var(--border);color:var(--primary-800);padding:8px;font-size:12px;font-weight:600}.location-table,.vehicle-spec-table,.financial-table{border-collapse:collapse;width:100%}.location-table th,.location-table td,.vehicle-spec-table th,.vehicle-spec-table td,.financial-table th,.financial-table td{border-bottom:1px solid var(--border);padding:6px 8px;font-size:13px}.location-table th,.vehicle-spec-table th,.financial-table th{background:var(--surface-muted);text-align:center;width:70px;color:var(--text-muted);font-size:12px;font-weight:600}.location-table tr:last-child th,.location-table tr:last-child td,.vehicle-spec-table tr:last-child th,.vehicle-spec-table tr:last-child td,.financial-table tr:last-child th,.financial-table tr:last-child td{border-bottom:none}.location-table td input,.vehicle-spec-table td input,.financial-table td input{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:5px 8px;font-family:inherit;font-size:13px}.location-table td input:focus,.vehicle-spec-table td input:focus,.financial-table td input:focus{border-color:var(--primary-500);outline:none}.text-readonly{min-height:28px;padding:5px 8px;font-size:13px;display:block}.case-form-schedule{border:1px solid var(--border-strong);border-top:none;grid-template-columns:1fr 1fr;display:grid}.case-form-schedule .schedule-block{border-right:1px solid var(--border);grid-template-columns:80px 1fr 90px 1fr;display:grid}.case-form-schedule .schedule-block:last-child{border-right:none}.case-form-schedule .label-cell{background:var(--surface-muted);text-align:center;border-right:1px solid var(--border);color:var(--text-muted);justify-content:center;align-items:center;padding:8px;font-size:12px;font-weight:600;display:flex}.case-form-schedule .value-cell{border-right:1px solid var(--border);align-items:center;padding:4px 6px;display:flex}.case-form-schedule .value-cell input{border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:5px 8px;font-family:inherit;font-size:13px}.vehicle-entry-label{background:var(--primary-50);text-align:center;border:1px solid var(--border-strong);color:var(--primary-800);border-top:none;padding:8px;font-size:12px;font-weight:600}.vehicle-entry-table{border-collapse:collapse;border:1px solid var(--border-strong);border-top:none;width:100%}.vehicle-entry-table th,.vehicle-entry-table td{border:1px solid var(--border);text-align:center;padding:8px 10px;font-size:13px}.vehicle-entry-table th{background:var(--surface-muted);color:var(--text-muted);font-size:12px;font-weight:600}.vehicle-entry-table td input{border:1.5px solid var(--border);border-radius:var(--radius-sm);text-align:center;width:100%;padding:5px 8px;font-family:inherit;font-size:13px}.case-form-bottom{border:1px solid var(--border-strong);border-radius:0 0 var(--radius-md) var(--radius-md);border-top:none;grid-template-columns:1fr 280px;display:grid;overflow:hidden}.case-form-bottom .remarks{border-right:1px solid var(--border)}.case-form-bottom .remarks .label-cell{background:var(--surface-muted);text-align:center;border-bottom:1px solid var(--border);color:var(--text-muted);padding:8px;font-size:12px;font-weight:600}.case-form-bottom .remarks textarea{resize:vertical;border:none;width:100%;min-height:100px;padding:10px;font-family:inherit;font-size:13px}.case-form-bottom .remarks .readonly-text{min-height:100px;padding:10px;font-size:13px}.notify-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-top:20px;padding:16px 20px}.notify-section .title{color:var(--primary-800);margin-bottom:10px;font-size:13px;font-weight:600}.notify-checkboxes{flex-direction:column;gap:8px;display:flex}.notify-checkboxes label{cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.notify-checkboxes label:hover{background:var(--primary-50)}.status-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:center;gap:12px;margin-top:20px;padding:12px 16px;display:inline-flex}.status-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.status-value{color:var(--primary-700);background:var(--primary-50);border-radius:var(--radius-sm);padding:4px 12px;font-size:14px;font-weight:600}.form-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.apply-prompt{color:var(--primary-800);margin:20px 0 10px;font-size:13px;font-weight:600}.page-toolbar{margin-bottom:16px}.profile-section-bar{background:linear-gradient(135deg, var(--primary-700), var(--primary-600));color:#fff;text-align:center;border-radius:var(--radius-md) var(--radius-md) 0 0;padding:14px;font-size:15px;font-weight:600}.profile-form{background:var(--surface);border:1px solid var(--border);border-radius:0 0 var(--radius-md) var(--radius-md);max-width:480px;box-shadow:var(--shadow-md);border-top:none;margin:0 auto;padding:28px}.profile-form .auth-field{margin-bottom:20px}.complete-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:40px;font-size:14px;line-height:2;display:flex}.complete-icon{margin-bottom:16px;font-size:48px}.auth-form-row{align-items:center;gap:16px;margin-bottom:18px;display:flex}.auth-form-row label{width:120px;color:var(--text-muted);flex-shrink:0;font-size:13px;font-weight:600}.auth-form-row .input{border:1.5px solid var(--border);border-radius:var(--radius-md);flex:1;padding:10px 12px;font-family:inherit;font-size:14px}.auth-actions{justify-content:flex-end;margin-top:20px;display:flex}.auth-link{text-align:center;margin-top:16px;font-size:13px}.auth-link a{color:var(--primary-600);text-decoration:underline}.auth-message{text-align:center;padding:20px 0;line-height:2}.auth-box,.auth-box-wide{width:100%}.auth-title-bar{display:none}@media (width<=768px){.dashboard-sidebar{display:none}.case-form-top,.case-form-bottom,.case-form-schedule{grid-template-columns:1fr}}
