:root { font-family: Inter, Segoe UI, Arial, sans-serif; color: #17212b; background: #f5f7f9; }
* { box-sizing: border-box; }
body { margin: 0; background: #f5f7f9; }
a { color: inherit; text-decoration: none; }
button, select { font: inherit; }
.app-shell { min-height: 100dvh; padding-bottom: 78px; }
.topbar { position: sticky; top: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; background: #14324a; color: white; box-shadow: 0 2px 12px rgba(0,0,0,.12); }
.topbar strong { font-size: 20px; }
.version { font-size: 11px; margin-left: 8px; background: rgba(255,255,255,.16); padding: 3px 6px; border-radius: 8px; }
.status-dot { font-size: 12px; opacity: .85; }
.content { max-width: 760px; margin: 0 auto; padding: 22px 16px; }
h1 { margin: 0 0 6px; font-size: 28px; }
h2 { margin-top: 0; }
.muted { color: #667787; margin-top: 4px; }
.card, .hero-card { background: white; border-radius: 16px; padding: 16px; box-shadow: 0 5px 18px rgba(20,50,74,.07); margin: 16px 0; border: 1px solid #e7edf1; }
.hero-card { background: #14324a; color: white; padding: 20px; }
.eyebrow { text-transform: uppercase; font-size: 11px; letter-spacing: .08em; opacity: .7; }
.hero-value { font-size: 26px; font-weight: 700; margin-top: 4px; }
.grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.stat { background: white; border: 1px solid #e4eaf0; border-radius: 14px; padding: 16px; display: flex; flex-direction: column; }
.stat b { font-size: 26px; color: #14324a; }
.stat span { color: #667787; font-size: 13px; }
.primary-button, .secondary-button { display: block; width: 100%; padding: 14px 16px; border-radius: 12px; text-align: center; border: 0; cursor: pointer; }
.primary-button { background: #0b6e4f; color: white; font-weight: 700; margin: 16px 0; }
.secondary-button { background: #eef2f4; color: #253746; margin-top: 14px; }
.info-card p { margin-bottom: 0; }
.bottom-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10; height: 68px; background: white; border-top: 1px solid #dde5ea; display: flex; justify-content: space-around; box-shadow: 0 -5px 18px rgba(0,0,0,.05); }
.bottom-nav a { flex: 1; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 2px; color: #71808d; }
.bottom-nav a.active { color: #0b6e4f; font-weight: 700; }
.bottom-nav span { font-size: 21px; }
.bottom-nav small { font-size: 11px; }
.filter-card label { display: block; font-size: 12px; color: #667787; margin: 10px 0 5px; }
.filter-card label:first-child { margin-top: 0; }
select { width: 100%; border: 1px solid #ced9e1; background: white; border-radius: 10px; padding: 12px; }
.student-list { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; }
.student-card { background: white; border: 1px solid #e1e8ed; border-radius: 14px; padding: 13px 12px; display: flex; justify-content: space-between; align-items: center; }
.student-card b { display: block; }
.student-card small { display: block; color: #778693; margin-top: 3px; }
.quick-actions { display: flex; gap: 7px; }
.quick-actions button { border: 0; border-radius: 10px; height: 42px; cursor: pointer; font-weight: 700; }
.grade-button { background: #0b6e4f; color: white; padding: 0 12px; }
.absence-button { background: #fff0ef; color: #a62922; width: 42px; }
.modal-backdrop { position: fixed; inset: 0; z-index: 20; background: rgba(8,22,34,.58); display: grid; place-items: end center; padding: 12px; }
.modal-card { width: min(520px, 100%); background: white; border-radius: 22px 22px 14px 14px; padding: 20px; }
.grade-picker { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.grade-picker button { border: 0; border-radius: 12px; padding: 14px 0; background: #e9f4f0; color: #07563e; font-size: 20px; font-weight: 800; cursor: pointer; }
.toast { position: fixed; left: 50%; transform: translateX(-50%); bottom: 82px; z-index: 30; background: #17212b; color: white; padding: 11px 16px; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.22); }
.loading { min-height: 100vh; display: grid; place-items: center; color: #667787; }
@media (min-width: 700px) { .grid { grid-template-columns: repeat(4, 1fr); } .bottom-nav { left: 50%; transform: translateX(-50%); max-width: 760px; border-left: 1px solid #dde5ea; border-right: 1px solid #dde5ea; } }

/* V0.6 authentication */
.login-card { max-width: 520px; margin: 1rem auto; display: grid; gap: .7rem; }
.login-card input { width: 100%; box-sizing: border-box; padding: .85rem; border: 1px solid #ccd7df; border-radius: 10px; font-size: 1rem; }
.error-box { background: #fff0f0; border: 1px solid #e3b4b4; color: #8e2525; padding: .8rem; border-radius: 10px; }
.topbar-actions { display: flex; align-items: center; gap: .7rem; }
.topbar-link { border: 0; border-radius: 8px; padding: .45rem .7rem; cursor: pointer; background: rgba(255,255,255,.12); color: white; }

/* V0.7 accounts, parent portal and notifications */
.light-muted { color: rgba(255,255,255,.72); }
.secondary-link-button { display:block; width:100%; padding:13px 16px; border-radius:12px; text-align:center; background:white; border:1px solid #ced9e1; color:#14324a; font-weight:700; margin:10px 0 16px; }
.warning-button { background:#fff7dc; color:#7a5700; width:42px; }
.warning-textarea { width:100%; min-height:140px; resize:vertical; padding:12px; border:1px solid #ced9e1; border-radius:12px; font:inherit; }
.compact-button { width:auto; display:inline-block; padding:10px 14px; margin:0 0 14px; }
.child-tabs { display:flex; gap:8px; overflow-x:auto; padding:4px 0 8px; }
.child-tabs button { min-width:150px; text-align:left; border:1px solid #dce5eb; background:white; border-radius:13px; padding:11px 12px; cursor:pointer; }
.child-tabs button.active { border-color:#0b6e4f; background:#eaf6f1; }
.child-tabs b, .child-tabs small { display:block; }
.child-tabs small { color:#71808d; margin-top:3px; }
.compact-hero { padding:16px 18px; margin-top:10px; }
.section-block { margin:22px 0; }
.section-block h2 { font-size:20px; margin:0 0 9px; }
.timeline-card { background:white; border:1px solid #e1e8ed; border-radius:13px; padding:12px 13px; margin:7px 0; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.timeline-card b, .timeline-card small { display:block; }
.timeline-card small { color:#778693; margin-top:3px; }
.grade-pill { min-width:45px; height:45px; border-radius:12px; background:#e9f4f0; color:#07563e; display:grid; place-items:center; font-weight:800; font-size:18px; }
.status-pill { border-radius:999px; padding:6px 9px; font-size:12px; font-weight:700; }
.status-pill.bad { background:#fff0ef; color:#a62922; }
.status-pill.ok { background:#e9f4f0; color:#07563e; }
.warning-card { border-left:4px solid #d5a100; }
.warning-card p { margin:6px 0 0; white-space:pre-wrap; }
.notification-list { display:flex; flex-direction:column; gap:8px; }
.notification-card { width:100%; display:flex; gap:12px; text-align:left; background:white; border:1px solid #e1e8ed; border-radius:14px; padding:13px; cursor:pointer; color:inherit; }
.notification-card.unread { border-color:#8fc4b4; background:#f1faf7; box-shadow:inset 3px 0 0 #0b6e4f; }
.notification-icon { width:40px; height:40px; flex:0 0 40px; border-radius:11px; background:#14324a; color:white; display:grid; place-items:center; font-weight:800; }
.notification-content { display:flex; flex-direction:column; gap:3px; }
.notification-content small { color:#748391; }
.user-form { display:grid; gap:7px; }
.user-form label { font-size:12px; color:#667787; margin-top:6px; }
.user-form input { width:100%; padding:12px; border:1px solid #ced9e1; border-radius:10px; font:inherit; }
.student-check-list { border:1px solid #dce5eb; border-radius:12px; max-height:270px; overflow:auto; background:#fafcfd; }
.student-check { display:flex; align-items:center; gap:10px; padding:10px 12px; border-bottom:1px solid #edf1f4; cursor:pointer; }
.student-check:last-child { border-bottom:0; }
.student-check input { width:auto; }
.student-check span, .student-check b, .student-check small { display:block; }
.student-check small { color:#71808d; margin-top:2px; }
.success-box { background:#ecf8f2; border:1px solid #a9d4c2; color:#0b5d43; padding:.8rem; border-radius:10px; }
.user-list { display:flex; flex-direction:column; gap:8px; }
.user-card { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0; }
.user-main b, .user-main small { display:block; }
.user-main small { color:#71808d; margin-top:3px; }
.status-action { border:0; border-radius:10px; padding:9px 11px; cursor:pointer; font-weight:700; }
.status-action.danger-lite { background:#fff0ef; color:#a62922; }
.status-action.ok-lite { background:#e9f4f0; color:#07563e; }
@media (max-width: 520px) { .user-card { align-items:flex-start; flex-direction:column; } .status-action { width:100%; } .quick-actions { gap:5px; } }

/* V0.7.5 administrare parole */
.user-card { flex-direction: column; align-items: stretch; }
.user-card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; width:100%; }
.user-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.password-action { background:#eef2f8; color:#244665; }
.password-reset-panel { margin-top:12px; padding-top:14px; border-top:1px solid #e5ebef; display:grid; gap:7px; }
.password-reset-panel label { font-size:12px; color:#667787; margin-top:4px; }
.password-reset-panel input { width:100%; padding:12px; border:1px solid #ced9e1; border-radius:10px; font:inherit; }
.password-reset-actions { display:flex; gap:8px; margin-top:4px; }
.compact-reset { width:auto; margin:0; padding:10px 14px; }
@media (max-width: 520px) {
  .user-card-top { align-items:flex-start; flex-direction:column; }
  .user-actions { width:100%; }
  .user-actions .status-action { flex:1; }
  .password-reset-actions { flex-direction:column; }
  .compact-reset { width:100%; }
}

/* V0.7.6 mesaje pe categorii, medii curente si badge notificari */
.message-button { background:#eef2f8; color:#244665; width:42px; }
.modal-label { display:block; font-size:12px; color:#667787; margin:12px 0 5px; }
.average-pill { min-width:58px; height:45px; border-radius:12px; background:#edf3fa; color:#1e4c70; display:grid; place-items:center; font-weight:800; font-size:17px; padding:0 9px; }
.message-card { border-left:4px solid #d5a100; }
.message-card.appreciation { border-left-color:#16805c; background:#f7fcfa; }
.message-card.observation { border-left-color:#3b77a5; background:#f8fbfe; }
.message-card.warning { border-left-color:#d5a100; background:#fffdf7; }
.message-card.important-warning { border-left-color:#b3312b; background:#fff8f7; }
.message-card p { margin:8px 0 0; white-space:pre-wrap; }
.message-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.message-kind-pill { display:inline-flex; align-items:center; border-radius:999px; padding:5px 9px; font-size:12px; font-weight:800; background:#eef2f4; color:#344956; }
.message-author { display:block; color:#748391; margin-top:6px; }
.notification-nav-link { position:relative; }
.notification-nav-icon { position:relative; display:inline-block; line-height:1; }
.notification-badge { position:absolute; top:-10px; right:-17px; min-width:19px; height:19px; padding:0 5px; border-radius:999px; background:#c9342c; color:white; border:2px solid white; font-size:10px; line-height:15px; text-align:center; font-weight:800; }
.notification-card.notification-appreciation .notification-icon { background:#16805c; }
.notification-card.notification-observation .notification-icon { background:#3b77a5; }
.notification-card.notification-warning .notification-icon { background:#b47f00; }
.notification-card.notification-important-warning .notification-icon { background:#b3312b; }
.notification-card.notification-attendance .notification-icon { background:#9e332d; }
.notification-card.notification-grade .notification-icon { background:#0b6e4f; }

/* V0.8 Web Push */
.compact-push-link { width:auto; display:inline-block; padding:10px 14px; margin:0 0 14px; }
.push-card { display:grid; gap:14px; }
.push-status-row { display:flex; justify-content:space-between; align-items:center; gap:14px; }
.push-status-row b, .push-status-row small { display:block; }
.push-status-row small { color:#71808d; margin-top:4px; }
.push-https-note { background:#fff8e6; border:1px solid #ead18a; color:#5d4a15; padding:13px; border-radius:12px; }
.push-https-note p { margin:6px 0 0; }
.push-https-note code { overflow-wrap:anywhere; }
@media (max-width:520px) { .push-status-row { align-items:flex-start; } }

/* V0.9 Import SIIIR PDF */
.siiir-upload-card input[type=file] { width:100%; padding:12px; border:1px dashed #aab9c4; border-radius:12px; background:#fafcfd; }
.siiir-note { font-size:12px; }
.siiir-progress { margin-top:10px; padding:11px 12px; background:#edf5fb; color:#244d6b; border-radius:10px; }
.siiir-document-card { margin-top:14px; }
.siiir-document-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.siiir-document-head b, .siiir-document-head small { display:block; }
.siiir-document-head small { color:#71808d; margin-top:3px; }
.siiir-warning-box { background:#fff8e6; border:1px solid #ead18a; color:#5d4a15; padding:11px 12px; border-radius:10px; margin:12px 0; display:grid; gap:5px; }
.siiir-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 12px; margin-top:14px; }
.siiir-grid label { font-size:12px; color:#667787; }
.siiir-grid input { display:block; width:100%; margin-top:5px; padding:11px; border:1px solid #ced9e1; border-radius:10px; font:inherit; color:#17212b; background:white; }
.siiir-grid small { display:block; margin-top:4px; }
.exists-ok { color:#0b6e4f; }
.siiir-current-teacher { margin-top:12px; padding:10px 12px; background:#f2f5f7; border-radius:10px; color:#425766; font-size:13px; }
.siiir-list-head { display:flex; justify-content:space-between; gap:12px; align-items:center; margin:18px 0 8px; }
.siiir-mini-button { border:1px solid #ced9e1; background:white; color:#244665; border-radius:8px; padding:6px 8px; cursor:pointer; font-size:11px; margin-left:4px; }
.siiir-student-list { border:1px solid #dce5eb; border-radius:12px; overflow:hidden; }
.siiir-student-row { display:grid; grid-template-columns:28px 34px minmax(130px,.9fr) minmax(180px,1.4fr) auto; align-items:center; gap:8px; padding:8px 10px; background:white; border-bottom:1px solid #edf1f4; }
.siiir-student-row:last-child { border-bottom:0; }
.siiir-student-row.existing { background:#f7faf8; }
.siiir-student-row input[type=checkbox] { width:18px; height:18px; }
.siiir-student-row input[type=text], .siiir-student-row .siiir-name, .siiir-student-row .siiir-firstname { width:100%; min-width:0; padding:8px 9px; border:1px solid #d4dfe6; border-radius:8px; font:inherit; }
.siiir-row-number { color:#71808d; font-size:12px; text-align:center; }
.siiir-existing-pill { border-radius:999px; padding:5px 8px; font-size:10px; font-weight:800; background:#e7f4ee; color:#0b6e4f; }
.siiir-summary-row { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:10px 2px 0; color:#60717d; font-size:12px; }
.siiir-report { display:grid; gap:4px; }
@media (max-width:620px) {
  .siiir-grid { grid-template-columns:1fr; }
  .siiir-document-head { flex-direction:column; }
  .siiir-list-head { align-items:flex-start; flex-direction:column; }
  .siiir-student-row { grid-template-columns:24px 28px 1fr; }
  .siiir-student-row .siiir-name { grid-column:3; }
  .siiir-student-row .siiir-firstname { grid-column:3; }
  .siiir-existing-pill { grid-column:3; justify-self:start; }
}

/* V0.9.4 – administrare clase web */
.admin-class-list { display:grid; gap:12px; }
.admin-class-card { margin:0; }
.admin-class-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.admin-class-head b, .admin-class-head small { display:block; }
.admin-class-head small { color:#71808d; margin-top:3px; }
.class-count-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:13px; }
.class-count-grid span { background:#f5f8fa; border:1px solid #e5ebef; border-radius:10px; padding:9px; text-align:center; }
.class-count-grid b, .class-count-grid small { display:block; }
.class-count-grid small { color:#71808d; margin-top:2px; }
.danger-panel { margin-top:14px; padding:14px; border:1px solid #e4a6a2; background:#fff7f6; border-radius:12px; }
.danger-panel p { margin:8px 0; }
.danger-panel input { width:100%; box-sizing:border-box; padding:11px 12px; border:1px solid #c7d2da; border-radius:10px; margin:7px 0 10px; }
.danger-actions { display:flex; gap:9px; align-items:center; }
.danger-button { border:0; border-radius:10px; padding:11px 14px; background:#b3312b; color:white; font-weight:800; cursor:pointer; }
.danger-button:disabled { opacity:.45; cursor:not-allowed; }
@media (max-width:620px) {
  .admin-class-head { flex-direction:column; }
  .admin-class-head .status-action { width:100%; }
  .class-count-grid { grid-template-columns:repeat(2,1fr); }
  .danger-actions { flex-direction:column; align-items:stretch; }
  .danger-button, .danger-actions .secondary-button { width:100%; }
}

/* V1.0.0 – import și distribuire orar */
.timetable-upload-card input[type=file] { width:100%; padding:12px; border:1px dashed #aab9c4; border-radius:12px; background:#fafcfd; }
.timetable-preview-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.timetable-preview-head b, .timetable-preview-head small { display:block; }
.timetable-preview-head small { color:#71808d; margin-top:4px; }
.timetable-summary-grid { margin:14px 0; }
.timetable-summary-grid .stat { padding:12px; }
.timetable-summary-grid .stat b { font-size:21px; }
.timetable-import-settings { display:grid; grid-template-columns:2fr 1fr; gap:12px; margin:14px 0; }
.timetable-import-settings label, .timetable-filter-row label { font-size:12px; color:#667787; }
.timetable-import-settings input { display:block; width:100%; margin-top:5px; padding:11px 12px; border:1px solid #ced9e1; border-radius:10px; font:inherit; background:white; color:#17212b; }
.timetable-filter-row { display:flex; justify-content:space-between; gap:12px; align-items:end; margin:14px 0 8px; }
.timetable-filter-row label { flex:1; }
.timetable-filter-row select { display:block; margin-top:5px; }
.timetable-filter-actions { white-space:nowrap; padding-bottom:3px; }
.timetable-import-list { border:1px solid #dce5eb; border-radius:12px; max-height:520px; overflow:auto; background:white; }
.timetable-import-row { display:grid; grid-template-columns:26px 115px 1fr 1.2fr; gap:10px; align-items:center; padding:10px 11px; border-bottom:1px solid #edf1f4; }
.timetable-import-row:last-child { border-bottom:0; }
.timetable-import-row.unresolved { background:#fff8f6; }
.timetable-import-row b, .timetable-import-row small { display:block; }
.timetable-import-row small { color:#71808d; margin-top:2px; }
.timetable-import-row input[type=checkbox] { width:18px; height:18px; }
.timetable-slot-label { color:#244665; }
.timetable-report { display:grid; gap:5px; }
.compact-selector-card small { color:#71808d; display:block; margin-top:4px; }
.timetable-tabs { margin-bottom:8px; }
.timetable-hero { margin-bottom:12px; }
.timetable-week-wrap { overflow-x:auto; border-radius:14px; border:1px solid #dce5eb; background:white; box-shadow:0 5px 18px rgba(20,50,74,.05); }
.timetable-week { width:100%; min-width:760px; border-collapse:collapse; table-layout:fixed; }
.timetable-week th, .timetable-week td { border-right:1px solid #e5ebef; border-bottom:1px solid #e5ebef; padding:10px; vertical-align:top; }
.timetable-week tr:last-child th, .timetable-week tr:last-child td { border-bottom:0; }
.timetable-week th:last-child, .timetable-week td:last-child { border-right:0; }
.timetable-week thead th { background:#14324a; color:white; text-align:left; font-size:12px; }
.timetable-week tbody th { width:74px; background:#f6f9fb; color:#244665; text-align:center; }
.timetable-week tbody th b, .timetable-week tbody th small { display:block; }
.timetable-week tbody th small { color:#71808d; font-weight:400; margin-top:3px; white-space:nowrap; }
.timetable-week td { min-height:74px; background:white; }
.timetable-week td b, .timetable-week td span, .timetable-week td small { display:block; }
.timetable-week td span { color:#60717d; font-size:12px; margin-top:4px; }
.timetable-week td small { color:#82909a; margin-top:3px; }
.timetable-week td.empty-slot { background:#fafcfd; }
.timetable-mobile-days { display:none; }
.timetable-mobile-row { display:grid; grid-template-columns:76px 1fr; gap:12px; padding:10px 0; border-bottom:1px solid #edf1f4; }
.timetable-mobile-row:last-child { border-bottom:0; }
.timetable-mobile-row b, .timetable-mobile-row small { display:block; }
.timetable-mobile-row small { color:#71808d; margin-top:3px; }
.timetable-hour { color:#244665; }
@media (max-width:620px) {
  .timetable-import-settings { grid-template-columns:1fr; }
  .timetable-filter-row { align-items:stretch; flex-direction:column; }
  .timetable-filter-actions { white-space:normal; }
  .timetable-import-row { grid-template-columns:24px 95px 1fr; align-items:start; }
  .timetable-import-row > div:last-child { grid-column:3; }
  .timetable-week-wrap { display:none; }
  .timetable-mobile-days { display:block; }
}

/* V1.0.0 – administrare profesori și elevi */
.people-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.move-panel { margin-top:14px; padding:14px; border:1px solid #a9c8bd; background:#f4fbf8; border-radius:12px; }
.move-panel p { margin:8px 0 10px; color:#53636d; }
.move-panel select, .people-filter-card select { width:100%; box-sizing:border-box; padding:11px 12px; border:1px solid #c7d2da; border-radius:10px; background:white; margin:7px 0 10px; }
.primary-inline { border:0; border-radius:10px; padding:11px 14px; background:#0d7b5a; color:white; font-weight:800; cursor:pointer; }
.primary-inline:disabled { opacity:.45; cursor:not-allowed; }
.people-filter-card { margin-bottom:12px; }
.people-filter-card label { display:block; font-weight:700; margin-bottom:5px; }
@media (max-width: 700px) {
  .people-actions { width:100%; }
  .people-actions .status-action { flex:1 1 150px; }
}

.feature-grid-v1{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:16px 0}.feature-card-v1{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid #dce5eb;border-radius:16px;padding:16px;text-decoration:none;color:#162633;box-shadow:0 4px 16px rgba(20,50,70,.05)}.feature-card-v1:hover{border-color:#0f7f5c;transform:translateY(-1px)}.feature-card-v1 span{color:#6b7c87;font-size:.92rem}.simple-table{width:100%;border-collapse:collapse;margin-top:10px}.simple-table th,.simple-table td{padding:8px;border-bottom:1px solid #e3e9ed;text-align:left}.print-sheet{background:white}@media print{.topbar,.bottom-nav,.secondary-button,.primary-button,.secondary-link-button{display:none!important}.content{max-width:none!important;margin:0!important}.print-sheet{border:0!important;box-shadow:none!important}}

/* V1.0.1 – instalare pe telefon / PWA */
body { padding-top: env(safe-area-inset-top); }
.app-shell { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
.bottom-nav { padding-bottom: env(safe-area-inset-bottom); }
.mobile-install-cta { margin-top: 14px; }
.install-hero { display:flex; align-items:center; gap:16px; }
.install-hero b, .install-hero span { display:block; }
.install-hero b { font-size:20px; color:#14324a; }
.install-hero span { margin-top:4px; color:#667787; line-height:1.4; }
.install-app-icon { width:72px; height:72px; border-radius:18px; box-shadow:0 5px 18px rgba(20,50,74,.16); flex:0 0 auto; }
.install-main-button { margin:14px 0 8px; font-size:16px; font-weight:800; }
.install-note { color:#667787; font-size:13px; line-height:1.45; margin:8px 2px 16px; }
.install-steps ol { margin:12px 0 0 20px; padding:0; }
.install-steps li { margin:9px 0; line-height:1.45; }
.install-benefits { display:grid; gap:9px; margin-top:12px; color:#425766; }
.success-box { display:grid; gap:5px; margin:16px 0; padding:14px; border:1px solid #a9d8c5; background:#f1fbf6; color:#0b6e4f; border-radius:12px; }
.warning-box { display:grid; gap:5px; margin:16px 0; padding:14px; border:1px solid #ead18a; background:#fff8dc; color:#5d4a15; border-radius:12px; }
@media (max-width:520px) {
  .topbar { padding-top:calc(12px + env(safe-area-inset-top)); }
  .content { padding:18px 13px; }
  .install-hero { align-items:flex-start; }
  .install-app-icon { width:64px; height:64px; border-radius:16px; }
}


/* V1.0.2 – Android APK / download center */
.android-download-hero { display:flex; gap:16px; align-items:center; }
.android-app-icon { width:82px; height:82px; border-radius:20px; box-shadow:0 7px 22px rgba(20,50,74,.17); }
.android-version { font-size:22px; margin:3px 0 5px; }
.android-download-button { margin-top:10px; }
@media (max-width:520px) {
  .android-download-hero { align-items:flex-start; }
  .android-app-icon { width:68px; height:68px; border-radius:17px; }
  .android-version { font-size:19px; }
}
