:root{font-size:16px;--ink:#172f40;--muted:#526675;--navy:#12384d;--teal:#087b7f;--line:#ccd9df;--paper:#f2f6f8;--amber:#965012;--green:#166247;--red:#a52b37}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;font-size:1rem;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{transition:background-color .15s,color .15s}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:#066975}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b77a17;outline-offset:3px}h1,h2,h3,p{margin:0 0 12px}h1{font-size:1.8rem;line-height:1.45}h2{font-size:1.3rem}h3{font-size:1.08rem}small,.meta{font-size:.875rem}.meta{color:var(--muted)}
.demo-banner{padding:10px 22px;background:#e2edf0;font-size:.875rem;border-bottom:1px solid #c7d8dd}.app-header{padding:25px 26px 22px;background:var(--navy);color:#fff;position:relative;overflow:hidden}.app-header:after{content:'';position:absolute;right:0;top:0;bottom:0;width:28%;background:repeating-linear-gradient(135deg,transparent 0,transparent 26px,rgba(255,255,255,.04) 27px,rgba(255,255,255,.04) 29px);pointer-events:none}.app-header .eyebrow{font-size:.875rem;letter-spacing:.1em;color:#afd3db;margin-bottom:7px}.app-header p{max-width:850px;margin-bottom:0;color:#e0edf0}.app-header h1{position:relative;z-index:1}.app-nav{display:flex;flex-wrap:wrap;gap:6px;padding:14px 22px;background:#fff;border-bottom:1px solid var(--line)}.app-nav a{display:block;text-decoration:none;padding:7px 12px;border:1px solid var(--line);border-radius:5px;font-size:.875rem;color:var(--ink);background:#fff}.app-nav a[aria-current=page]{background:var(--teal);color:#fff;border-color:var(--teal)}
main{max-width:1420px;margin:auto;padding:22px}.context{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px}.context p{margin:0}.badge{display:inline-block;border-radius:4px;padding:3px 9px;font-size:.875rem;font-weight:700;background:#e4edf2;color:#20485d}.badge.ok{background:#def1e8;color:var(--green)}.badge.wait{background:#fff0d9;color:var(--amber)}.badge.danger{background:#fbe6e7;color:var(--red)}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;min-width:0;margin-bottom:18px}.panel> :last-child{margin-bottom:0}.panel-title{border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:18px}.grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:20px;align-items:start}.grid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.stack>*+*{margin-top:14px}.helper{border:1px solid #b9d3d6;background:#eaf6f5;border-radius:8px;padding:18px;margin-bottom:18px}.helper p{font-size:.9375rem}.helper ul{padding-left:20px;margin:8px 0 0}.callout{padding:13px 16px;background:#fff4e2;border-left:4px solid #b87520;margin:16px 0}.callout.blue{background:#eaf2f7;border-color:#2f6f92}.callout.good{background:#e9f4ee;border-color:var(--green)}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:block;margin-bottom:16px}.field>span{display:block;font-size:.875rem;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;min-width:0;padding:10px 11px;border:1px solid #9ab0bc;background:#fff;color:var(--ink);border-radius:5px}.field textarea{min-height:100px;resize:vertical}.check{display:flex;gap:10px;align-items:flex-start;margin:15px 0}.check input{width:19px;height:19px;flex:none;margin-top:4px;accent-color:var(--teal)}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:16px}.btn{padding:9px 15px;border:1px solid #8da9b5;border-radius:5px;background:#fff;color:#174254;font-weight:700;font-size:.9375rem;display:inline-block;text-decoration:none}.btn:hover{background:#edf6f6}.btn.primary{background:var(--teal);color:#fff;border-color:var(--teal)}.btn.primary:hover{background:#066469}.btn.small{padding:7px 10px;font-size:.875rem}.btn.warn{color:#8c3016;border-color:#c79472;background:#fff6eb}.tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}.tabs button{border:1px solid #93adb9;background:#fff;color:var(--ink);border-radius:5px;padding:9px 14px}.tabs button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.facts{margin:0}.facts>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid #e0e8ec}.facts>div:last-child{border-bottom:0}.facts dt{font-size:.875rem;font-weight:700;color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}.table-scroll{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:6px}table{width:100%;border-collapse:collapse;font-size:1rem;text-align:left}table.wide{min-width:840px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#eaf0f3;color:#284a5d;font-size:.875rem;font-weight:700;white-space:nowrap}tr:last-child td{border-bottom:0}td .btn{white-space:nowrap}.selected-row td{background:#edf8f6}.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.kpi{padding:17px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:7px}.kpi span{font-size:.875rem;display:block}.kpi strong{font-size:2rem;font-weight:800}.bar-row{display:grid;grid-template-columns:140px minmax(0,1fr) 35px;align-items:center;gap:10px;margin:13px 0}.bar-row button{border:0;padding:0;background:none;color:#086b78;text-align:left;font-size:.875rem;text-decoration:underline}.bar-track{height:13px;background:#e5edf1}.bar-fill{height:100%;background:#238e95}.quantity{width:70px;padding:6px 8px;border:1px solid #9ab0bc;border-radius:4px;font:inherit}.part-card{border:1px solid var(--line);border-radius:8px;padding:18px;margin-top:16px}.part-card.selected{border:2px solid var(--teal)}.part-head{display:flex;gap:12px;align-items:start;justify-content:space-between}.part-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0}.part-grid div{background:#f1f5f7;padding:10px}.part-grid span{display:block;font-size:.875rem}.part-grid strong{font-size:1.35rem}.steps{list-style:none;padding:0;margin:0;display:grid;gap:10px}.steps li{padding:13px 15px;border:1px solid var(--line);border-left:5px solid #bbcdd6;background:#fff}.steps li.done{border-left-color:var(--teal);background:#f0f8f6}.steps strong{display:block;font-size:1rem}.steps span{font-size:.875rem;color:var(--muted)}.money{font-size:2rem;font-weight:800;color:var(--navy)}.money small{font-size:1rem}.timeline{border-left:3px solid #bfdbde;padding-left:20px;margin-left:6px}.timeline article{padding-bottom:21px}.timeline time{font-size:.875rem;color:var(--teal);font-weight:700}.timeline h3{margin:4px 0}.timeline p{margin:0}.logs{font-size:.875rem;line-height:1.9;padding-left:22px;max-height:185px;overflow:auto}.preview-image{display:block;max-width:100%;max-height:220px;border:1px solid var(--line);border-radius:4px;margin-top:12px}.preview-sheet{background:#fff;border:1px solid #8daab8;padding:22px;border-radius:5px;margin-top:18px}.report-note{white-space:pre-wrap;overflow-wrap:anywhere}.mobile-form{max-width:650px;margin:auto}.footer-note{font-size:.875rem;color:var(--muted);margin:22px 0 8px}.status-message{margin-bottom:16px;border-radius:5px;padding:13px 16px;background:#e5f4ed;border:1px solid #8cb8a1;color:#184e39;overflow-wrap:anywhere}.status-message.error{background:#fff0ef;border-color:#d89998;color:#922332}.status-message:empty{display:none}[hidden]{display:none!important}.screen-label{display:inline-block;font-size:.875rem;padding:4px 9px;background:#dbecef;border-radius:4px;margin-bottom:12px}.inline-links{display:flex;gap:15px;flex-wrap:wrap;margin-top:15px}.inline-links a{font-size:.9375rem}.empty{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:900px){.grid,.grid.equal{grid-template-columns:1fr}.app-header{padding:20px}.app-header h1{font-size:1.55rem}.helper{margin-bottom:15px}.fields{grid-template-columns:1fr}.fields .field{margin-bottom:0}.part-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:18px}}
@media(max-width:540px){main{padding:14px}.app-nav{padding:10px;gap:5px}.app-nav a{padding:6px 9px}.demo-banner{padding:10px 14px}.kpis{gap:7px}.kpi{padding:12px 8px}.kpi strong{font-size:1.65rem}.facts>div{grid-template-columns:1fr;gap:4px}.part-head{flex-direction:column}.bar-row{grid-template-columns:115px minmax(0,1fr) 28px}.btn{padding:10px 12px}.panel{border-radius:7px}.money{font-size:1.7rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* シーン2：5項目を表示幅内へ配置し、狭い画面は項目名付きの縦表示にする。 */
.desk-layout{grid-template-columns:minmax(0,1.85fr) minmax(18rem,1fr)}
.desk-layout>*{min-width:0}
.desk-table-wrap{max-width:100%;border:1px solid var(--line);border-radius:6px}
.desk-table{table-layout:fixed;width:100%;min-width:0}
.desk-col-case{width:17%}.desk-col-machine{width:29%}.desk-col-reason{width:21%}.desk-col-contact{width:23%}.desk-col-action{width:10%}
.desk-table th,.desk-table td{padding:12px 10px;white-space:normal;overflow-wrap:anywhere}
.desk-cell-value{min-width:0;overflow-wrap:anywhere}
.desk-table .badge{max-width:100%}
.desk-table .btn{max-width:100%;padding:7px 8px;white-space:normal}
@media(max-width:76rem){.desk-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:42rem){
  .desk-table-wrap{border:0;border-radius:0}
  .desk-table,.desk-table tbody,.desk-table tr,.desk-table th,.desk-table td{display:block;width:auto}
  .desk-table colgroup{display:none}
  .desk-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .desk-table tr{margin-bottom:14px;border:1px solid var(--line);border-radius:6px}
  .desk-table tr:last-child{margin-bottom:0}
  .desk-table td{padding:10px 12px;border:0}
  .desk-table td::before{content:attr(data-label);display:block;margin-bottom:5px;font-size:.875rem;font-weight:700;color:var(--muted)}
  .desk-table td+td{border-top:1px solid var(--line)}
  .desk-table td:first-child{border-radius:6px 6px 0 0}
  .desk-table td:last-child{border-radius:0 0 6px 6px}
}
