:root{
  --bg:#f3f6fb;
  --card:#ffffff;
  --text:#172033;
  --muted:#6b7280;
  --line:#e2e8f0;
  --main:#00b385;
  --main-dark:#008f6a;
  --soft:#e8faf5;
  --danger:#dc2626;
  --danger-soft:#fef2f2;
  --success:#15803d;
  --success-soft:#ecfdf3;
  --warn:#b45309;
  --warn-soft:#fffbeb;
  --shadow:0 18px 45px rgba(0,50,35,.09);
}
*{box-sizing:border-box}
html{font-size:16px}
body{
  margin:0;
  color:var(--text);
  background:linear-gradient(135deg,#edfaf5 0%,#f4faf8 46%,#edfaf5 100%);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  line-height:1.7;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;vertical-align:middle}
p{margin:0 0 12px;color:var(--muted)}
h1{font-size:clamp(24px,4vw,34px);line-height:1.28;margin:0 0 8px;color:var(--text)}
h2{font-size:20px;margin:28px 0 14px;color:var(--text)}
small{font-size:12px;color:var(--muted);font-weight:600}

.app-wrap{max-width:1000px;margin:0 auto;min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:34px 16px}
.form-card,.admin-card,.detail-card{
  width:100%;
  background:rgba(255,255,255,.96);
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:var(--shadow);
  padding:30px;
  margin-bottom:2em;
}
.page-head{text-align:center;margin-bottom:26px}
.eyebrow{margin:0 0 6px;color:var(--main);font-size:13px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}

.report-form{display:grid;gap:18px}
.report-form label,.inline-label{display:grid;gap:7px;color:#26324d;font-weight:800}
.report-form label span{display:inline-block;width:max-content;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--danger-soft);color:var(--danger);font-size:12px;font-weight:900}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid-3{display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:16px}
input,select,textarea{
  width:100%;
  min-height:46px;
  font-size: 16px;
  border:1px solid #d7deea;
  border-radius:13px;
  background:#fff;
  padding:12px 13px;
  color:var(--text);
  font:inherit;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
}
textarea{resize:vertical;min-height:110px}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(0,179,133,.20);border-color:var(--main)}

.primary-btn,.secondary-btn,.danger-btn,.btn-primary,.btn-secondary,.mini-btn,.small-btn,.btn-reset{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border-radius:13px;border:0;cursor:pointer;font:inherit;font-weight:900;text-align:center;line-height:1.2;transition:.18s ease;
  
}
.primary-btn,.secondary-btn{
white-space: nowrap;
}
.primary-btn,.btn-primary{width:100%;background:var(--main);color:#fff;padding:15px 20px;box-shadow:0 10px 22px rgba(0,179,133,.25)}
.primary-btn:hover,.btn-primary:hover{background:var(--main-dark);transform:translateY(-1px)}
.secondary-btn,.btn-secondary{background:#172033;color:#fff;padding:12px 16px}
.secondary-btn:hover,.btn-secondary:hover{background:#0f172a}
.danger-btn{background:var(--danger-soft);color:var(--danger);border:1px solid #fecaca;padding:11px 14px}
.danger-btn:hover{background:#fee2e2}
.small,.small-btn{width:auto;padding:11px 16px;font-size:14px}
.mini{width:auto;padding:8px 11px;font-size:13px;border-radius:10px;white-space:nowrap;box-shadow:none}
.btn-reset{background:#e8faf5;color:#065f46;padding:12px 14px}
.admin-link{text-align:center;margin:18px 0 0}
.admin-link a{color:var(--main);font-weight:900}
.alert{border-radius:15px;padding:14px 16px;margin-bottom:18px;border:1px solid transparent}
.alert p{margin:0;color:inherit;font-weight:700}
.alert.error{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}
.alert.success{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}
.empty-text{padding:14px;background:#f8fafc;border:1px solid var(--line);border-radius:13px}

.photo-section{border:1px dashed #6ee7c7;border-radius:18px;background:#f2fdf9;padding:18px}
.photo-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:13px}
.photo-head strong{font-size:16px;color:#26324d}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.photo-picker{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;display:grid;gap:9px}
.photo-label{font-weight:900;color:#26324d;font-size:14px}
.photo-picker input{padding:9px;font-size:13px;min-height:auto}
.photo-preview{height:128px;border-radius:13px;background:#f1f5f9;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#94a3b8;font-weight:800;font-size:13px}
.photo-preview img{width:100%;height:100%;object-fit:cover}
.photo-remove{border:1px solid #fecaca;background:#fff5f5;color:var(--danger);border-radius:10px;padding:8px 10px;font-weight:900;cursor:pointer}
.photo-remove[hidden]{display:none}

.admin-nav{
  max-width:1180px;margin:18px auto 0;padding:12px 16px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px rgba(15,23,42,.07);display:flex;align-items:center;gap:9px;flex-wrap:wrap
}
.admin-nav strong{margin-right:auto;color:#00b385;font-size:15px;font-weight:900}
.admin-nav a{padding:8px 12px;border-radius:999px;background:#f8fafc;border:1px solid var(--line);font-weight:900;font-size:13px;color:#334155}
.admin-nav a:hover{background:#d1fae5;color:#008f6a}
.admin-wrap{max-width:1180px;margin:0 auto;padding:24px 16px 50px}
.admin-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}
.filter-box{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin:0 0 16px;padding:16px;background:#f8fdfb;border:1px solid #c7ede4;border-radius:18px;box-shadow:0 10px 26px rgba(0,60,40,.06)}
.filter-box label{display:grid;gap:6px;font-size:13px;font-weight:900;color:#0d6e56}
.filter-actions{display:flex;gap:8px;align-items:end}
.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.06)}
.admin-table{width:100%;border-collapse:collapse;min-width:920px;background:#fff}
.admin-table th,.admin-table td{white-space:nowrap;padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.admin-table th{background:#f0fdf8;color:#065f46;font-size:13px;font-weight:900;white-space:nowrap}
.admin-table tr:last-child td{border-bottom:0}
.admin-table td small{display:block;line-height:1.4;margin-top:3px}
.inline-form{margin:0}.inline-form select{min-width:112px;min-height:40px;padding:8px 10px;border-radius:10px}
.actions{display:flex;gap:8px;align-items:center;white-space:nowrap}.actions form{margin:0}
.badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap;background:#d1fae5;color:#065f46}
.urgency-通常{background:#ecfdf5;color:#15803d}.urgency-注意{background:var(--warn-soft);color:var(--warn)}.urgency-至急{background:var(--danger-soft);color:var(--danger)}

.detail-card{width:100%}.detail-list{display:grid;grid-template-columns:150px 1fr;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.detail-list dt,.detail-list dd{margin:0;padding:13px 15px;border-bottom:1px solid var(--line)}
.detail-list dt{background:#f0fdf8;color:#065f46;font-weight:900}.detail-list dd{background:#fff}.detail-list dt:last-of-type,.detail-list dd:last-of-type{border-bottom:0}
.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:22px}
.image-item{border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px;box-shadow:0 6px 18px rgba(15,23,42,.05)}
.image-item img,.image-grid>a>img{width:100%;height:150px;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:#f8fafc}
.image-item form{margin:9px 0 0}.image-item .danger-btn{width:100%}
.detail-update-form{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}

.inline-row{display:flex;gap:10px;align-items:center}.inline-row input{flex:1}
.checkline{display:inline-flex!important;align-items:center;gap:6px;font-weight:800}.checkline input{width:auto;min-height:auto}

@media (max-width:960px){
  .filter-box{grid-template-columns:repeat(2,1fr)}
  .form-grid-3{grid-template-columns:1fr 1fr}.photo-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .app-wrap{padding:18px 12px}.form-card,.admin-card,.detail-card{padding:20px;border-radius:18px}
  .form-grid-2,.form-grid-3,.filter-box,.photo-grid{grid-template-columns:1fr 1fr}
  .photo-grid{grid-template-columns:1fr}
  input[type="date"]{-webkit-appearance: none; /* iOSのデフォルトスタイルを解除 */
  appearance: none;}
  .admin-head{display:block}.admin-head .secondary-btn{margin-top:10px;width:100%}
  .admin-nav{margin:10px 10px 0;gap:0.4em;}.admin-nav strong{width:100%;margin:0 0 4px}.admin-nav a{flex:1;text-align:center;padding:0.5em 0.2em; font-size:2.1vw;}
  .detail-list{grid-template-columns:1fr}.detail-list dt{border-bottom:0;padding-bottom:4px}.detail-list dd{padding-top:4px}
  .actions{display:grid}.inline-row{display:grid}
}

.master-badge{display:inline-flex;align-items:center;margin-left:10px;padding:3px 8px;border-radius:999px;background:#00b385;color:#fff;font-size:11px;font-weight:700;letter-spacing:.05em;}
.alert.master{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;}
.alert.master code{background:rgba(255,255,255,.75);padding:2px 5px;border-radius:5px;}

/* ── スマホ：テーブル→カード型 ───────────────────────── */
@media (max-width: 640px) {
  .table-scroll { border: none; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
  .admin-table  { min-width: 0; display: block;background: none; }
  .admin-table thead { display: none; }
  .admin-table tbody { display: grid; gap: 12px; }
  .admin-table tr {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    /*box-shadow: 0 4px 14px rgba(0,50,35,.07);*/
  }
  .admin-table td {
    display: flex;
    flex-direction: column;
    padding: 10px 13px;
    border-bottom: 1px solid var(--line);
    border-right: none;
    font-size: 13px;
    white-space: normal !important;
  }
  /* data-labelをラベルとして表示 */
  .admin-table td::before {
    content: attr(data-label);
    display: block;
    font-size: 10px;
    font-weight: 900;
    color: #008f6a;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 3px;
  }
  /* 内容列・操作列は2カラム幅いっぱい */
  .admin-table td[data-label="内容"],
  .admin-table td[data-label="操作"] {
    grid-column: 1 / -1;
  }
  /* 操作列はボーダー無し */
  .admin-table td[data-label="操作"] {
    border-bottom: none;
  }
  /* 最終行のボーダー調整 */
  .admin-table td:last-child { border-bottom: none; }
  /* actionsを横並びに */
  .admin-table .actions { flex-direction: row; }
  .mini{padding:14px 1.5em;}
}
