
:root{--green:#087f5b;--dark:#243b35;--bg:#f4f7f6;--line:#d7e0dd}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Yu Gothic",sans-serif;background:var(--bg);color:#202b28}
.topbar{height:58px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{font-weight:700}.topbar a{color:#fff}
.nav{background:#fff;border-bottom:1px solid var(--line);display:flex;gap:8px;padding:10px 24px;overflow:auto}.nav a{color:#24483e;text-decoration:none;padding:8px 12px;border-radius:6px;white-space:nowrap}.nav a:hover{background:#e8f3ef}
.container{max-width:1800px;margin:auto;padding:18px}.filters,section,.login-card,details,.user-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}
.grid{display:grid;gap:12px}.filters-grid{grid-template-columns:repeat(4,minmax(180px,1fr))}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
label{display:flex;flex-direction:column;gap:5px;font-weight:600}input,select,button{font:inherit;padding:9px;border:1px solid #bfcac7;border-radius:6px}select[multiple]{height:110px}button{cursor:pointer;background:#fff}.primary{background:var(--green);border-color:var(--green);color:#fff}.actions{display:flex;gap:10px;margin-top:14px}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px}.metric b{display:block;font-size:1.35rem}
.workspace{display:grid;grid-template-columns:1fr;gap:16px}.workspace.has-detail{grid-template-columns:minmax(0,2.4fr) minmax(320px,1fr)}.detail-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;position:sticky;top:10px;height:max-content}.hidden{display:none}
.table-wrap{overflow:auto;max-height:70vh;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;background:#fff;font-size:13px}th,td{padding:8px;border-bottom:1px solid #e7ecea;white-space:nowrap;text-align:left}th{position:sticky;top:0;background:#edf4f1;z-index:1}tbody tr:hover{background:#edf8f4;cursor:pointer}tbody tr.selected{background:#d8f1e8}
.detail-tabs{display:flex;gap:6px;margin:10px 0}.detail-tabs button.active{background:var(--green);color:#fff}.detail-section{display:none}.detail-section.active{display:block}.alert{padding:10px;border-radius:6px;margin:10px 0}.error{background:#fde8e8;color:#8a1c1c}.success{background:#def7ec;color:#075e44}.login-card{max-width:420px;margin:60px auto}.login-card form{display:grid;gap:12px}
@media(max-width:900px){.filters-grid,.two-col{grid-template-columns:1fr 1fr}.workspace.has-detail{grid-template-columns:1fr}.detail-panel{position:static}.metrics{grid-template-columns:1fr 1fr}}@media(max-width:600px){.filters-grid,.two-col{grid-template-columns:1fr}.container{padding:10px}}


/* V6 prefecture selector patch */
.pref-field{display:flex;flex-direction:column;gap:5px}
.field-label{font-weight:600}
.pref-open{background:#fff;text-align:left;min-height:42px}
.pref-summary{font-size:.88rem;color:#50625d;min-height:1.3em;line-height:1.4}
.pref-modal{position:fixed;inset:0;background:rgba(20,34,30,.45);display:flex;align-items:center;justify-content:center;padding:16px;z-index:9999}
.pref-modal.hidden{display:none}
.pref-dialog{width:min(980px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 18px 60px rgba(0,0,0,.25);padding:18px}
.pref-dialog-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:10px}
.pref-dialog-header h2{margin:0}
.icon-button{font-size:1.5rem;line-height:1;width:40px;height:40px;padding:0}
.pref-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.region-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.region-buttons button.active,.prefecture-buttons button.active{background:var(--green);color:#fff;border-color:var(--green)}
.prefecture-buttons{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:8px}
.prefecture-buttons button{min-height:42px}
.pref-dialog-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}
body.modal-open{overflow:hidden}
@media(max-width:900px){.prefecture-buttons{grid-template-columns:repeat(4,minmax(80px,1fr))}}
@media(max-width:600px){
  .pref-modal{padding:6px;align-items:flex-end}
  .pref-dialog{width:100%;max-height:95vh;border-radius:14px 14px 0 0;padding:14px}
  .prefecture-buttons{grid-template-columns:repeat(3,1fr)}
  .prefecture-buttons button{padding:10px 4px;font-size:.95rem}
  .pref-dialog-footer{position:sticky;bottom:0;background:#fff;padding-bottom:4px}
}


/* V6 search-result sorting patch */
th.sortable{cursor:pointer;user-select:none;padding-right:18px}
th.sortable:hover{background:#dcebe5}
th.sortable .sort-mark{font-size:.8em;color:var(--green);margin-left:4px}


/* V6.4 free-word search */
.freeword-field{grid-column:span 2}
.freeword-field input{min-height:42px}
@media(max-width:900px){.freeword-field{grid-column:span 2}}
@media(max-width:600px){.freeword-field{grid-column:span 1}}


/* V6.5 column preferences */
.column-modal{position:fixed;inset:0;background:rgba(20,34,30,.45);display:flex;align-items:center;justify-content:center;padding:16px;z-index:10000}
.column-modal.hidden{display:none}
.column-dialog{width:min(620px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:12px;padding:18px;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.column-dialog-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:10px}
.column-dialog-header h2{margin:0}
.column-settings-list{display:grid;gap:8px;margin:14px 0}
.column-setting-row{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff}
.column-visible{display:flex;flex-direction:row;align-items:center;gap:10px;font-weight:600}
.column-order-buttons{display:flex;gap:6px}
.column-order-buttons button{width:42px;padding:7px}
.column-dialog-footer{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.small{font-size:.85rem;color:#65736f}
@media(max-width:600px){
 .column-modal{padding:6px;align-items:flex-end}
 .column-dialog{width:100%;max-height:95vh;border-radius:14px 14px 0 0}
 .column-dialog-footer{position:sticky;bottom:0;background:#fff}
}


/* V6.5.2 save-completion notification */
.app-toast{
 position:fixed;
 left:50%;
 bottom:28px;
 transform:translate(-50%,24px);
 min-width:min(420px,calc(100vw - 32px));
 max-width:720px;
 padding:14px 18px;
 border-radius:9px;
 color:#fff;
 font-weight:700;
 text-align:center;
 opacity:0;
 pointer-events:none;
 z-index:20000;
 transition:opacity .2s ease,transform .2s ease;
 box-shadow:0 10px 30px rgba(0,0,0,.22)
}
.app-toast.success{background:#087f5b}
.app-toast.error{background:#b42318}
.app-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:600px){
 .app-toast{bottom:14px;min-width:calc(100vw - 20px)}
}


/* V6.6 production start */
.company-registration-grid{grid-template-columns:repeat(2,minmax(220px,1fr));margin-bottom:12px}
.company-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px}
.company-card form{display:grid;gap:10px}
.company-stats{font-size:.88rem;color:#566761;background:#f4f7f6;padding:8px;border-radius:6px}
.admin-add-details{margin-top:12px}
.admin-add-details summary{cursor:pointer;font-weight:700}

.drop-zone{
 border:2px dashed #8aa79e;border-radius:12px;padding:28px 18px;
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 gap:8px;background:#f8fbfa;cursor:pointer;text-align:center;transition:.2s
}
.drop-zone:hover,.drop-zone.drag-over{border-color:var(--green);background:#eaf6f1}
.drop-zone.has-file{border-style:solid;border-color:var(--green)}
.drop-zone-icon{font-weight:800;color:var(--green);font-size:1.15rem}
.selected-file-name{font-size:.9rem;color:#40534d;margin-top:4px}
.upload-progress-area{margin:14px 0}
.upload-progress-label{display:flex;justify-content:space-between;margin-bottom:6px}
.upload-progress-track{height:12px;background:#e2e9e6;border-radius:99px;overflow:hidden}
.upload-progress-bar{height:100%;width:0;background:var(--green);transition:width .15s}
.metric small{display:block;font-size:.72rem;color:#687872;margin-top:4px}
@media(max-width:700px){.company-registration-grid{grid-template-columns:1fr}}


/* V6.6.1 upload interaction feedback */
.drop-zone.drag-over{
 border-color:#087f5b;
 background:#dff3ea;
 box-shadow:0 0 0 4px rgba(8,127,91,.12)
}
.drop-zone.drag-over strong::after{
 content:" — ここで離してください";
 color:#087f5b
}


/* V7.0 performance search and saved searches */
.performance-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.performance-workspace:has(.detail-panel:not(.hidden)){grid-template-columns:minmax(0,1fr) minmax(360px,34%)}
#performanceTable tbody tr{cursor:pointer}
#performanceTable tbody tr:hover{background:#e8f5f0}
.performance-contact{padding:10px;border:1px solid var(--line);border-radius:8px;background:#f8fbfa}
.saved-search-modal{position:fixed;inset:0;z-index:12000;background:rgba(20,34,30,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.saved-search-modal.hidden{display:none}
.saved-search-dialog{width:min(520px,95vw);max-height:85vh;overflow:auto;background:#fff;border-radius:12px;padding:16px}
.saved-search-header{display:flex;align-items:center;justify-content:space-between}
.saved-search-list{display:grid;gap:8px;margin-top:12px}
.saved-search-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.saved-search-apply{text-align:left;font-weight:700}
.saved-search-delete{color:#a61b1b}
@media(max-width:900px){
 .performance-workspace:has(.detail-panel:not(.hidden)){grid-template-columns:1fr}
}


/* V7.0.2 current-page visibility and no-scroll vehicle filters */
.nav a{position:relative;white-space:nowrap}
.nav a.active{
 background:#087f5b;
 color:#fff;
 font-weight:800;
 border-bottom-color:#087f5b
}
.nav a.active::after{
 content:"現在";
 display:inline-block;
 margin-left:7px;
 padding:2px 6px;
 border-radius:999px;
 background:#fff;
 color:#087f5b;
 font-size:.7rem;
 vertical-align:middle
}
.page-heading{display:flex;align-items:center;gap:10px;margin:8px 0 18px}
.page-heading h1{margin:0}
.page-heading-marker{width:7px;height:36px;border-radius:5px;background:#087f5b;flex:0 0 auto}

.choice-field{
 min-width:0;
 margin:0;
 padding:10px;
 border:1px solid var(--line);
 border-radius:8px;
 background:#fff
}
.choice-field legend{padding:0 5px;font-weight:700}
.choice-grid{
 display:grid;
 grid-template-columns:repeat(4,minmax(58px,1fr));
 gap:7px
}
.body-choice-field .choice-grid{grid-template-columns:repeat(3,minmax(72px,1fr))}
.choice-item{
 display:block;
 cursor:pointer;
 min-width:0
}
.choice-item input{
 position:absolute;
 opacity:0;
 pointer-events:none
}
.choice-item span{
 display:flex;
 min-height:38px;
 align-items:center;
 justify-content:center;
 padding:6px 5px;
 border:1px solid #bdcac6;
 border-radius:7px;
 background:#fff;
 font-weight:650;
 text-align:center;
 line-height:1.1
}
.choice-item input:checked+span{
 background:#087f5b;
 border-color:#087f5b;
 color:#fff;
 box-shadow:0 0 0 2px rgba(8,127,91,.12)
}
.choice-item input:focus-visible+span{outline:3px solid rgba(8,127,91,.25)}

@media(max-width:900px){
 .choice-grid{grid-template-columns:repeat(4,minmax(52px,1fr))}
 .body-choice-field .choice-grid{grid-template-columns:repeat(3,minmax(65px,1fr))}
}
@media(max-width:600px){
 .nav a.active::after{display:none}
 .choice-grid{grid-template-columns:repeat(4,minmax(48px,1fr))}
 .body-choice-field .choice-grid{grid-template-columns:repeat(2,minmax(80px,1fr))}
 .choice-item span{font-size:.9rem}
}


/* V7.0.3 master management */
.master-register-card{
 margin:0;
 border:1px solid var(--line);
 border-radius:10px;
 background:#fff
}
.master-management-block{
 margin-top:18px;
 padding:14px;
 border:1px solid var(--line);
 border-radius:10px;
 background:#fff
}
.master-management-header{
 display:flex;
 justify-content:space-between;
 align-items:flex-end;
 gap:14px;
 margin-bottom:10px
}
.master-management-header h3{margin:0}
.master-search-form{
 display:flex;
 flex-direction:row;
 align-items:center;
 gap:7px
}
.master-search-form input{min-width:260px}
.button-link{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 padding:9px 13px;
 border:1px solid var(--line);
 border-radius:6px;
 background:#fff;
 color:inherit;
 text-decoration:none
}
.master-table-wrap{max-height:520px}
.master-inline-form{
 display:flex;
 flex-direction:row;
 align-items:center;
 gap:7px
}
.master-inline-form select{min-width:145px}
.vehicle-inline-form select{min-width:110px}
.master-edit-table td{vertical-align:middle}
.danger{
 background:#fff;
 border-color:#c9332b;
 color:#a61b1b;
 font-weight:700
}
.danger:hover{background:#fff0ef}
.empty-state{
 padding:18px;
 color:#687872;
 text-align:center
}

@media(max-width:760px){
 .master-management-header{
  align-items:stretch;
  flex-direction:column
 }
 .master-search-form{
  align-items:stretch;
  flex-wrap:wrap
 }
 .master-search-form input{
  min-width:0;
  flex:1 1 100%
 }
 .master-inline-form{
  align-items:stretch;
  flex-direction:column
 }
 .master-inline-form select{min-width:150px}
}


/* V7.0.4 vehicle/driver search */
.vehicle-search-input-row{
 display:grid;
 grid-template-columns:minmax(280px,1fr) 150px;
 gap:12px;
 align-items:end
}
#vehicleSearchTable tbody tr{cursor:pointer}
#vehicleSearchTable tbody tr:hover{background:#e8f5f0}
.latest-badge{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 padding:3px 8px;
 border-radius:999px;
 background:#087f5b;
 color:#fff;
 font-weight:800;
 font-size:.78rem
}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{background:#dcece6}
@media(max-width:650px){
 .vehicle-search-input-row{grid-template-columns:1fr}
}
