:root{--red:#c00;--dark:#1f2937;--muted:#6b7280;--line:#e5e7eb;--bg:#f6f7f9;--white:#fff;--green:#008a4e;--orange:#b45309}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--dark);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.app-header{height:auto;min-height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:14px 28px;position:sticky;top:0;z-index:10}.brand a{font-weight:800;font-size:20px}.app-header nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:#374151;font-size:14px}.app-header nav a{padding:6px 8px;border-radius:8px}.app-header nav a:hover{background:#f3f4f6}.app-main{max-width:1120px;margin:0 auto;padding:28px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.page-head h1{margin:0 0 4px;font-size:28px}.page-head p{margin:0;color:var(--muted)}.head-actions,.actions{display:flex;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;color:#111827;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;font-size:14px}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.danger{background:#991b1b;border-color:#991b1b;color:#fff}.btn.small{padding:6px 10px;font-size:13px}.btn.full{width:100%}.alert{padding:12px 14px;border-radius:10px;margin:14px 0;background:#fff;border:1px solid var(--line)}.alert.success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.alert.danger{border-color:#fecaca;background:#fef2f2;color:#991b1b}.search-box,.form-card,.report-paper,.setup-box{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 8px 24px rgba(15,23,42,.04)}.search-box{display:grid;grid-template-columns:1.7fr 160px 150px 150px auto;gap:10px;margin-bottom:18px}.search-box input,.search-box select,input,textarea,select{width:100%;min-height:45px;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font:inherit;background:#fff}textarea{min-height:104px;resize:vertical}label{display:block;font-weight:700;margin-bottom:16px}label span{color:var(--red);margin-left:2px}label small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:1fr 1fr}.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:16px}.list-table{width:100%;border-collapse:collapse;font-size:14px}.list-table th,.list-table td{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}.list-table th{background:#f9fafb;font-weight:800;white-space:nowrap}.list-table tr:last-child td{border-bottom:0}.small-table{font-size:13px}.status{display:inline-flex;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;background:#f3f4f6;color:#374151;white-space:nowrap}.status-submitted{background:#fff7ed;color:var(--orange)}.status-approved{background:#ecfdf5;color:var(--green)}.status-returned{background:#fef2f2;color:#991b1b}.report-paper{position:relative;background:#fff;margin-bottom:20px}.report-title{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #111827;margin-bottom:18px;padding-bottom:12px}.report-title h2{font-size:26px;margin:0}.stamp-row{display:flex;justify-content:flex-end;gap:16px;margin:12px 0 18px;min-height:86px}.stamp-box{text-align:center;width:92px}.stamp{width:62px;height:62px;border:3px solid var(--red);border-radius:50%;color:var(--red);font-weight:900;font-size:17px;display:flex;align-items:center;justify-content:center;margin:0 auto 5px;transform:rotate(-8deg);letter-spacing:.05em;line-height:1}.stamp-empty{margin-left:auto;color:#9ca3af;border:1px dashed #d1d5db;padding:18px 26px;border-radius:10px}.detail-table{width:100%;border-collapse:collapse;margin-bottom:18px}.detail-table th,.detail-table td{border:1px solid #d1d5db;padding:10px 12px;text-align:left;vertical-align:top}.detail-table th{background:#f9fafb;width:16%;white-space:nowrap}.report-section{margin-top:18px}.report-section h3{font-size:17px;margin:0 0 8px;border-left:4px solid var(--red);padding-left:10px}.report-section p{min-height:44px;margin:0;padding:12px;background:#fafafa;border:1px solid #eee;border-radius:10px;white-space:normal}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:28px}.login-card{width:min(440px,100%);background:#fff;border-radius:20px;padding:30px;border:1px solid var(--line);box-shadow:0 18px 60px rgba(15,23,42,.08)}.login-card h1{margin:0 0 6px}.login-card p{color:var(--muted);margin:0 0 20px}.demo-info{margin-top:14px;padding:12px;background:#f9fafb;border-radius:10px;color:#4b5563;font-size:13px}.setup-box{max-width:720px;margin:40px auto}.print-actions{position:sticky;top:0;background:#fff;padding:16px;display:flex;gap:10px;justify-content:center;border-bottom:1px solid var(--line);z-index:5}.print-paper{max-width:900px;margin:24px auto}code{font-size:12px;color:#4b5563}@media(max-width:780px){.app-header{align-items:flex-start;flex-direction:column}.app-main{padding:18px}.page-head{flex-direction:column}.search-box{grid-template-columns:1fr}.grid.two{grid-template-columns:1fr}.detail-table th,.detail-table td{display:block;width:100%}.stamp-row{justify-content:flex-start;overflow-x:auto}.report-title{align-items:flex-start;gap:10px;flex-direction:column}.table-wrap{border-radius:12px;overflow:hidden}.list-table thead{display:none}.list-table tbody tr{display:block;border-bottom:2px solid var(--line);padding:14px 16px;background:#fff}.list-table tbody tr:last-child{border-bottom:0}.list-table tbody td{display:flex;align-items:baseline;gap:8px;border:none;padding:5px 0;font-size:14px;line-height:1.5}.list-table tbody td::before{content:attr(data-label);flex-shrink:0;width:5.5em;font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}.list-table tbody td.td-actions{display:flex;align-items:center;gap:8px;padding-top:10px;border-top:1px solid var(--line);margin-top:6px}.list-table tbody td.td-actions::before{display:none}.list-table tbody td.td-empty{display:block;text-align:center;color:var(--muted);padding:20px 0}.list-table tbody td.td-empty::before{display:none}}
.public-main{max-width:1060px}.public-hero{margin:28px 0 20px}.public-hero .eyebrow{margin:0 0 12px;color:#374151}.public-hero h1{font-size:42px;line-height:1.2;margin:0 0 18px}.public-hero p{font-size:18px}.public-admin-link{margin-top:12px}.public-form h2{margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--line)}.stamp-preview-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px dashed #d1d5db;background:#fafafa;border-radius:14px;padding:14px 16px;margin:8px 0 18px}.stamp-preview{font-size:14px}.stamp-area-bottom{display:flex;justify-content:flex-end;align-items:flex-start;gap:16px;margin:28px 0 16px;clear:both}.stamp-area-bottom .stamp-empty{margin-left:0}.detail-table td{min-width:120px}@media(max-width:780px){.public-hero h1{font-size:32px}.stamp-preview-wrap{align-items:flex-start;flex-direction:column}.stamp-area-bottom{justify-content:flex-start;overflow-x:auto}}
.inline-delete{
  display:inline-block;
  margin:0 0 0 6px;
}
.head-actions .inline-delete{
  margin-left:0;
}

/* 添付ファイルサムネイル */
.attachment-section .attachment-thumb-link{
  display:inline-block;
  margin:10px 0 8px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.08);
}
.attachment-section .attachment-thumb{
  display:block;
  width:220px;
  max-width:100%;
  height:auto;
  max-height:180px;
  object-fit:contain;
}

  .form-card{margin-bottom:1.5em;}
 .search-box {
  display: grid;
  grid-template-columns: 1fr 150px 150px 1em 150px auto;
  gap: 10px;
  margin-bottom: 18px;
  align-items: center;
} 
.search-box .btn{
  background: #000;
  color:#fff;
    padding: 0.9em 1.5em;
}
.list-table td .flex{
  display: flex;
  align-items: center;
}
.list-table td .flex .inline-delete,
.list-table td .flex a{
  white-space: nowrap;
}
@media(max-width:780px){
  .app-header nav {
  gap: 0.3em;
  font-size: 2.8vw;
}
.app-header nav span{
  display: block;
  width: 100%;
}
.app-header nav a {
  padding: 0.5em 0.5em;
  border-radius: 8px;
  border: solid 1px #ddd;
}
.search-box {
  display: flex;
  grid-template-columns: 1fr 150px 150px 1em 150px auto;
  gap: 10;
  margin-bottom: 18px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
}
.search-box input[type="date"]{
  width: 45%;
}
}
/* 提出完了画面 */
.submit-complete-card{background:#fff;border:1px solid #bbf7d0;border-radius:18px;padding:40px 28px;text-align:center;box-shadow:0 8px 24px rgba(15,23,42,.06);margin-bottom:24px}
.submit-complete-icon{width:64px;height:64px;background:var(--green);border-radius:50%;color:#fff;font-size:32px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-weight:900}
.submit-complete-card h2{font-size:24px;margin:0 0 10px;color:#166534}
.submit-complete-card p{margin:0;color:#374151}

input[type="date"]{
  
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

/* ══════════════════════════════════════════════════════════
   スマホ：旅費明細書の明細行テーブル → カード型
   ══════════════════════════════════════════════════════════ */
@media (max-width: 780px) {

  /* 明細行テーブルのwrapをスクロールなしに */
  #itemTable {
    min-width: 0 !important;
    display: block;
  }
  #itemTable thead { display: none; }

  #itemTable tbody { display: grid; gap: 12px; }
  #itemTable tfoot { display: grid; margin-top:1em; }

  #itemTable tbody tr.item-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(15,23,42,.05);
  }

  #itemTable tbody tr.item-row td {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--line);
    border-right: none;
    vertical-align: top;
  }

  /* data-label をラベルとして表示 */
  #itemTable tbody tr.item-row td::before {
    content: attr(data-label);
    display: block;
    font-size: 10px;
    font-weight: 800;
    color: #6b7280;
    letter-spacing: .07em;
    text-transform: uppercase;
  }

  /* 年月日・現場名は全幅 */
  #itemTable tbody tr.item-row td[data-label="年月日"],
  #itemTable tbody tr.item-row td[data-label="現場名・出張先"],
  #itemTable tbody tr.item-row td[data-label="摘要"] {
    grid-column: 1 / -1;
  }

  /* 削除ボタンセルは全幅・下部 */
  #itemTable tbody tr.item-row td[data-label=""] {
    grid-column: 1 / -1;
    border-bottom: none;
    padding: 8px 12px;
    background: #fafafa;
  }
  #itemTable tbody tr.item-row td[data-label=""]::before {
    display: none;
  }

  /* input幅を100%に */
  #itemTable tbody tr.item-row td input {
    width: 100%;
    padding: 8px 10px;
    font-size: 15px;
  }

  /* tfoot（小計・合計）もスタック表示 */
  #itemTable tfoot tr {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  #itemTable tfoot tr td {
    border: 1px solid var(--line);
    padding: 8px 10px !important;
    font-size: 13px;
  }

  /* 行追加ボタン周りの余白 */
  #addRowBtn, #loadReportsBtn {
    width: 100%;
    justify-content: center;
  }
}
