:root{
  --bg:#f4f6fa;
  --card:#ffffff;
  --ink:#1a2230;
  --muted:#6b7686;
  --line:#e3e8f0;
  --primary:#1f6feb;
  --primary-d:#1559c4;
  --accent:#10936a;
  --danger:#d8443a;
  --radius:14px;
  --shadow:0 1px 3px rgba(20,30,50,.08),0 1px 2px rgba(20,30,50,.04);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,"PingFang TC","Microsoft JhengHei","Noto Sans TC",Roboto,sans-serif;
  background:var(--bg);color:var(--ink);
  font-size:16px;line-height:1.5;
  padding-bottom:calc(76px + env(safe-area-inset-bottom));
}
.hidden{display:none!important}

/* 頂部列 */
.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;gap:8px;
  padding:calc(10px + env(safe-area-inset-top)) 12px 10px;
  background:var(--primary);color:#fff;
  box-shadow:0 2px 8px rgba(31,111,235,.25);
}
.topbar h1{font-size:18px;margin:0;flex:1;text-align:center;font-weight:700;letter-spacing:.5px}
.icon-btn{
  background:rgba(255,255,255,.18);border:0;color:#fff;
  width:36px;height:36px;border-radius:10px;font-size:22px;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.icon-btn:active{background:rgba(255,255,255,.32)}

.view{padding:16px 14px 8px;max-width:680px;margin:0 auto}

/* 首頁大按鈕 */
.home-actions{display:grid;gap:12px;margin-bottom:22px}
.big-btn{
  border:0;border-radius:var(--radius);padding:18px;font-size:18px;font-weight:700;
  color:#fff;cursor:pointer;display:flex;align-items:center;gap:14px;justify-content:center;
  box-shadow:var(--shadow);width:100%;
}
.big-btn-emoji{font-size:26px}
.big-btn.primary{background:var(--primary)}
.big-btn.primary:active{background:var(--primary-d)}
.big-btn.accent{background:var(--accent)}
.big-btn.accent:active{filter:brightness(.93)}

.section-title{font-size:15px;color:var(--muted);margin:6px 4px 10px;font-weight:600}
.report-list{display:grid;gap:10px}
.report-card{
  background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);
  display:flex;align-items:center;gap:12px;cursor:pointer;border:1px solid var(--line);
}
.report-card:active{background:#f7f9fc}
.rc-badge{
  flex:none;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;
  justify-content:center;font-size:22px;
}
.rc-badge.daily{background:#e8f0ff}
.rc-badge.inspection{background:#e3f6ee}
.rc-main{flex:1;min-width:0}
.rc-title{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-sub{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-date{color:var(--muted);font-size:12px;flex:none}
.empty-hint{color:var(--muted);text-align:center;padding:30px 20px;font-size:14px}

/* 卡片 / 欄位 */
.card{
  background:var(--card);border-radius:var(--radius);padding:14px;margin-bottom:14px;
  box-shadow:var(--shadow);border:1px solid var(--line);
}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.card-head h3,.card h3{margin:0 0 0;font-size:16px}
.card h3{margin-bottom:8px}
.field-label{display:block;font-size:13px;color:var(--muted);margin:10px 2px 4px;font-weight:600}
.field-row{margin-bottom:12px}
.field-row:last-child{margin-bottom:0}
.field-row .field-label{margin-top:0}
.field{
  width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;
  font-size:16px;font-family:inherit;background:#fbfcfe;color:var(--ink);
}
.field:focus{outline:none;border-color:var(--primary);background:#fff}
textarea.field{min-height:80px;resize:vertical;line-height:1.55}
select.field{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7686' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}

.input-wrap{position:relative}
.input-wrap .field{padding-right:48px}
.mic-btn{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:38px;height:38px;border-radius:9px;border:0;background:#eef2f8;cursor:pointer;
  font-size:18px;display:flex;align-items:center;justify-content:center;
}
textarea.field+.mic-btn{top:8px;transform:none}
.mic-btn.rec{background:#ffe2e0;animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}

.ai-btn{
  margin-top:8px;border:1px dashed var(--primary);color:var(--primary);background:#f3f8ff;
  border-radius:9px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
}
.ai-btn:active{background:#e6f0ff}

/* 照片 */
.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.photo-item{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fafbfd}
.photo-item img{width:100%;height:120px;object-fit:cover;display:block}
.photo-note{width:100%;border:0;border-top:1px solid var(--line);padding:7px 8px;font-size:13px;font-family:inherit;background:#fff;resize:none;min-height:46px}
.photo-actions{display:flex;border-top:1px solid var(--line)}
.photo-actions button{flex:1;border:0;background:#fff;padding:7px;font-size:12px;cursor:pointer;color:var(--primary)}
.photo-actions button.del{color:var(--danger);border-left:1px solid var(--line)}

/* 簽名 */
.sign-pad{width:100%;height:180px;border:1px dashed var(--line);border-radius:10px;background:#fff;touch-action:none}

/* 底部操作列 */
.action-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:#fff;border-top:1px solid var(--line);box-shadow:0 -2px 10px rgba(20,30,50,.06);
}
.bar-btn{
  flex:1;border:0;border-radius:11px;padding:13px;font-size:16px;font-weight:700;
  background:#eef2f8;color:var(--ink);cursor:pointer;
}
.bar-btn.primary{background:var(--primary);color:#fff}
.bar-btn.danger{flex:none;width:72px;background:#fdeceb;color:var(--danger)}

/* 設定 */
.hint{font-size:13px;color:var(--muted);margin:4px 0 10px}
.hint.center{text-align:center}
.mini-btn{
  border:0;border-radius:9px;padding:8px 12px;font-size:13px;font-weight:600;
  background:var(--primary);color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:4px;
}
.mini-btn.ghost{background:#eef2f8;color:var(--ink)}

/* 預覽彈窗 */
.modal{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column}
.modal-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:var(--primary);color:#fff;font-weight:700;
}
.modal-head .icon-btn{background:rgba(255,255,255,.18)}
.preview-scroll{flex:1;overflow:auto;padding:14px;display:flex;justify-content:center}
.preview-scroll .sheet{width:100%;max-width:620px}

/* 列印表 */
#printRoot{position:fixed;left:-99999px;top:0}
.sheet{
  background:#fff;color:#111;font-family:"PingFang TC","Microsoft JhengHei","Noto Sans TC",sans-serif;
  padding:30px 34px;box-shadow:var(--shadow);
}
.sheet h1{font-size:22px;text-align:center;margin:0 0 4px;letter-spacing:2px}
.sheet .sheet-sub{text-align:center;color:#555;font-size:12px;margin-bottom:18px}
.sheet table{width:100%;border-collapse:collapse;margin-bottom:14px}
.sheet th,.sheet td{border:1px solid #888;padding:7px 9px;font-size:13px;vertical-align:top;text-align:left}
.sheet th{background:#eef1f6;width:30%;white-space:nowrap;font-weight:700}
.sheet td{white-space:pre-wrap;word-break:break-word}
.sheet .ph-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.sheet .ph{border:1px solid #888}
.sheet .ph img{width:100%;height:150px;object-fit:cover;display:block}
.sheet .ph .cap{font-size:12px;padding:5px 7px;border-top:1px solid #888;white-space:pre-wrap}
.sheet .sign-row{display:flex;justify-content:flex-end;align-items:flex-end;gap:10px;margin-top:8px}
.sheet .sign-row .lbl{font-size:13px;font-weight:700}
.sheet .sign-row img{height:70px;border-bottom:1px solid #333}
.sheet .sec-title{font-weight:700;font-size:13px;margin:6px 0}

/* Toast / loading */
.toast{
  position:fixed;left:50%;bottom:96px;transform:translateX(-50%);
  background:#222b3a;color:#fff;padding:11px 18px;border-radius:24px;font-size:14px;z-index:90;
  max-width:88%;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,.25);
}
.loading{
  position:fixed;inset:0;z-index:100;background:rgba(255,255,255,.78);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  color:var(--ink);font-weight:600;
}
.spinner{
  width:42px;height:42px;border-radius:50%;border:4px solid #d7e0ee;border-top-color:var(--primary);
  animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
