:root {
  --primary: #1a3a5c;
  --primary-light: #2a5a8c;
  --accent: #e8734a;
  --bg: #f0f4f8;
  --surface: #ffffff;
  --surface2: #f7fafc;
  --text: #1a2a3a;
  --muted: #7a8fa0;
  --border: #dde8f0;
  --green: #2ecc71;
  --red: #e74c3c;
  --yellow: #f1c40f;
  --radius: 20px;
  --shadow: 0 4px 20px rgba(26,58,92,0.12);
}
* { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
html, body { height: 100%; background: var(--bg); font-family: 'Nunito', sans-serif; color: var(--text); overflow: hidden; }

#app { display: flex; flex-direction: column; height: 100dvh; max-width: 480px; margin: 0 auto; background: var(--bg); }

.header { background: var(--primary); padding: 52px 20px 20px; color: white; flex-shrink: 0; }
.header-top { display: flex; align-items: center; justify-content: space-between; }
.header h1 { font-size: 22px; font-weight: 900; letter-spacing: -0.5px; }
.header p { font-size: 12px; opacity: 0.7; margin-top: 2px; }
.header-actions { display: flex; gap: 8px; }
.icon-btn { width: 40px; height: 40px; border-radius: 12px; background: rgba(255,255,255,0.15); border: none; color: white; font-size: 18px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.icon-btn:active { background: rgba(255,255,255,0.3); }

.today-bar { background: var(--primary-light); margin: 0 20px; border-radius: 0 0 16px 16px; padding: 10px 16px; display: flex; gap: 16px; }
.today-stat { flex: 1; text-align: center; }
.today-stat .num { font-size: 20px; font-weight: 900; color: white; }
.today-stat .lbl { font-size: 10px; color: rgba(255,255,255,0.65); text-transform: uppercase; letter-spacing: 0.5px; }

.tabs { display: flex; background: var(--surface); border-bottom: 1px solid var(--border); flex-shrink: 0; }
.tab { flex: 1; padding: 14px 4px; text-align: center; font-size: 11px; font-weight: 700; color: var(--muted); border: none; background: none; cursor: pointer; letter-spacing: 0.3px; position: relative; }
.tab.active { color: var(--primary); }
.tab.active::after { content: ''; position: absolute; bottom: 0; left: 20%; right: 20%; height: 3px; background: var(--accent); border-radius: 3px 3px 0 0; }

.content { flex: 1; overflow-y: auto; padding: 16px 16px calc(130px + env(safe-area-inset-bottom, 0px)); -webkit-overflow-scrolling: touch; }
.content::-webkit-scrollbar { display: none; }
#today-alarms { padding-bottom: calc(36px + env(safe-area-inset-bottom, 0px)); }

.page { display: none; }
.page.active { display: block; }

.drug-card { background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow); padding: 16px; margin-bottom: 14px; display: flex; gap: 14px; align-items: flex-start; position: relative; overflow: hidden; cursor: pointer; transition: transform 0.15s; }
.drug-card:active { transform: scale(0.98); }
.drug-card-img { width: 68px; height: 68px; border-radius: 14px; object-fit: cover; flex-shrink: 0; background: var(--bg); border: 1px solid var(--border); }
.drug-card-img-placeholder { width: 68px; height: 68px; border-radius: 14px; background: var(--bg); flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 28px; border: 1px solid var(--border); }
.drug-card-info { flex: 1; min-width: 0; }
.drug-card-name { font-size: 16px; font-weight: 800; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.drug-card-meta { font-size: 11px; color: var(--muted); margin-bottom: 6px; }
.drug-card-pills { display: flex; gap: 6px; flex-wrap: wrap; }
.pill-badge { font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 20px; }
.pill-blue { background: #e8f0f8; color: var(--primary); }
.pill-orange { background: #fdeee6; color: var(--accent); }
.pill-green { background: #e8f8ee; color: #27ae60; }
.pill-gray { background: var(--bg); color: var(--muted); }
.pill-usage { background: #eef4ff; color: #355b92; }
.pill-usage.ac { background: #fde8dc; color: #b95a2a; }
.pill-usage.tok { background: #e6f6ea; color: #247748; }
.drug-card-stock { position: absolute; top: 14px; right: 14px; font-size: 11px; font-weight: 700; }
.stock-ok { color: var(--green); }
.stock-low { color: var(--yellow); }
.stock-empty { color: var(--red); }
.drug-card-stripe { position: absolute; left: 0; top: 0; bottom: 0; width: 5px; }

.alarm-section-title {
  font-size: 18px;
  font-weight: 900;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin: 18px 0 12px;
}
.alarm-section-title-focus {
  margin-top: 10px;
  color: #a8431f;
  font-size: 20px;
  letter-spacing: 0.7px;
}
.empty-list-note {
  margin: -2px 0 12px;
  font-size: 18px;
  color: var(--muted);
  font-weight: 700;
}
.alarm-item {
  background: var(--surface);
  border-radius: 24px;
  padding: 20px;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  box-shadow: 0 10px 24px rgba(26,58,92,0.12);
  border: 2px solid #dce7f2;
  transition: all 0.2s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.alarm-item:active {
  transform: scale(0.985);
}
.alarm-item.pending {
  border-color: #ffc9b6;
  box-shadow: 0 10px 24px rgba(232,115,74,0.2);
}
.alarm-item.now {
  border-width: 3px;
  border-color: #f18b62;
  background: #fff7f1;
  box-shadow: 0 12px 28px rgba(232,115,74,0.28);
}
.alarm-item.overdue {
  border-color: #ee8e8e;
  background: #fff1f1;
  box-shadow: 0 10px 24px rgba(231,76,60,0.24);
}
.alarm-item.done {
  opacity: 1;
  background: #f4faf6;
  border-color: #b9e0c8;
}
.alarm-item.taking {
  border-color: #8fd9ad;
  background: #f3fbf6;
  animation: takenPop 0.45s ease;
}
.alarm-item.focus {
  padding: 22px;
  margin-bottom: 20px;
  border-width: 4px;
  border-color: #ef8d66;
  box-shadow: 0 16px 34px rgba(232,115,74,0.3), 0 8px 18px rgba(26,58,92,0.12);
  background: linear-gradient(180deg, #fffaf7 0%, #fff3eb 100%);
}
.alarm-overdue-text {
  display: block;
  padding: 8px 12px;
  border-radius: 12px;
  background: #ffdedd;
  color: #9d2221;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 0.2px;
  text-align: center;
}
.alarm-item.compact {
  padding: 18px;
  border-radius: 20px;
  box-shadow: 0 8px 20px rgba(26,58,92,0.1);
  border-color: #dbe7f2;
}
.alarm-item.compact .alarm-photo,
.alarm-item.compact .alarm-photo-placeholder {
  width: 140px;
  height: 140px;
}
.alarm-item.compact .alarm-time {
  font-size: 34px;
}
.alarm-item.compact .alarm-name {
  font-size: 28px;
}
.alarm-item.compact .alarm-dose {
  font-size: 18px;
}
.alarm-item.compact .alarm-usage-badge {
  min-height: 56px;
  font-size: 20px;
}
.alarm-item.compact .alarm-action-wrap {
  min-width: 100%;
}
.alarm-item.compact .alarm-action {
  min-height: 60px;
  font-size: 20px;
  width: 100%;
}
.alarm-item.compact .alarm-item-top-tags {
  justify-content: center;
}
.alarm-item.compact .alarm-flag {
  font-size: 18px;
  padding: 8px 10px;
}
.alarm-item.compact.pending.now {
  border-color: #d7e2ee;
  background: #f8fafc;
}
.alarm-item-top-tags {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}
.alarm-flag {
  border-radius: 12px;
  padding: 8px 12px;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 0.2px;
}
.alarm-flag-now {
  background: #ffe1d4;
  color: #b54f29;
}
.alarm-flag-overdue {
  background: #ffd8d8;
  color: #b42323;
}
.alarm-time {
  font-size: 34px;
  line-height: 1;
  font-weight: 900;
  color: #173a5f;
  text-align: center;
}
.alarm-name {
  font-size: 30px;
  line-height: 1.2;
  font-weight: 900;
  color: #122a40;
  text-align: center;
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.alarm-image-wrap {
  display: flex;
  justify-content: center;
  margin: 6px 0 4px;
}
.alarm-photo {
  width: 160px;
  height: 160px;
  border-radius: 24px;
  object-fit: cover;
  border: 3px solid #d5e3f0;
  flex-shrink: 0;
  box-shadow: 0 10px 26px rgba(23,58,95,0.16);
}
.alarm-photo-placeholder {
  width: 160px;
  height: 160px;
  border-radius: 24px;
  border: 3px solid #d5e3f0;
  background: var(--surface2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 56px;
  flex-shrink: 0;
  box-shadow: 0 10px 26px rgba(23,58,95,0.12);
}
.alarm-support {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.alarm-dose {
  font-size: 18px;
  color: #365068;
  font-weight: 700;
  text-align: center;
}
.alarm-stock-warning {
  font-size: 18px;
  font-weight: 800;
  text-align: center;
  border-radius: 12px;
  padding: 8px 10px;
}
.alarm-stock-warning.stock-low {
  color: #8f4c05;
  background: #ffe8cc;
}
.alarm-stock-warning.stock-empty {
  color: #9d2221;
  background: #ffdede;
}
.alarm-usage-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 60px;
  padding: 12px 18px;
  border-radius: 16px;
  font-size: 22px;
  font-weight: 900;
  background: #dce7ff;
  color: #1d3f79;
}
.alarm-usage-badge.ac { background: #ffd8cc; color: #8f2d05; }
.alarm-usage-badge.tok { background: #d4f5df; color: #145c30; }
.alarm-action-wrap {
  display: flex;
  width: 100%;
}
.alarm-action {
  width: 100%;
  min-height: 60px;
  border-radius: 16px;
  border: none;
  cursor: pointer;
  font-family: 'Nunito', sans-serif;
  font-size: 22px;
  font-weight: 900;
  line-height: 1.1;
  padding: 12px 14px;
  background: var(--accent);
  color: #fff;
  box-shadow: 0 8px 14px rgba(232,115,74,0.25);
  transition: transform 0.13s ease, box-shadow 0.13s ease;
}
.alarm-action:active {
  transform: scale(0.94);
  box-shadow: 0 3px 8px rgba(232,115,74,0.25);
}
.alarm-item.done .alarm-action {
  min-height: 60px;
  padding: 12px 14px;
  font-size: 22px;
  font-weight: 900;
  border-radius: 14px;
  border: 2px solid #3a5874;
  background: #f1f6fb;
  color: #274767;
  text-decoration: none;
  box-shadow: none;
}
.alarm-item.taking .alarm-action {
  background: #2fb167;
  color: #fff;
  border: none;
  border-radius: 12px;
  min-height: 60px;
  padding: 12px 14px;
  text-decoration: none;
}
.alarm-item.taking .alarm-action[disabled] {
  opacity: 1;
  cursor: default;
}
.alarm-done-overlay {
  align-self: center;
  background: #2fb167;
  color: #fff;
  border-radius: 12px;
  padding: 8px 12px;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 0.2px;
  box-shadow: 0 6px 14px rgba(47,177,103,0.24);
}

@keyframes takenPop {
  0% { transform: scale(1); }
  45% { transform: scale(1.03); }
  100% { transform: scale(1); }
}

@media (max-width: 420px) {
  .alarm-item { gap: 12px; padding: 18px 16px; }
  .alarm-photo, .alarm-photo-placeholder { width: 148px; height: 148px; }
  .alarm-time { font-size: 32px; }
  .alarm-name { font-size: 28px; }
  .alarm-dose { font-size: 18px; }
  .alarm-usage-badge { min-height: 56px; font-size: 20px; }
  .alarm-action { min-height: 56px; font-size: 20px; }
  .alarm-item.focus { padding: 20px 16px; gap: 12px; }
  .alarm-item.focus .alarm-photo, .alarm-item.focus .alarm-photo-placeholder { width: 164px; height: 164px; }
  .alarm-item.focus .alarm-time { font-size: 34px; }
  .alarm-item.focus .alarm-action { min-height: 60px; font-size: 22px; }
  .alarm-overdue-text { font-size: 18px; padding: 8px 10px; }
  .alarm-item.compact .alarm-photo, .alarm-item.compact .alarm-photo-placeholder { width: 140px; height: 140px; }
  .alarm-item.compact .alarm-time { font-size: 32px; }
  .alarm-item.compact .alarm-name { font-size: 28px; }
  .alarm-item.compact .alarm-dose { font-size: 18px; }
  .alarm-item.compact .alarm-action { min-height: 56px; font-size: 20px; }
  .alarm-item.done .alarm-action { min-height: 56px; font-size: 20px; padding: 12px 14px; }
}

.history-item { background: var(--surface); border-radius: 14px; padding: 12px 14px; margin-bottom: 8px; display: flex; align-items: center; gap: 12px; }
.history-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.history-text { flex: 1; font-size: 13px; }
.history-text strong { font-weight: 800; }
.history-date { font-size: 11px; color: var(--muted); }

.fab {
  position: fixed;
  left: 50%;
  right: auto;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  width: 58px;
  height: 58px;
  border-radius: 20px;
  background: var(--accent);
  color: white;
  font-size: 28px;
  border: none;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(232,115,74,0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateX(-50%);
  z-index: 120;
}
.fab:active { transform: translateX(-50%) scale(0.93); }

.modal-overlay { position: fixed; inset: 0; background: rgba(10,20,35,0.6); z-index: 200; display: flex; align-items: flex-end; opacity: 0; pointer-events: none; transition: opacity 0.25s; }
.modal-overlay.open { opacity: 1; pointer-events: all; }
.modal { background: var(--surface); border-radius: 28px 28px 0 0; width: 100%; max-width: 480px; margin: 0 auto; padding: 24px 20px 40px; transform: translateY(100%); transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1); max-height: 92dvh; overflow-y: auto; }
.modal-overlay.open .modal { transform: translateY(0); }
.modal-handle { width: 40px; height: 4px; background: var(--border); border-radius: 4px; margin: 0 auto 20px; }
.modal-title { font-size: 20px; font-weight: 900; margin-bottom: 20px; }

.form-group { margin-bottom: 16px; }
.form-label { font-size: 12px; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; display: block; }
.form-input { width: 100%; padding: 14px 16px; border-radius: 14px; border: 1.5px solid var(--border); background: var(--surface2); font-family: 'Nunito', sans-serif; font-size: 15px; color: var(--text); outline: none; transition: border-color 0.2s; }
.form-input:focus { border-color: var(--primary-light); }
.form-row { display: flex; gap: 10px; }
.form-row .form-group { flex: 1; }
.usage-condition-group {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
}
.usage-condition-option {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 42px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  background: var(--surface2);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.usage-condition-option span {
  color: var(--muted);
}
.usage-condition-option input {
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1.5px solid #b7c6d5;
  background: #fff;
}
.usage-condition-option input:checked {
  border-color: #244b7e;
  background: radial-gradient(circle at center, #244b7e 0 45%, transparent 50%);
}
.usage-condition-option input:checked + span {
  color: #244b7e;
}

.photo-upload { border: 2px dashed var(--border); border-radius: 16px; padding: 20px; text-align: center; cursor: pointer; background: var(--surface2); position: relative; }
.photo-upload input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.photo-upload .icon { font-size: 32px; margin-bottom: 6px; }
.photo-upload p { font-size: 13px; color: var(--muted); font-weight: 700; }
.photo-preview { width: 100%; max-height: 160px; object-fit: cover; border-radius: 14px; display: none; }

.time-slots { display: flex; flex-wrap: wrap; gap: 8px; }
.time-slot { display: flex; align-items: center; gap: 6px; background: var(--surface2); border: 1.5px solid var(--border); border-radius: 12px; padding: 8px 10px; }
.time-slot input[type=time] { border: none; background: none; font-family: 'Nunito', sans-serif; font-size: 15px; font-weight: 700; color: var(--primary); outline: none; width: 90px; }
.time-slot-remove { background: none; border: none; color: var(--red); font-size: 18px; cursor: pointer; }
.add-time-btn { background: var(--bg); border: 1.5px dashed var(--border); border-radius: 12px; padding: 8px 14px; font-family: 'Nunito', sans-serif; font-size: 13px; font-weight: 700; color: var(--muted); cursor: pointer; }

.toggle-row { display: flex; align-items: center; justify-content: space-between; background: var(--surface2); border-radius: 14px; padding: 14px 16px; }
.toggle-label { font-size: 14px; font-weight: 700; }
.toggle { position: relative; width: 48px; height: 28px; }
.toggle input { opacity: 0; width: 0; height: 0; }
.toggle-slider { position: absolute; inset: 0; background: var(--border); border-radius: 28px; cursor: pointer; transition: background 0.2s; }
.toggle-slider::before { content: ''; position: absolute; width: 22px; height: 22px; left: 3px; top: 3px; background: white; border-radius: 50%; transition: transform 0.2s; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.toggle input:checked + .toggle-slider { background: var(--primary); }
.toggle input:checked + .toggle-slider::before { transform: translateX(20px); }

.btn-primary { width: 100%; padding: 16px; background: var(--primary); color: white; border: none; border-radius: 16px; font-family: 'Nunito', sans-serif; font-size: 16px; font-weight: 800; cursor: pointer; margin-top: 8px; }
.btn-danger { background: var(--red); }

.stock-counter { display: flex; align-items: center; gap: 12px; }
.stock-counter button { width: 40px; height: 40px; border-radius: 12px; border: 1.5px solid var(--border); background: var(--surface2); font-size: 20px; cursor: pointer; font-weight: 700; color: var(--primary); display: flex; align-items: center; justify-content: center; }
.stock-counter .val { font-size: 22px; font-weight: 900; min-width: 50px; text-align: center; }

select.form-input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a8fa0' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }

.notif-banner { background: var(--primary); color: white; padding: 12px 16px; border-radius: 14px; margin-bottom: 14px; display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 700; }
.notif-banner button { background: rgba(255,255,255,0.2); border: none; color: white; padding: 6px 12px; border-radius: 8px; font-family: 'Nunito', sans-serif; font-size: 12px; font-weight: 700; cursor: pointer; flex-shrink: 0; }

.empty-state { text-align: center; padding: 48px 24px; }
.empty-state .emoji { font-size: 52px; margin-bottom: 16px; }
.empty-state h3 { font-size: 18px; font-weight: 800; margin-bottom: 8px; }
.empty-state p { font-size: 14px; color: var(--muted); line-height: 1.6; }

.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
.detail-stat { background: var(--surface2); border-radius: 12px; padding: 12px; }
.detail-stat .val { font-size: 20px; font-weight: 900; color: var(--primary); }
.detail-stat .key { font-size: 11px; color: var(--muted); margin-top: 2px; }

@keyframes slideUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
.drug-card { animation: slideUp 0.3s ease both; }


/* MONO / FOCUS — minimalist visual layer. Existing workflows and records stay intact. */
:root {
  --primary: #17191b; --primary-light: #25272a; --accent: #17191b;
  --bg: #f4f4f2; --surface: #fff; --surface2: #f8f8f6;
  --text: #18191b; --muted: #77797b; --border: #e5e5e2;
  --green: #3b3e3d; --red: #525252; --yellow: #686868;
  --radius: 22px; --shadow: none;
}
html, body, #app { background: var(--bg); }
.header { background: var(--bg); color: var(--text); padding: calc(30px + env(safe-area-inset-top, 0px)) 22px 16px; }
.header h1 { font-size: 21px; font-weight: 900; letter-spacing: -1px; }
.header p { font-size: 12px; color: var(--muted); opacity: 1; letter-spacing: .04em; }
.header-actions { gap: 3px; }
.icon-btn { background: transparent; color: var(--text); border: 1px solid transparent; border-radius: 50%; width: 36px; height: 36px; font-size: 17px; }
.icon-btn:active { background: #e7e7e4; }
.today-bar { background: transparent; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); border-radius: 0; margin: 0 22px; padding: 13px 0; gap: 4px; }
.today-stat .num { color: var(--text); font-size: 18px; font-weight: 900; }
.today-stat .lbl { color: var(--muted); font-size: 9px; letter-spacing: 1.5px; }
.tabs { background: transparent; border-bottom: 1px solid var(--border); padding: 0 12px; }
.tab { font-size: 12px; letter-spacing: .08em; padding: 15px 6px; font-weight: 800; }
.tab.active { color: var(--text); }
.tab.active::after { background: var(--text); height: 2px; left: 30%; right: 30%; }
.content { padding: 22px 20px calc(120px + env(safe-area-inset-bottom, 0px)); }
.alarm-section-title { font-size: 10px; font-weight: 900; letter-spacing: 2.2px; color: var(--muted); margin: 29px 3px 14px; }
.alarm-section-title-focus { font-size: 11px; color: var(--text); margin: 4px 3px 14px; }
.mono-count { font-weight: 600; letter-spacing: 0; }
#page-bugun .alarm-item.focus {
  border: 1px solid #dededb; border-radius: 30px; background: #fff;
  box-shadow: 0 14px 44px rgba(0,0,0,.035);
  padding: 26px 24px; min-height: 330px;
}
#page-bugun .alarm-item.focus .alarm-name { font-size: clamp(30px, 9vw, 46px); line-height: 1.06; letter-spacing: -1.8px; font-weight: 900; color: var(--text); overflow-wrap: anywhere; }
#page-bugun .alarm-item.focus .alarm-time { font-size: clamp(44px, 15vw, 70px); line-height: 1; letter-spacing: -3px; font-weight: 900; color: var(--text); }
#page-bugun .alarm-item.focus .alarm-action { background: var(--text); color: white; border-radius: 16px; font-size: 15px; letter-spacing: 1.3px; font-weight: 900; min-height: 56px; }
#page-bugun .alarm-item.focus .alarm-flag { background: #f1f1ef; color: #3a3b3d; border: 1px solid #e6e6e3; letter-spacing: 1.4px; }
#page-bugun .alarm-item.focus .alarm-photo-placeholder { background: #f3f3f1; }
#page-bugun .alarm-item.compact { border: 1px solid var(--border); border-radius: 18px; box-shadow: none; background: rgba(255,255,255,.75); }
.drug-card, .history-item { box-shadow: none; border: 1px solid var(--border); }
.pill-blue, .pill-orange, .pill-green, .pill-gray, .pill-usage, .pill-usage.ac, .pill-usage.tok { background: #efefed; color: #4b4d4e; }
.alarm-usage-badge, .alarm-usage-badge.ac, .alarm-usage-badge.tok { background: #f0f0ee; color: #3c3e3e; }
.fab, .btn-primary { background: var(--text); color: #fff; box-shadow: none; }
.empty-list-note { font-size: 13px; font-weight: 600; }
@media (max-width: 370px) { .header { padding-left: 14px; padding-right: 14px; } .header-actions { gap: 0; } .icon-btn { width: 32px; } }


/* MONO refinements: make the current dose dominant, later doses truly secondary. */
#page-bugun .alarm-item.focus,
#page-bugun .alarm-item.focus.now,
#page-bugun .alarm-item.focus.overdue,
#page-bugun .alarm-item.focus.taking {
  background: #fff; border: 1px solid #dededb;
  box-shadow: 0 14px 44px rgba(0,0,0,.035);
  gap: 14px; transform: none;
}
#page-bugun .alarm-item.focus .alarm-image-wrap { margin: 0; }
#page-bugun .alarm-item.focus .alarm-photo,
#page-bugun .alarm-item.focus .alarm-photo-placeholder {
  width: 96px; height: 96px; border: 1px solid #e7e7e5;
  box-shadow: none; border-radius: 20px; font-size: 42px;
}
#page-bugun .alarm-item.focus .alarm-time {
  font-size: clamp(44px, 15vw, 70px); color: #17191b;
  font-variant-numeric: tabular-nums;
}
#page-bugun .alarm-item.focus .alarm-name {
  font-size: clamp(30px, 9vw, 46px); color: #17191b;
  display: block; overflow: visible; -webkit-line-clamp: unset;
}
#page-bugun .alarm-item.focus .alarm-dose { color: #626466; font-size: 14px; }
#page-bugun .alarm-item.focus .alarm-usage-badge { min-height: 42px; font-size: 14px; border-radius: 12px; }
#page-bugun .alarm-item.focus .alarm-flag { font-size: 11px; padding: 7px 11px; }
#page-bugun .alarm-item.focus .alarm-overdue-text {
  background: #ededeb; color: #292b2d; font-size: 13px; padding: 8px;
}
#page-bugun .alarm-item.focus .alarm-action,
#page-bugun .alarm-item.focus.taking .alarm-action {
  background: #17191b; color: white; box-shadow: none; border: none;
  font-size: 16px; min-height: 58px;
}
#page-bugun .alarm-item.compact,
#page-bugun .alarm-item.compact.pending.now,
#page-bugun .alarm-item.compact.overdue,
#page-bugun .alarm-item.compact.done {
  background: rgba(255,255,255,.78); border: 1px solid #e4e4e1;
  box-shadow: none; padding: 16px; gap: 9px;
}
#page-bugun .alarm-item.compact .alarm-image-wrap { display: none; }
#page-bugun .alarm-item.compact .alarm-name { color: #202123; font-size: 19px; letter-spacing: -.5px; }
#page-bugun .alarm-item.compact .alarm-time { color: #292b2c; font-size: 26px; font-variant-numeric: tabular-nums; }
#page-bugun .alarm-item.compact .alarm-dose { color: #777; font-size: 12px; }
#page-bugun .alarm-item.compact .alarm-usage-badge { min-height: 36px; font-size: 12px; padding: 6px; }
#page-bugun .alarm-item.compact .alarm-flag { font-size: 10px; padding: 5px 8px; }
#page-bugun .alarm-item.compact .alarm-action { background: #eee; color: #17191b; border: 1px solid #ddd; box-shadow: none; min-height: 44px; font-size: 13px; }
#page-bugun .alarm-item.done .alarm-done-overlay { background: #e9e9e7; color: #363738; box-shadow: none; font-size: 12px; }
#page-bugun .alarm-item.compact .alarm-stock-warning { font-size: 12px; }
#page-bugun .alarm-item:focus-within { outline: 2px solid #888; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .alarm-item, .alarm-action, .drug-card { animation: none !important; transition: none !important; }
}

/* Only explicit action buttons record a dose. Cards are informational. */
#page-bugun .alarm-item { cursor: default; }
#page-bugun .alarm-item:active { transform: none; }
#page-bugun .alarm-action { cursor: pointer; touch-action: manipulation; }
#page-bugun .alarm-action:focus-visible { outline: 3px solid #575a5c; outline-offset: 3px; }
#page-bugun .alarm-item.focus .alarm-usage-badge.ac,
#page-bugun .alarm-item.focus .alarm-usage-badge.tok,
#page-bugun .alarm-item.compact .alarm-usage-badge.ac,
#page-bugun .alarm-item.compact .alarm-usage-badge.tok {
  background: #efefed; color: #353638; font-weight: 800; letter-spacing: .08em;
}

/* User-controlled focus image: large for visual identification, small for discretion. */
.focus-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.focus-heading .alarm-section-title-focus { margin:4px 0; }
.photo-size-control { display:flex; padding:3px; background:#e9e9e7; border-radius:12px; gap:3px; }
.photo-size-option { border:0; background:transparent; color:#5c5d5f; border-radius:9px; padding:9px 10px; font:750 11px/1.2 system-ui,sans-serif; cursor:pointer; }
.photo-size-option.selected { background:#fff; color:#191a1b; box-shadow:0 1px 3px #00000010; }
.photo-size-option:focus-visible { outline:2px solid #191a1b; outline-offset:2px; }
#page-bugun .alarm-item.focus.photo-large .alarm-photo,
#page-bugun .alarm-item.focus.photo-large .alarm-photo-placeholder {
  width:min(66vw,240px); height:min(66vw,240px); max-width:100%;
  border-radius:26px; object-fit:contain; background:#f6f6f4; font-size:72px;
}
#page-bugun .alarm-item.focus.photo-small .alarm-photo,
#page-bugun .alarm-item.focus.photo-small .alarm-photo-placeholder {
  width:76px; height:76px; border-radius:16px; font-size:32px;
}


/* Dose status: subdued semantic color, never color alone. */
#page-bugun .alarm-item.dose-upcoming .alarm-time { color:#235b9c; }
#page-bugun .alarm-item.dose-overdue .alarm-time { color:#b8333d; }
#page-bugun .alarm-item.dose-taken .alarm-time { color:#20754c; }
#page-bugun .alarm-item.dose-taken .alarm-done-overlay { color:#20754c; }
#page-bugun .alarm-item.dose-overdue .alarm-overdue-text { color:#b8333d; background:#fceced; }
#page-bugun .alarm-item.focus.dose-upcoming .alarm-time { color:#235b9c; }
#page-bugun .alarm-item.focus.dose-overdue .alarm-time { color:#b8333d; }
#page-bugun .alarm-item.focus.dose-taken .alarm-time { color:#20754c; }
.dose-time-detail { text-align:center; color:#69716d; font-size:12px; font-weight:700; }
#page-bugun .alarm-item { cursor:default; }

/* Keep focus on the medicine, not dashboard counters. */
.today-bar { display:none !important; }
#page-bugun .alarm-stock-warning { font-size:13px; line-height:1.4; border-radius:12px; padding:11px; }
#page-bugun .alarm-stock-warning.stock-low { background:#f4f0e8; color:#735620; }
#page-bugun .alarm-stock-warning.stock-empty { background:#f9e8e9; color:#9d303a; }

#page-bugun .alarm-item.dose-skipped .alarm-time {color:#777;}
#page-bugun .alarm-item.dose-skipped .alarm-done-overlay {color:#666;}
#page-bugun .alarm-item.focus.photo-hidden .alarm-image-wrap {display:none;}
#page-bugun .alarm-skip-action {width:100%;margin-top:9px;padding:12px;border:1px solid #d8d8d6;background:transparent;border-radius:12px;color:#555;font-size:13px;font-weight:700;cursor:pointer;}
#page-bugun .alarm-skip-action:focus-visible {outline:3px solid #555;outline-offset:2px;}

/* Photo-first focus card: use the whole frame, never crop packaging. */
#page-bugun .alarm-item.focus.photo-large .alarm-photo,
#page-bugun .alarm-item.focus.photo-large .alarm-photo-placeholder {
  width:min(74vw,270px);height:min(74vw,270px);max-width:100%;object-fit:contain;
  background:#f4f4f2;border:0;box-shadow:none;border-radius:22px;
}
#page-bugun .alarm-item.focus.photo-large .alarm-photo-placeholder {font-size:clamp(78px,20vw,106px);}
#page-bugun .alarm-item.focus .alarm-image-wrap {margin:0 0 9px;}
#page-bugun .alarm-item.focus .alarm-item-top-tags {display:none;}
#page-bugun .alarm-item.focus .alarm-support {gap:5px;}
#page-bugun .alarm-item.focus .alarm-stock-warning {padding:8px 10px;}
@media(max-height:720px) and (max-width:600px){
 #page-bugun .alarm-item.focus.photo-large .alarm-photo,
 #page-bugun .alarm-item.focus.photo-large .alarm-photo-placeholder {width:min(64vw,220px);height:min(64vw,220px);}
}

/* Compact, readable usage and dose pills; save vertical space for the photo and action. */
#page-bugun .alarm-item.focus .alarm-dose-tags{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:7px;margin:10px 0 5px}
#page-bugun .alarm-item.focus .alarm-usage-badge,
#page-bugun .alarm-item.focus .alarm-dose-tag{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:0;min-height:0;margin:0;padding:8px 13px;border-radius:999px;background:#f0f0ee;color:#333;font:750 12px/1.2 system-ui,sans-serif;letter-spacing:.5px}
#page-bugun .alarm-item.focus .alarm-dose{font-size:12px;color:#777;font-weight:500}
#page-bugun .alarm-item.compact .alarm-dose-tags{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}
#page-bugun .alarm-item.compact .alarm-dose-tag{font-size:12px;color:#666}


.alarm-name-toggle{border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;padding:4px 8px;border-radius:10px}.alarm-name-toggle:focus-visible{outline:3px solid #333}.alarm-purpose-note{margin:7px auto 9px;max-width:90%;padding:10px 13px;border-radius:12px;background:#f2f2f0;color:#333;font-size:14px;line-height:1.5;text-align:center;overflow-wrap:anywhere}

.photo-settings-trigger{border:1px solid #dedede;border-radius:10px;background:#fff;color:#333;padding:8px 12px;font:inherit;font-size:12px;cursor:pointer}.photo-settings-panel{padding:12px;margin:8px 0 14px;border:1px solid #e4e4e4;border-radius:14px;background:#fafafa;font-size:13px}.photo-settings-panel[hidden]{display:none}.photo-settings-panel .photo-size-control{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}

.menu-icon-trigger{border:0;background:transparent;color:inherit;font-size:27px;line-height:1;cursor:pointer;padding:8px 10px;min-width:44px;min-height:44px}.menu-icon-trigger:focus-visible{outline:3px solid currentColor;border-radius:8px}.main-settings-panel{margin:0 auto 10px;padding:18px;max-width:470px;border:1px solid #e3e3e3;border-radius:14px;background:#fff}.main-settings-panel[hidden]{display:none}.settings-panel-heading{font-size:12px;font-weight:900;letter-spacing:1px;margin-bottom:12px}.settings-panel-label{font-size:14px;margin-bottom:10px}.main-settings-panel .photo-size-control{display:flex;gap:8px;flex-wrap:wrap}

.settings-extra-heading{margin-top:22px}.settings-action-list{display:grid;gap:8px}.settings-action-list button{min-height:46px;text-align:left;padding:10px 12px;border:1px solid #e5e5e5;border-radius:11px;background:#fafafa;color:#222;font:inherit;font-size:14px;cursor:pointer}.settings-action-list button:focus-visible{outline:3px solid #555}

/* Monochrome, no emoji-style settings icons */
.menu-lines{display:flex;flex-direction:column;gap:5px;width:21px}.menu-lines i{display:block;width:21px;height:2px;background:currentColor;border-radius:1px}.settings-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:110}.settings-backdrop[hidden]{display:none}.main-settings-panel{position:fixed;right:0;top:0;bottom:0;width:min(390px,92vw);max-width:none;margin:0;border:0;border-left:1px solid #ddd;border-radius:0;padding:24px 22px;overflow-y:auto;z-index:111;box-shadow:-12px 0 30px rgba(0,0,0,.07);background:#fff}.settings-drawer-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6e6e6;padding-bottom:16px;margin-bottom:22px}.settings-drawer-top .settings-panel-heading{margin:0;letter-spacing:1.6px}.settings-close{border:0;background:transparent;font:inherit;font-size:30px;line-height:1;cursor:pointer;min-width:44px;min-height:44px}.settings-action-list button{background:#fff;border-radius:9px;font-weight:650}.menu-icon-trigger{display:grid;place-items:center}

.settings-mobile-back{display:none}@media(max-width:600px){.settings-backdrop{display:none!important}.main-settings-panel{position:fixed;inset:0;width:100%;max-width:none;box-sizing:border-box;border:0;box-shadow:none;padding:env(safe-area-inset-top,0px) 22px env(safe-area-inset-bottom,0px);border-radius:0;background:#f7f7f5;z-index:300}.settings-drawer-top{min-height:72px;justify-content:flex-start;gap:14px;margin-bottom:24px}.settings-mobile-back{display:grid;place-items:center;border:0;background:transparent;font-size:29px;min-width:48px;min-height:48px;cursor:pointer}.settings-close{display:none}.settings-drawer-top .settings-panel-heading{font-size:16px;letter-spacing:.8px}.settings-panel-label{font-size:16px}.main-settings-panel .photo-size-option{min-height:46px;padding:10px 15px}.settings-action-list button{min-height:56px;font-size:16px;padding:14px 16px}.settings-extra-heading{margin-top:30px}}
body.settings-open{overflow:hidden}

/* Minimal mobile medicine editor */
#add-modal .modal{background:#fff}#add-modal .form-label{font-size:14px;font-weight:800;color:#242424}#add-modal .form-hint{font-size:12px;color:#777;line-height:1.5}#add-modal .form-input{border:1px solid #d9d9d9;border-radius:11px;background:#fff;color:#151515}#add-modal .form-input:focus{outline:2px solid #222;outline-offset:1px}#add-modal .usage-condition-group{gap:8px}#add-modal .usage-condition-option{min-height:44px;display:inline-flex;align-items:center;gap:6px}#add-modal .btn-primary:not(.btn-danger){background:#181818;color:white;border-radius:12px;min-height:54px;font-weight:850}#add-modal .photo-upload{border:1px dashed #aaa;border-radius:14px;background:#f7f7f6}#add-modal #photo-placeholder .icon{display:none}
@media(max-width:600px){#add-modal{align-items:stretch;justify-content:stretch;padding:0}#add-modal .modal{box-sizing:border-box;position:relative;inset:auto;width:100%;max-width:none;height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;border-radius:0;padding:24px 20px max(32px,env(safe-area-inset-bottom));box-shadow:none}#add-modal .modal-handle{display:none}#add-modal .modal-title{font-size:24px;letter-spacing:-.5px;margin:4px 0 24px}#add-modal .form-row{display:grid;grid-template-columns:1fr;gap:0}#add-modal .form-input{min-height:48px;font-size:16px}#add-modal textarea.form-input{min-height:80px}#add-modal .form-group{margin-bottom:19px}#add-modal .photo-upload{min-height:120px}#add-modal .stock-counter button{min-width:44px;min-height:48px}#add-modal .stock-counter .val{font-size:22px}}

.medicine-editor-header{display:flex;align-items:center;gap:12px}.medicine-editor-back{border:0;background:transparent;color:#191919;font-size:29px;min-width:48px;min-height:48px;cursor:pointer;display:none}.medicine-editor-back:focus-visible{outline:3px solid #222;border-radius:8px}@media(max-width:600px){.medicine-editor-back{display:block}#add-modal .medicine-editor-header{margin:0 0 22px;border-bottom:1px solid #e8e8e8;padding-bottom:12px}#add-modal .medicine-editor-header .modal-title{margin:0;font-size:22px}#add-modal .modal{padding-top:max(12px,env(safe-area-inset-top))}}

/* Unified readable dose status; gentle emphasis only for overdue */
.alarm-overdue-text,.alarm-waiting-text{display:block;box-sizing:border-box;width:100%;padding:10px 12px;border-radius:10px;font-size:16px!important;font-weight:850;line-height:1.45;letter-spacing:.3px;text-align:center;text-transform:uppercase}
.alarm-waiting-text{color:#202020;background:#f0f0ee}
.alarm-overdue-text{color:#8d2424;background:#f8e8e8;animation:overdue-breathe 2.8s ease-in-out infinite}
@keyframes overdue-breathe{0%,100%{background:#f8e8e8;color:#8d2424}50%{background:#eed1d1;color:#6d1515}}
@media(prefers-reduced-motion:reduce){.alarm-overdue-text{animation:none}}

/* Status is plain text, never a button or chip. */
.alarm-support .alarm-overdue-text,.alarm-support .alarm-waiting-text{width:auto;padding:0;border:0;border-radius:0;background:transparent!important;box-shadow:none;cursor:default;pointer-events:none;font-size:16px!important;font-weight:850;line-height:1.5;text-align:center}
.alarm-support .alarm-waiting-text{color:#202020}
.alarm-support .alarm-overdue-text{color:#8d2424;animation:overdue-text-breathe 2.8s ease-in-out infinite}
@keyframes overdue-text-breathe{0%,100%{opacity:1}50%{opacity:.55}}
@media(prefers-reduced-motion:reduce){.alarm-support .alarm-overdue-text{animation:none}}

/* Live monochrome redesign: override legacy blue/orange theme */
:root{--primary:#191919;--primary-light:#303030;--accent:#191919;--bg:#f5f5f3;--surface:#fff;--surface2:#f7f7f5;--text:#171717;--muted:#777;--border:#e4e4e1;--green:#333;--red:#8d2424;--yellow:#777;--radius:18px;--shadow:none}
html,body{background:#f5f5f3;color:#171717;font-family:Arial,Helvetica,sans-serif}
#app{max-width:480px;background:#f5f5f3}
.header{background:#f5f5f3;color:#171717;padding:24px 20px 14px;border-bottom:1px solid #e6e6e4}
.header h1{font-size:26px;font-weight:850;letter-spacing:-1px}
.header p{color:#777;opacity:1;font-size:13px}
.icon-btn,.menu-icon-trigger{background:#fff!important;color:#191919!important;border:1px solid #dededb!important;box-shadow:none!important}
.tabs{background:#f5f5f3;border-bottom:1px solid #e3e3e0}
.tab{font-size:14px;font-weight:750;color:#777;padding:16px 6px}
.tab.active{color:#171717}
.tab.active::after{background:#191919}
.content{background:#f5f5f3}
.alarm-item,.alarm-item.focus,.alarm-item.compact,.alarm-item.overdue,.alarm-item.pending.now,.alarm-item.compact.pending.now{background:#fff!important;border:1px solid #e1e1df!important;border-radius:22px!important;box-shadow:none!important;color:#171717}
.alarm-item.focus{padding:20px!important}
.alarm-item-top-tags{display:none!important}
.alarm-name,.alarm-item.compact .alarm-name{color:#111!important;font-size:30px!important;letter-spacing:-.8px}
.alarm-time{color:#171717!important;font-size:44px!important;font-weight:900}
.alarm-item.overdue .alarm-time{color:#a92f39!important}
.alarm-dose,.alarm-item.compact .alarm-dose{color:#666!important;font-size:14px!important}
.alarm-usage-badge,.alarm-dose-tag,.alarm-item.compact .alarm-usage-badge{background:#f0f0ee!important;color:#222!important;border:0!important;min-height:0!important;font-size:13px!important;border-radius:30px!important;padding:9px 13px!important}
.alarm-action,.alarm-item.compact .alarm-action{background:#191919!important;color:#fff!important;border:0!important;border-radius:12px!important;box-shadow:none!important;min-height:56px!important;font-size:17px!important;font-weight:850}
.alarm-skip-action{background:#fff!important;color:#222!important;border:1px solid #dededb!important;border-radius:12px!important;box-shadow:none!important}
.alarm-photo-placeholder{background:#f1f1ef!important;color:#333!important}
.alarm-stock-warning{background:#f1f1ef!important;color:#333!important}
.fab{background:#191919!important;border-radius:15px!important;box-shadow:none!important}
.alarm-support .alarm-overdue-text,.alarm-support .alarm-waiting-text{background:none!important;border:0!important;padding:0!important;border-radius:0!important;font-size:16px!important}
@media(max-width:600px){.header{padding-top:max(18px,env(safe-area-inset-top))}.alarm-item.focus{padding:16px!important}}

/* Do not let the add-medicine floating action cover ALDIM/ATLADIM. */
#add-drug-fab[hidden]{display:none!important}

/* Approved mono focus card: status immediately under the clock, two stacked actions. */
#page-bugun .alarm-item.focus{display:flex;flex-direction:column;align-items:stretch;text-align:center;gap:0}
#page-bugun .alarm-item.focus .alarm-image-wrap{align-self:center}
#page-bugun .alarm-item.focus .alarm-name{margin-top:8px}
#page-bugun .alarm-item.focus .alarm-overdue-text,#page-bugun .alarm-item.focus .alarm-waiting-text{font-size:16px!important;font-weight:850;line-height:1.5;text-align:center;margin:2px 0 10px;background:transparent!important;border:0;padding:0;border-radius:0;pointer-events:none}
#page-bugun .alarm-item.focus .alarm-overdue-text{color:#a92f39;animation:mono-live-overdue 1.35s ease-in-out infinite}
#page-bugun .alarm-item.focus .alarm-waiting-text{color:#202020}
@keyframes mono-live-overdue{0%,100%{opacity:1}50%{opacity:.12}}
#page-bugun .alarm-item.focus .alarm-dose-tags{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 0 10px;flex-wrap:wrap}
#page-bugun .alarm-item.focus .alarm-action-wrap{display:flex!important;flex-direction:column!important;gap:8px;width:100%;min-width:0!important}
#page-bugun .alarm-item.focus .alarm-action{width:100%!important;min-height:54px!important;margin:0!important}
#page-bugun .alarm-item.focus .alarm-skip-action{width:100%!important;min-height:44px!important;margin:0!important}
@media(prefers-reduced-motion:reduce){#page-bugun .alarm-item.focus .alarm-overdue-text{animation:none}}

/* Thumb-friendly bottom navigation: no overlay on medicine actions. */
#app > .tabs {
  order: 3;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  flex: 0 0 auto;
  width: 100%;
  padding: 5px 10px max(8px, env(safe-area-inset-bottom, 0px));
  background: #fff;
  border-top: 1px solid #e4e4e1;
  border-bottom: 0;
  box-shadow: 0 -3px 16px rgba(0,0,0,.025);
  z-index: 5;
}
#app > .tabs .tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 54px;
  padding: 7px 4px;
  border-radius: 12px;
  font-size: 12px;
  line-height: 1.2;
}
#app > .tabs .tab-icon { font-size: 22px; line-height: 1; font-weight: 500; }
#app > .tabs .tab.active { background: #f1f1ef; }
#app > .tabs .tab.active::after { display: none; }
#app > .tabs .tab:focus-visible { outline: 3px solid #191919; outline-offset: -2px; }
#app > .content { order: 2; min-height: 0; padding-bottom: 90px; }
#app > .header { order: 1; }
#app > #add-drug-fab { bottom: calc(85px + env(safe-area-inset-bottom, 0px)); }
@media (max-height: 650px) {
  #app > .tabs .tab { min-height: 48px; }
  #app > .tabs .tab-icon { font-size: 19px; }
}


/* UX polish 2026-11-04: keep dose actions visible on compact iPhones and desktop previews. */
#app > .content {
  overflow-y: auto;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  scroll-padding-bottom: 110px;
  padding-bottom: max(110px, calc(96px + env(safe-area-inset-bottom, 0px)));
}
#page-bugun .alarm-item.focus.photo-large .alarm-photo,
#page-bugun .alarm-item.focus.photo-large .alarm-photo-placeholder {
  width: min(38vw, 148px) !important;
  height: min(38vw, 148px) !important;
  font-size: 60px !important;
  border-radius: 20px !important;
}
#page-bugun .alarm-item.focus .alarm-image-wrap { margin-bottom: 4px !important; }
#page-bugun .alarm-item.focus .alarm-name { font-size: clamp(24px, 6vw, 32px) !important; letter-spacing: -.7px !important; margin-top: 5px !important; }
#page-bugun .alarm-item.focus .alarm-time { font-size: clamp(38px, 10vw, 52px) !important; letter-spacing: -1.4px !important; }
#page-bugun .alarm-item.focus .alarm-overdue-text {
  color: #98252e !important;
  opacity: 1 !important;
  animation: none !important;
  background: #fae9eb !important;
  border-radius: 10px !important;
  padding: 7px 10px !important;
}
#page-bugun .alarm-item.focus .alarm-action-wrap {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px !important;
}
#page-bugun .alarm-item.focus .alarm-action,
#page-bugun .alarm-item.focus .alarm-skip-action {
  min-height: 48px !important;
  height: auto !important;
  padding: 10px 8px !important;
  font-size: 14px !important;
}
#app > .tabs .tab { min-height: 50px; }
#app > .tabs .tab-icon { font-size: 20px; }
@media (max-width: 360px) {
  #page-bugun .alarm-item.focus .alarm-action-wrap { grid-template-columns: 1fr; }
  #page-bugun .alarm-item.focus .alarm-action,
  #page-bugun .alarm-item.focus .alarm-skip-action { min-height: 46px !important; }
}

/* Accessibility correction: restore the intentionally large medicine picture. */
#page-bugun .alarm-item.focus.photo-large .alarm-photo,
#page-bugun .alarm-item.focus.photo-large .alarm-photo-placeholder {
  width: min(74vw, 270px) !important;
  height: min(74vw, 270px) !important;
  max-width: 100%;
  font-size: clamp(78px, 20vw, 106px) !important;
}
