/* ProgressSync - Customer Portal Styles */
/* Theme: dark bg=#0d1117, accent=orange, info=cyan, danger=pink, closed=slate */

:root {
  --bg:           #0d1117;
  --bg2:          #161b22;
  --bg3:          #21262d;
  --border:       rgba(255,255,255,0.08);
  --text:         #f0f6fc;
  --text-muted:   #8b949e;
  --orange:       #f97316;
  --cyan:         #22d3ee;
  --pink:         #f43f5e;
  --closed:       #94a3b8;
  --green:        #22c55e;
  --purple:       #a855f7;
  --radius:       12px;
  --radius-sm:    8px;
  --shadow:       0 8px 32px rgba(0,0,0,0.4);
}

* { margin:0; padding:0; box-sizing:border-box; font-family:'Noto Sans JP','Helvetica',sans-serif; font-weight:300; }
body { background:var(--bg); color:var(--text); min-height:100vh; overflow-x:hidden; }

/* ── Screens ─────────────────────────── */
.screen { display:none; }
.screen.active { display:block; }
.screen.active.with-sidebar { display:flex; }

/* ── Loading ─────────────────────────── */
#screen-loading.active { height:100vh; display:flex; align-items:center; justify-content:center; }
.spinner { width:40px; height:40px; border:3px solid var(--border); border-top-color:var(--cyan); border-radius:50%; animation:spin 0.8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* ── App Header ──────────────────────── */
#app-header {
  display:none; align-items:center; justify-content:space-between;
  background:var(--bg2); border-bottom:1px solid var(--border);
  padding:12px 24px; position:sticky; top:0; z-index:100;
}
.header-logo { height:28px; filter:brightness(0) invert(1); flex-shrink:0; }
.header-center { font-size:0.95rem; color:var(--text-muted); flex-shrink:0; }
.header-user { display:flex; flex-direction:column; align-items:flex-end; flex:1; min-width:0; overflow:hidden; }
#user-name  { font-size:0.95rem; color:var(--text); display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
#user-email { font-size:0.95rem; color:var(--text-muted); display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.header-right { display:flex; align-items:center; gap:12px; flex-shrink:0; }

/* ── Mobile logout (bottom of dashboard) ─── */
.mobile-logout-wrap { display:none; }
.mobile-logout-btn {
  width:100%; background:none; color:var(--text-muted); border:1px solid var(--border);
  border-radius:var(--radius-sm); padding:12px 20px; cursor:pointer; font-size:0.9rem; transition:all 0.2s;
}
.mobile-logout-btn:hover { color:var(--text); }

.lang-toggle { display:flex; gap:4px; background:var(--bg3); border-radius:20px; padding:4px; }
.lang-btn { background:none; border:none; color:var(--text-muted); cursor:pointer; padding:4px 10px; border-radius:16px; font-size:0.95rem; transition:all 0.2s; }
.lang-btn.lang-active { background:var(--bg2); color:var(--orange); border:1px solid var(--orange); }

.logout-btn { background:none; border:1px solid var(--border); color:var(--text-muted); border-radius:var(--radius-sm); padding:6px 14px; cursor:pointer; font-size:0.95rem; transition:all 0.2s; }
.logout-btn:hover { color:var(--text); border-color:var(--text-muted); }

/* ── Sidebar ─────────────────────────── */
#app-sidebar {
  display:none; flex-direction:column;
  width:220px; min-width:220px; background:var(--bg2);
  border-right:1px solid var(--border); position:fixed; top:57px; left:0;
  height:calc(100vh - 57px); overflow-y:auto; padding:16px 12px; gap:6px;
  z-index:50;
}
.sidebar-section { font-size:0.95rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:1px; margin:12px 0 6px 4px; }
.sidebar-back-btn {
  display:flex; align-items:center; gap:8px;
  width:100%; background:none; border:1px solid var(--orange);
  color:var(--orange); border-radius:var(--radius-sm); padding:8px 12px;
  cursor:pointer; font-size:0.95rem; transition:all 0.2s; text-align:left;
}
.sidebar-back-btn:hover { color:#fff; border-color:var(--orange); background:rgba(249,115,22,0.15); }

.filter-btn, .type-btn {
  display:block; width:100%; background:none; border:none;
  color:var(--text-muted); text-align:left; padding:8px 12px;
  border-radius:var(--radius-sm); cursor:pointer; font-size:0.95rem; transition:all 0.15s;
}
.filter-btn:hover, .type-btn:hover { background:var(--bg3); color:var(--text); }
.filter-btn.active  { color:var(--orange); background:rgba(249,115,22,0.1); }
.type-btn.active    { color:var(--cyan); background:rgba(34,211,238,0.08); }
.sidebar-mobile-filters { display:none; }

/* ── Auth Screens ────────────────────── */
.auth-wrap { min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; }
.auth-card { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius); padding:36px 32px; width:100%; max-width:420px; box-shadow:var(--shadow); }
.auth-logo { height:44px; display:block; margin:0 auto 24px; filter:brightness(0) invert(1); }
.auth-title { font-size:1.4rem; font-weight:500; text-align:center; margin-bottom:6px; }
.auth-subtitle { font-size:0.95rem; color:var(--text-muted); text-align:center; margin-bottom:28px; }
.form-label { display:block; font-size:0.95rem; color:var(--text-muted); margin-bottom:6px; }
.form-input { width:100%; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text); padding:11px 14px; font-size:0.95rem; outline:none; transition:border 0.2s; font-family:inherit; }
.form-input:focus { border-color:var(--cyan); }
.form-group { margin-bottom:16px; }
.btn-primary { width:100%; background:var(--cyan); color:#0d1117; border:none; border-radius:var(--radius-sm); padding:12px; font-size:1rem; font-weight:500; cursor:pointer; transition:opacity 0.2s; }
.btn-primary:hover { opacity:0.85; }
.btn-primary:disabled { opacity:0.5; cursor:not-allowed; }
.btn-secondary { width:100%; background:none; color:var(--text-muted); border:1px solid var(--border); border-radius:var(--radius-sm); padding:11px; font-size:0.95rem; cursor:pointer; transition:all 0.2s; margin-top:10px; }
.btn-secondary:hover { color:var(--text); border-color:var(--text-muted); }
.auth-link-row { text-align:center; margin-top:16px; }
.auth-link { color:var(--cyan); font-size:0.95rem; cursor:pointer; text-decoration:underline; background:none; border:none; }
.auth-lang { display:flex; justify-content:center; margin-bottom:20px; }
.confirm-icon { font-size:3rem; text-align:center; margin-bottom:12px; }
.confirm-desc { font-size:0.95rem; color:var(--text-muted); text-align:center; line-height:1.7; margin-bottom:24px; }

/* ── Dashboard ───────────────────────── */
#screen-dashboard { padding:0 0 60px; }
.dash-header { padding:24px 24px 12px; }
.dash-title { font-size:1.2rem; font-weight:500; }
.project-list { padding:0 24px; display:grid; grid-template-columns:repeat(auto-fill, minmax(320px,1fr)); gap:16px; }

.project-card {
  background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius);
  padding:20px; cursor:pointer; transition:all 0.2s;
}
.project-card:hover { border-color:var(--orange); transform:translateY(-2px); box-shadow:var(--shadow); }
.project-card-header { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.project-no { font-size:0.95rem; color:var(--text-muted); }
.project-lang-badge { font-size:0.95rem; background:var(--bg3); color:var(--cyan); border:1px solid var(--cyan); border-radius:8px; padding:2px 7px; }
.project-card-title { margin-bottom:12px; }
.project-company { font-size:1rem; font-weight:500; }
.project-sep { color:var(--text-muted); margin:0 6px; }
.project-name { font-size:0.95rem; color:var(--text-muted); }
.project-stats { display:flex; gap:12px; font-size:0.95rem; flex-wrap:wrap; }
.stat-new    strong { color:var(--orange); }
.stat-prog   strong { color:var(--cyan); }
.stat-over   strong { color:var(--pink); }
.stat-closed strong { color:var(--closed); }
.project-date { font-size:0.95rem; color:var(--text-muted); margin-top:10px; }

/* ── Status Badges ───────────────────── */
.status-badge { font-size:0.95rem; padding:2px 8px; border-radius:10px; }
.status-new         { background:rgba(249,115,22,0.15); color:var(--orange); }
.status-in-progress { background:rgba(34,211,238,0.12); color:var(--cyan);   }
.status-overdue     { background:rgba(244,63,94,0.15);  color:var(--pink);   }
.status-closed      { background:rgba(148,163,184,0.12);color:var(--closed); }

/* ── Project Report List ─────────────── */
#screen-project-reports { display:none; min-height:calc(100vh - 57px); }
#screen-project-reports.active { display:block; margin-left:220px; }
.reports-main { padding:24px; overflow-y:auto; }
.reports-header { margin-bottom:16px; }
.reports-title { font-size:1.1rem; font-weight:500; }
.reports-sub { font-size:0.95rem; color:var(--text-muted); margin-top:4px; }

.report-row {
  display:grid; grid-template-columns:14px 80px 90px 120px 1fr 80px 100px;
  align-items:center; gap:12px; padding:10px 16px;
  background:var(--bg2); border:1px solid var(--border);
  border-radius:var(--radius-sm); margin-bottom:6px;
  cursor:pointer; transition:all 0.15s;
}
.report-row:hover { border-color:var(--cyan); background:var(--bg3); }

.status-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.status-dot.status-new         { background:var(--orange); }
.status-dot.status-in-progress { background:var(--cyan); }
.status-dot.status-overdue     { background:var(--pink); }
.status-dot.status-closed      { background:var(--closed); }

.report-no-cell   { font-size:0.95rem; color:var(--text); }
.report-date-cell { font-size:0.95rem; color:var(--text); }
.report-preview   { font-size:0.95rem; min-width:0; display:flex; flex-direction:column; gap:2px; }
.report-preview-local,
.report-preview-en { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.report-preview-en { font-size:0.85rem; color:var(--text-muted); }

.type-tag { font-size:0.95rem; white-space:nowrap; }
.type-mecha       { color:#c084fc; }
.type-electrical  { color:var(--cyan); }
.type-software    { color:var(--green); }
.type-other       { color:var(--closed); }

.imp-badge { font-size:0.95rem; text-align:center; font-weight:500; }
.imp-required { color:var(--pink); }
.imp-a        { color:var(--orange); }
.imp-b        { color:var(--cyan); }
.imp-c        { color:var(--closed); }

.report-status-badge { font-size:0.95rem; white-space:nowrap; text-align:center; background:none; border:none; }

/* ── Report Detail ───────────────────── */
#screen-report-detail { display:none; min-height:calc(100vh - 57px); }
#screen-report-detail.active { display:block; margin-left:220px; }
.detail-main { padding:24px; overflow-y:auto; max-width:1000px; }

.detail-header { display:flex; align-items:flex-start; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.detail-report-no { font-size:1.2rem; font-weight:500; }
.detail-badges { display:flex; gap:8px; flex-wrap:wrap; }
.detail-meta { font-size:0.95rem; color:var(--text-muted); margin-top:4px; }

.detail-section { margin-bottom:24px; }
.detail-section-title { font-size:0.95rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; padding-bottom:6px; border-bottom:1px solid var(--border); }

/* Bilingual content boxes */
.bilingual-box { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; }
.bilingual-col { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px; min-width:0; }
.bilingual-label { font-size:0.95rem; color:var(--text-muted); margin-bottom:8px; text-transform:uppercase; letter-spacing:0.5px; }
.bilingual-text { font-size:0.95rem; line-height:1.7; white-space:pre-wrap; overflow-wrap:break-word; word-break:break-all; }

/* Photos */
.photo-grid { display:flex; gap:12px; flex-wrap:wrap; }
.detail-photo { width:160px; height:120px; object-fit:cover; border-radius:var(--radius-sm); border:1px solid var(--border); cursor:pointer; transition:transform 0.2s; }
.detail-photo:hover { transform:scale(1.05); }

/* Attachment */
.attachment-box { display:flex; align-items:center; gap:12px; background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px; }
.attachment-icon { font-size:1.8rem; }
.attachment-info { flex:1; }
.attachment-name { font-size:0.95rem; word-break:break-all; }
.attachment-size { font-size:0.95rem; color:var(--text-muted); }
.attachment-dl { background:var(--cyan); color:#0d1117; border:none; border-radius:var(--radius-sm); padding:8px 16px; cursor:pointer; font-size:0.95rem; text-decoration:none; display:inline-block; }

/* ── Comment Section ─────────────────── */
.comment-section { margin-top:24px; }
.comment-section-title { font-size:0.95rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; padding-bottom:6px; border-bottom:1px solid var(--border); }

#comment-container {
  background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:16px; min-height:200px; max-height:480px; overflow-y:auto; margin-bottom:16px;
}

.comment-item { margin-bottom:16px; }
.comment-admin { padding-left:0; }
.comment-customer { padding-left:24px; }
.comment-meta { display:flex; gap:10px; align-items:center; margin-bottom:6px; }
.comment-sender { font-size:0.95rem; font-weight:500; color:var(--cyan); }
.comment-item.comment-customer .comment-sender { color:var(--orange); }
.comment-time { font-size:0.95rem; color:var(--text-muted); }
.comment-original   { font-size:0.95rem; line-height:1.7; white-space:pre-wrap; overflow-wrap:break-word; word-break:break-all; background:var(--bg3); padding:10px 12px; border-radius:var(--radius-sm); }
.comment-translated { font-size:0.95rem; line-height:1.7; white-space:pre-wrap; overflow-wrap:break-word; word-break:break-all; color:var(--text-muted); background:var(--bg); padding:8px 12px; border-radius:var(--radius-sm); margin-top:4px; border-left:2px solid var(--border); }

/* Comment Input */
.comment-input-area { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; margin-bottom:12px; }
.comment-input-col { display:flex; flex-direction:column; gap:6px; min-width:0; }
.comment-col-label { font-size:0.95rem; color:var(--text-muted); }
.comment-lang-hint { font-size:0.95rem; color:var(--cyan); }
textarea.form-input { resize:vertical; min-height:80px; line-height:1.6; }

.comment-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.btn-send { background:var(--cyan); color:#0d1117; border:none; border-radius:var(--radius-sm); padding:10px 20px; cursor:pointer; font-size:0.95rem; font-weight:500; transition:opacity 0.2s; }
.btn-send:hover { opacity:0.85; }
.btn-send:disabled { opacity:0.5; cursor:not-allowed; }
.btn-translate { background:none; border:1px solid var(--cyan); color:var(--cyan); border-radius:var(--radius-sm); padding:9px 16px; cursor:pointer; font-size:0.95rem; transition:all 0.2s; }
.btn-translate:hover { background:rgba(34,211,238,0.1); }

.btn-cancel-active {
  border:2px solid var(--orange) !important; color:var(--orange) !important;
  background:rgba(249,115,22,0.08) !important; animation:pulse-orange 1s ease-in-out infinite;
}
@keyframes pulse-orange { 0%,100%{border-color:var(--orange);} 50%{border-color:rgba(249,115,22,0.4);} }
.btn-disabled { background:none; border:1px solid var(--border); color:var(--text-muted); border-radius:var(--radius-sm); padding:9px 16px; cursor:not-allowed; font-size:0.95rem; }

/* ── Toast ───────────────────────────── */
.toast { position:fixed; bottom:24px; right:24px; background:var(--bg3); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 20px; font-size:0.95rem; opacity:0; transform:translateY(8px); transition:all 0.3s; z-index:9999; max-width:320px; }
.toast.show { opacity:1; transform:translateY(0); }
.toast-info    { border-color:var(--cyan); }
.toast-success { border-color:var(--green); }
.toast-warning { border-color:var(--orange); }
.toast-error   { border-color:var(--pink); }

/* ── Utilities ───────────────────────── */
.empty-msg   { color:var(--text-muted); font-size:0.95rem; text-align:center; padding:40px 24px; }
.loading-msg { color:var(--text-muted); font-size:0.95rem; text-align:center; padding:20px; }

/* ── Chat Screen Layout ──────────────── */
.chat-detail-main {
  display:flex; flex-direction:column;
  height:calc(100vh - 57px); overflow:hidden;
}
/* Use dynamic viewport on browsers that support it so iOS Safari/Spark URL bar doesn't cover Send button */
@supports (height: 100dvh) {
  .chat-detail-main { height:calc(100dvh - 57px); }
}

/* Chat header (compact report info) */
.chat-header {
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:10px 20px; background:var(--bg2);
  border-bottom:1px solid var(--border); flex-shrink:0;
}
.chat-header-badges { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.chat-report-no { font-size:0.95rem; color:var(--text-muted); }
.chat-header-project { display:none; }

/* Scrollable thread */
.chat-thread {
  flex:1; overflow-y:auto; padding:20px;
  display:flex; flex-direction:column; gap:2px;
}

/* Section divider */
.section-divider {
  display:flex; align-items:center; gap:10px;
  margin:20px 0; color:var(--text-muted); font-size:0.95rem;
}
.section-divider::before, .section-divider::after {
  content:''; flex:1; height:1px; background:var(--border);
}
.section-divider-label {
  white-space:nowrap; text-transform:uppercase;
  letter-spacing:1px; padding:0 8px;
}

/* Chat bubbles */
.chat-bubble {
  max-width:72%; padding:12px 16px; border-radius:16px;
  margin-bottom:6px; word-break:break-word;
}
.bubble-admin {
  align-self:flex-start; background:var(--bg3);
  border:1px solid var(--border); border-top-left-radius:4px;
}
.bubble-customer {
  align-self:flex-end; background:rgba(34,211,238,0.07);
  border:1px solid rgba(34,211,238,0.2); border-top-right-radius:4px;
}
.bubble-pending { opacity:0.8; border-style:dashed !important; }

.bubble-meta { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.bubble-sender { font-size:0.95rem; font-weight:500; }
.sender-admin    { color:var(--orange); }
.sender-customer { color:var(--cyan); }
.bubble-date { font-size:0.95rem; color:var(--text-muted); }
.bubble-content-en {
  margin-top:8px; padding-top:8px;
  border-top:1px solid var(--border);
  font-size:0.9rem; color:var(--text-muted);
  white-space:pre-wrap; word-break:break-word;
}

.bubble-content { font-size:0.95rem; line-height:1.7; white-space:pre-wrap; overflow-wrap:break-word; word-break:break-all; }
.bubble-translated {
  font-size:0.95rem; color:var(--text-muted); line-height:1.6;
  white-space:pre-wrap; overflow-wrap:break-word; word-break:break-all;
  margin-top:8px; padding-top:8px; border-top:1px solid var(--border);
}

.bubble-photos { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.bubble-photo {
  width:360px; height:288px; object-fit:cover;
  border-radius:8px; border:1px solid var(--border);
  cursor:pointer; transition:transform 0.2s;
}
.bubble-photo:hover { transform:scale(1.06); }

.bubble-file {
  display:flex; align-items:center; gap:8px; margin-top:10px;
  background:var(--bg); border:1px solid var(--border);
  border-radius:var(--radius-sm); padding:8px 12px; font-size:0.95rem;
}
.bubble-file-icon { font-size:1.1rem; flex-shrink:0; }
.bubble-file-link { color:var(--cyan); text-decoration:none; word-break:break-all; flex:1; }
.bubble-file-link:hover { text-decoration:underline; }
.bubble-file-size { color:var(--text-muted); white-space:nowrap; }

/* Pending bubble wrapper with checkbox */
.bubble-pending-wrap { display:flex; align-items:flex-start; justify-content:flex-end; gap:8px; }
.bubble-pending-check { width:18px; height:18px; cursor:pointer; margin-top:14px; flex-shrink:0; accent-color:var(--orange); }

/* Chat input area */
.chat-input-wrap {
  border-top:1px solid var(--border); background:var(--bg2);
  padding:12px 16px; flex-shrink:0;
}
.chat-textarea {
  width:100%; background:var(--bg); border:1px solid var(--border);
  border-radius:var(--radius-sm); color:var(--text); padding:10px 14px;
  font-size:0.95rem; outline:none; resize:none; font-family:inherit;
  line-height:1.6; transition:border 0.2s; height:100%; box-sizing:border-box;
}
.chat-textarea:focus { border-color:var(--cyan); }

/* 2-column input row: textarea (left) + action panel (right) */
.c-input-main {
  display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px;
}
.c-input-actions {
  display:flex; flex-direction:column; justify-content:space-between; gap:8px;
}
.c-confirm-send-row {
  display:grid; grid-template-columns:1fr 1fr; gap:8px;
}
.c-confirm-send-row > button { width:100%; }
.c-msg-btns { display:flex; gap:8px; justify-content:flex-end; }

/* Attach zones (photo + file) side by side */
.c-attach-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px;
}
.c-attach-zone {
  border:2px dashed var(--border); border-radius:10px; padding:14px 10px;
  cursor:pointer; transition:border-color 0.2s, background 0.2s;
  min-height:100px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:6px; text-align:center;
}
.c-attach-zone:hover { border-color:var(--cyan); }
.ps-zone-over { border-color:#f97316 !important; background:rgba(249,115,22,0.08) !important; }
.c-attach-zone ion-icon { font-size:1.8rem; color:#475569; pointer-events:none; }
.c-attach-zone-text { font-size:0.95rem; color:var(--text-muted); line-height:1.4; pointer-events:none; }
.c-attach-zone-text span { color:#475569; }
.c-photo-preview { display:flex; flex-wrap:wrap; gap:5px; justify-content:center; }
.c-file-preview { width:100%; }
.btn-confirm-input {
  background:var(--bg3); border:1px solid var(--border); color:var(--text);
  border-radius:var(--radius-sm); padding:10px 16px; cursor:pointer;
  font-size:0.95rem; white-space:nowrap; transition:all 0.2s;
}
.btn-confirm-input:hover:not(:disabled) { border-color:var(--cyan); color:var(--cyan); }
.btn-confirm-input:disabled { opacity:0.45; cursor:not-allowed; }
.btn-confirm-input.has-input { color:var(--orange); }

.c-confirm-hint {
  font-size:0.8rem; color:var(--text-muted);
  margin:3px 0 6px; text-align:right; opacity:0.75;
}

.c-send-row { display:flex; justify-content:flex-end; margin-top:4px; }
.btn-pending-action {
  background:none; border:1px solid var(--border); color:var(--text-muted);
  border-radius:var(--radius-sm); padding:8px 14px; cursor:pointer;
  font-size:0.95rem; transition:all 0.2s;
}
.btn-pending-action:hover:not(:disabled) { border-color:var(--orange); color:var(--orange); }
.btn-pending-action:disabled { opacity:0.35; cursor:not-allowed; }

/* ── Responsive ──────────────────────── */
@media (max-width: 768px) {
  #app-sidebar { width:100%; height:auto; position:relative; top:auto; left:0; flex-direction:row; flex-wrap:wrap; }
  #screen-project-reports.active, #screen-report-detail.active { margin-left:0; }
  .report-row { grid-template-columns:14px 1fr auto; }
  .report-date-cell, .report-type-cell { display:none; }
  .bilingual-box { grid-template-columns:1fr; }
  .comment-input-area { grid-template-columns:1fr; }
  .project-list { grid-template-columns:1fr; }
  .chat-bubble { max-width:90%; }
  .c-input-main  { grid-template-columns:1fr; }

  /* Mobile chat: shrink input area so chat thread gets ~3x the room and Send stays in view */
  .chat-input-wrap { padding:8px 12px; }
  .chat-textarea   { min-height:60px; height:60px; padding:8px 10px; font-size:0.9rem; line-height:1.4; }
  .c-confirm-hint  { display:none; }
  /* Photo and Attach File side by side, half-height */
  .c-attach-grid   { grid-template-columns:1fr 1fr; gap:8px; margin-bottom:8px; }
  .c-attach-zone   { min-height:60px; padding:8px 6px; gap:2px; }
  .c-attach-zone ion-icon { font-size:1.3rem; }
  .c-attach-zone-text     { font-size:0.75rem; line-height:1.25; }
  /* Push input area above iOS home indicator / URL bar so Send stays tappable */
  .chat-input-wrap { padding-bottom: calc(8px + env(safe-area-inset-bottom, 0)); }

  /* Mobile-only: Confirm (left half) + Send (right half) on the same row.
     Flatten the wrapper divs so Confirm and Send become grid items of chat-input-wrap. */
  .chat-input-wrap {
      display: grid;
      grid-template-columns: 1fr 1fr;
      column-gap: 8px;
      row-gap: 8px;
  }
  .chat-input-wrap > .c-input-main,
  .chat-input-wrap .c-input-actions,
  .chat-input-wrap .c-confirm-send-row { display: contents; }

  .chat-textarea     { grid-column: 1 / -1; grid-row: 1; margin: 0; }
  #confirm-input-btn { grid-column: 1 / 2; grid-row: 2; width: 100%; margin: 0; padding: 10px 8px; }
  #send-comment-btn  { grid-column: 2 / 3; grid-row: 2; width: 100%; margin: 0; padding: 10px 8px; }
  .c-msg-btns        { grid-column: 1 / -1; grid-row: 3; display: flex; gap: 8px; justify-content: flex-end; margin: 0; }
  .c-attach-grid     { grid-column: 1 / -1; grid-row: 4; margin-bottom: 0; }

  /* Mobile header: hide brand text, language toggle, header logout — keep logo + user info only */
  #app-header { padding:8px 12px; gap:8px; }
  .header-logo { height:22px; }
  .header-center { display:none; }
  #app-header .lang-toggle { display:none; }
  #app-header .logout-btn { display:none !important; }
  .mobile-logout-wrap { display:block; margin-top:24px; padding:0 16px 24px; }

  /* Mobile sidebar: collapse padding, replace stacked filter buttons with two side-by-side dropdowns */
  #app-sidebar { padding:8px 12px; gap:6px; }
  #app-sidebar .sidebar-section,
  #app-sidebar .filter-btn,
  #app-sidebar .type-btn { display:none; }
  .sidebar-mobile-filters { display:flex; gap:8px; width:100%; }
  .mobile-filter-select {
      flex:1; min-width:0;
      padding:8px 10px;
      background:var(--bg3); color:var(--text);
      border:1px solid var(--border); border-radius:var(--radius-sm);
      font-size:0.9rem;
  }
}
