[hidden]{display:none!important}select{font:inherit;font-size:16px;max-width:100%;width:100%;padding:12px 13px;border:1px solid #d8ddcf;background:#fbfcf9;color:var(--ink);border-radius:7px;min-height:48px}input[readonly]{background:#edf0e6;color:#647259}.sidebar nav{margin-top:45px;gap:6px}.sidebar nav a svg{flex-shrink:0}.sidebar nav a{padding:12px}.sync-pill{border:1px solid #d7dfcc;border-radius:20px;padding:6px 12px;background:#edf1e6;color:#526744;font-size:10px;white-space:nowrap}.sync-pill.has-pending{background:#faf0d8;color:#886126}.account-button{font-size:11px;border:0;background:none;color:#68735d;min-height:40px}.global-status{padding:12px 6%;background:#f9ebd6;color:#755228;font-size:12px}.login-wrap{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;padding-top:25px}.login-intro h1{font-size:56px;line-height:1.07;margin-top:20px}.login-intro p{font-size:13px;max-width:300px;color:var(--muted)}.music-sign{font:150px/1 var(--serif);color:#84955f;margin:25px 0}.login-card h2{font-size:29px;margin-top:14px}.login-card label{margin-top:22px}.login-card .button{width:100%;margin-top:22px}.login-card .small-copy{margin-top:15px}.small-copy{font-size:11px;line-height:1.6}.teacher-hero{background:var(--ink);color:white;border-radius:12px;padding:30px 35px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;margin:23px 0 28px}.teacher-hero .eyebrow{color:#c7d8a3}.teacher-hero h2{font-size:32px;line-height:1.15;margin:12px 0}.teacher-hero p{font-size:12px;color:#c6d0c6;margin-bottom:18px}.hero-music{font:155px var(--serif);color:#dce6b5;transform:rotate(-12deg);padding:0 30px;line-height:1}.teacher-stats{grid-template-columns:repeat(4,1fr);gap:12px}.teacher-stats .stat{padding:20px 14px}.teacher-stats .stat-icon{width:32px;flex-shrink:0}.teacher-stats .stat small{font-size:10px}.period-row{display:flex;align-items:center;gap:14px;margin:10px 0 17px}.period-row h2{margin:0 auto 0 0;font-size:23px}.period-row label{font-size:10px;font-weight:400;color:var(--muted);margin:0}.period-row input{width:170px;font-size:13px;padding:8px;background:white}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dashboard-grid .section-heading{margin:0 0 24px}.dashboard-grid h2{font-size:21px}.bar-row{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:19px;font-size:12px}.bar{height:7px;background:#f0f2e9;border-radius:10px;grid-column:1/-1;overflow:hidden}.bar i{display:block;height:100%;background:#79905b;border-radius:10px}.attendance-chart{display:flex;justify-content:space-around;gap:13px;height:150px;align-items:end;margin:0 0 22px}.attendance-chart>div{display:grid;justify-items:center;gap:8px;flex:1;font-size:10px}.attendance-chart strong{font-weight:600}.chart-track{height:90px;background:#f0f2e9;width:28px;border-radius:6px;position:relative;overflow:hidden}.chart-track i{position:absolute;bottom:0;background:#97a775;width:100%;min-height:0;border-radius:6px}.table-wrap{padding:0;overflow:auto}table{border-collapse:collapse;width:100%;min-width:500px;text-align:left;font-size:12px}th{background:#eef0e7;color:#657456;font-size:10px;letter-spacing:.5px;font-weight:600;padding:16px 20px}td{padding:16px 20px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}.table-link{padding:0;border:0;background:none;color:var(--ink);font-weight:600;text-align:left}.avatar{width:42px;height:42px;flex-shrink:0;background:#e8eddd;display:grid;place-items:center;border-radius:50%;font:22px var(--serif);color:#6f8154}.check-label{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:400;white-space:nowrap;margin:0}.check-label input{width:16px;height:16px}.history-entry{padding:15px 0;border-bottom:1px solid var(--line);font-size:12px}.history-entry>strong{margin-right:10px}.history-entry>span{color:var(--muted);font-size:10px}.history-entry p{white-space:pre-wrap;margin:8px 0 0;overflow-wrap:anywhere}.attendance-history{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:12px 0;gap:8px;border-bottom:1px solid var(--line);font-size:12px}.attendance-history p,.attendance-history small{width:100%;margin:0;color:var(--muted);overflow-wrap:anywhere}.attendance-history small{font-size:10px}.status{display:inline-block;border-radius:5px;padding:4px 8px;font-size:9px}.status.present{background:#e8f0df;color:#52743c}.status.justified{background:#fbf0d7;color:#8e6e20}.status.absent{background:#f8e8e3;color:#9c5244}.status.queued{background:#edf0f5;color:#617387}.record .status{margin-top:6px}.call-heading{display:flex;gap:22px;align-items:center;justify-content:space-between;margin-bottom:20px}.call-heading input{width:170px}.call-heading p{margin:5px 0 0}.call-list{display:grid;gap:12px}.call-row{display:grid;grid-template-columns:1fr auto;gap:12px 20px;padding:20px}.call-student{display:flex;gap:12px;align-items:center}.call-student h3{margin:0 0 4px}.call-student p{margin:0}.call-options{display:flex;gap:7px;align-items:center}.presence-choice{position:relative;margin:0;cursor:pointer}.presence-choice input{position:absolute;opacity:0;width:1px;height:1px}.presence-choice span{display:block;font-size:10px;line-height:1.4;font-weight:500;border:1px solid #dce1d4;padding:11px 12px;border-radius:6px;background:#fafbf7;color:#747e68;min-height:40px}.presence-choice input:checked+span{background:#e5eedb;border-color:#8ba46a;color:#3d6330}.presence-choice.justified input:checked+span{background:#fff1d1;border-color:#d4b667;color:#80611b}.presence-choice.absent input:checked+span{background:#fce6df;border-color:#cb8e7e;color:#884a3c}.presence-choice input:focus-visible+span{outline:3px solid #82995a;outline-offset:3px}.justification{grid-column:1/-1}.justification label{font-size:10px;font-weight:500}.call-saved{font-size:9px;color:var(--muted);grid-column:1/-1}.call-footer{display:flex;justify-content:space-between;align-items:center;padding:22px 0;gap:15px}.call-footer p{margin:0}.queue-entry{margin-bottom:12px}.queue-entry h3{margin-top:12px}.queue-entry .button{margin-top:15px}.queue-entry summary{font-size:11px;cursor:pointer}pre{background:#f2f4ec;border-radius:7px;padding:14px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.6}.student-controls{margin-top:15px}
@media(max-width:1150px){.teacher-stats .stat{display:block}.teacher-stats .stat-icon{display:none}.call-row{grid-template-columns:1fr}.call-options{flex-wrap:wrap}.call-heading{flex-wrap:wrap}.login-intro h1{font-size:46px}.hero-music{padding:0 10px}}
@media (max-width: 720px), (orientation: landscape) and (max-height: 500px) and (max-width: 1100px){header{padding:0 14px;gap:6px}.header-title{font-size:13px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prototype{display:none}.sync-pill{font-size:8px;padding:5px 8px}.account-button{font-size:10px;padding:0 5px}.mobile-nav a{min-width:50px;font-size:8px}.mobile-nav{padding-left:3px;padding-right:3px}.login-wrap{grid-template-columns:1fr;gap:25px;padding-top:0}.login-intro h1{font-size:38px}.login-intro h1 br{display:none}.login-intro .music-sign,.login-intro>.badge{display:none}.login-intro p{max-width:none;margin-bottom:0}.login-card{padding:25px}.teacher-hero{padding:26px 22px;margin-top:15px;position:relative}.teacher-hero h2{font-size:29px;position:relative;z-index:1}.teacher-hero p{max-width:270px;position:relative;z-index:1}.teacher-hero .button{position:relative;z-index:1}.hero-music{position:absolute;right:5px;opacity:.15;font-size:160px;pointer-events:none}.welcome{align-items:start;flex-direction:column;gap:10px}.teacher-stats{grid-template-columns:1fr 1fr;gap:10px}.teacher-stats .stat{padding:18px 15px}.teacher-stats .stat small{font-size:10px}.dashboard-grid{grid-template-columns:1fr}.period-row{flex-wrap:wrap;gap:10px}.period-row label{order:3;width:100%;font-size:9px}.period-row input{width:150px}.period-row h2{font-size:23px}.call-heading{gap:15px}.call-heading>div:nth-child(2){flex:1;min-width:110px}.call-heading input{width:155px}.call-heading strong{font-size:12px}.call-heading .button{width:100%;font-size:10px}.call-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}.presence-choice span{font-size:9px;text-align:center;padding:10px 6px;min-height:47px;display:grid;place-items:center}.call-row{padding:18px 14px}.record .button{font-size:9px;padding:8px}.record .button svg{width:15px}.check-label{font-size:10px}.call-footer{align-items:start;flex-direction:column}.call-footer .button{width:100%}.section-heading h2{font-size:21px}.attendance-chart{height:145px}.attendance-history .status{font-size:8px}}

.study-group{margin-bottom:14px;border:1px solid var(--line);border-radius:12px;background:var(--white);overflow:hidden}.study-group>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;cursor:pointer;list-style:none}.study-group>summary::-webkit-details-marker{display:none}.study-group>summary:focus-visible{outline:3px solid #82995a;outline-offset:-4px}.study-group-heading{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}.study-group-heading strong{font-size:16px}.study-group-heading small{color:var(--muted);font-size:12px}.study-group-chevron{font-size:24px;flex-shrink:0}.study-group[open] .study-group-chevron{transform:rotate(180deg)}.study-group-records{padding:0 16px 12px}.study-group-records .record{margin-bottom:8px}.study-group .record-date{min-width:52px}.study-group .record-date small{font-size:10px}
@media (max-width: 720px), (orientation: landscape) and (max-height: 500px) and (max-width: 1100px){.study-group>summary{padding:16px}.study-group-records{padding:0 10px 8px}.study-group-heading small{font-size:11px}}

/* Visão geral */
.overview-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.overview-heading h1{font-size:42px;margin:8px 0}.overview-heading .sub{max-width:420px;margin:0}.overview-period{flex-shrink:0}.overview-period label{font-size:11px;color:var(--muted);margin-bottom:8px}.overview-period>div{display:flex;gap:8px;align-items:center}.overview-period input{width:170px;background:white;min-height:42px}.overview-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:28px}.overview-actions>a{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#eef1e6;border-radius:10px;padding:17px 16px}.overview-actions>a:hover{background:#e3ead5}.overview-step{display:grid;place-items:center;border-radius:50%;background:white;width:28px;height:28px;font-size:11px;flex-shrink:0}.overview-actions strong{display:block;font-size:12px}.overview-actions small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.overview-actions svg{margin-left:auto;flex-shrink:0;width:19px}.overview-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.overview-section-title h2{font-size:24px;margin:0}.overview-section-title>span{font-size:12px;color:var(--muted);text-transform:capitalize}.overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.overview-stat{position:relative;border:1px solid var(--line);background:white;border-radius:12px;padding:20px;min-width:0}.overview-stat>small{font-size:11px;color:var(--muted);display:block;padding-right:23px}.overview-stat>strong{display:block;font-size:36px;line-height:1.15;font-weight:600;margin:16px 0 10px;letter-spacing:-1px}.overview-stat>strong>span{font-size:20px;color:var(--muted);font-weight:400;letter-spacing:0}.overview-stat>p{font-size:10px;color:var(--muted);margin:0;line-height:1.6}.overview-stat-icon{position:absolute;top:18px;right:16px;color:#83956d}.overview-stat-icon svg{width:18px}.overview-sync{display:flex;align-items:center;gap:12px;border:1px solid #ead9b1;background:#faf3e3;padding:15px 18px;border-radius:10px;margin-bottom:20px}.overview-sync>span{flex:1}.overview-sync strong,.overview-sync small{display:block}.overview-sync strong{font-size:12px}.overview-sync small{font-size:10px;color:#806b49;margin-top:3px}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.overview .card{margin-bottom:0;min-width:0}.overview-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.overview-card-heading h2{font-size:22px;margin:5px 0}.overview-card-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.overview-card-heading>a{font-size:10px;white-space:nowrap}.overview-card-heading>a svg{width:15px}.overview-card-heading .badge{white-space:nowrap}.overview-attention>.sub{margin:0 0 14px}.overview-person{display:flex;align-items:center;gap:12px;padding:14px 0;border:0;border-bottom:1px solid var(--line);background:none;width:100%;text-align:left;color:var(--ink)}.overview-person:last-child{border-bottom:0}.overview-person>.avatar{width:34px;height:34px;font-size:17px}.overview-person-copy{flex:1;min-width:0}.overview-person-copy>strong{display:block;font-size:12px;overflow-wrap:anywhere}.overview-person-copy>small{font-size:10px;color:var(--muted)}.overview-person>svg{width:17px;flex-shrink:0}.overview-reasons{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.overview-reasons>span{font-size:9px;color:#8a6534;background:#f8efde;padding:3px 6px;border-radius:4px}.overview-calls{display:grid;gap:15px;margin-top:21px}.overview-call{display:grid;grid-template-columns:80px minmax(0,1fr) 38px;gap:5px 12px;align-items:center;font-size:11px}.overview-call .bar{grid-column:auto;min-width:0}.overview-call>strong{text-align:right}.overview-call>small{grid-column:2/-1;color:var(--muted);font-size:9px}.overview-attendance-total{display:flex;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;margin-top:21px;font-size:10px;color:var(--muted)}.overview-attendance-total>span{display:flex;align-items:center;gap:5px}.overview-attendance-total i{display:inline-block;width:7px;height:7px;border-radius:50%}.present-dot{background:#79905b}.justified-dot{background:#c8a250}.absent-dot{background:#be7966}.overview-empty{display:grid;justify-items:start;align-content:center;gap:10px;min-height:190px;padding:15px 0}.overview-empty>strong{font-size:15px}.overview-empty>p{font-size:12px;color:var(--muted);margin:0}.overview-roster{margin-bottom:20px!important}.overview-roster-filters{display:flex;gap:18px;align-items:center;margin:14px 0 20px}.overview-roster-filters>input{flex:1;min-width:0;max-width:340px}.overview-roster-filters .check-label{white-space:normal}.overview-table-scroll{overflow-x:auto}.overview-table-scroll table{min-width:600px}.overview-table-scroll th,.overview-table-scroll td{padding:14px 12px}.overview-table-instrument{display:block;color:var(--muted);font-size:10px;margin-top:4px}.overview-frequency{display:inline-block;color:#52743c;background:#e8f0df;padding:4px 8px;border-radius:5px;font-size:11px}.overview-frequency.low{background:#f8e8e3;color:#9c5244}.overview-missing{color:#906c3e;font-size:11px}.overview-table-empty{text-align:center;padding:30px!important;color:var(--muted)}.overview-recent{display:flex;justify-content:space-between;align-items:center;gap:15px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:13px 0;color:var(--ink)}.overview-recent:last-child{border-bottom:0}.overview-recent>span:first-child{min-width:0}.overview-recent strong{display:block;font-size:12px;overflow-wrap:anywhere}.overview-recent small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.overview-recent>span:last-child{flex-shrink:0;text-align:right;font-size:11px}.overview-instruments{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.overview-instruments>span{display:flex;align-items:center;gap:12px;background:#f0f3e9;padding:8px 12px;border-radius:7px;font-size:12px}.overview-instruments strong{display:grid;place-items:center;min-width:22px;background:white;border-radius:4px;font-size:11px;padding:2px 5px}.overview button:focus-visible,.overview a:focus-visible{outline:3px solid #82995a;outline-offset:3px}.overview-frequency.unknown{color:var(--muted);background:#f0f2ed}
@media(max-width:1100px){.overview-heading{align-items:start;flex-direction:column;gap:18px}.overview-actions>a{padding:14px 12px;gap:8px}.overview-actions small{display:none}.overview-grid{grid-template-columns:1fr}.overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 720px), (orientation: landscape) and (max-height: 500px) and (max-width: 1100px){.overview-heading h1{font-size:34px}.overview-heading .sub{font-size:12px}.overview-period{width:100%}.overview-period>div{justify-content:space-between}.overview-period input{flex:1;max-width:220px}.overview-actions{gap:7px;margin-bottom:23px}.overview-actions>a{padding:12px 8px;flex-direction:column;align-items:start;gap:8px}.overview-actions strong{font-size:10px}.overview-actions svg{display:none}.overview-step{width:23px;height:23px;font-size:10px}.overview-section-title h2{font-size:21px}.overview-section-title>span{font-size:10px}.overview-stat{padding:16px 13px}.overview-stat>small{font-size:10px}.overview-stat>strong{font-size:30px;margin:13px 0 8px}.overview-stat>strong>span{font-size:17px}.overview-stat-icon{right:11px;top:13px}.overview-stats{gap:10px}.overview .card{padding:20px 15px}.overview-card-heading h2{font-size:21px}.overview-card-heading>a{font-size:9px}.overview-card-heading .badge{font-size:9px;padding:4px 6px}.overview-roster-filters{align-items:start;flex-direction:column;gap:12px}.overview-roster-filters>input{max-width:none;width:100%}.overview-roster-filters .check-label{font-size:11px}.overview-sync{padding:12px}.overview-sync>svg:last-child{display:none}.overview-sync small{font-size:10px}.overview-attendance-total{gap:10px}.overview-person-copy>strong{font-size:12px}}

.overview-table-date,.overview-table-presence{display:none}@media (max-width: 720px), (orientation: landscape) and (max-height: 500px) and (max-width: 1100px){.overview-table-scroll table{min-width:0;table-layout:fixed}.overview-table-scroll th:nth-child(3),.overview-table-scroll td:nth-child(3),.overview-table-scroll th:nth-child(4),.overview-table-scroll td:nth-child(4){display:none}.overview-table-scroll th:first-child{width:52%}.overview-table-scroll th:nth-child(2){width:15%}.overview-table-scroll th:last-child{width:33%}.overview-table-scroll td,.overview-table-scroll th{padding:13px 7px}.overview-table-scroll .table-link{overflow-wrap:anywhere}.overview-table-date,.overview-table-presence{display:block;font-size:9px;color:var(--muted);margin-top:5px}.overview-table-presence{font-size:8px}.overview-table-scroll th{font-size:9px}.overview-table-scroll td{font-size:11px}}

/* Mobile: readable data, consistent icons and comfortable touch targets. */
@media (max-width: 720px), (orientation: landscape) and (max-height: 500px) and (max-width: 1100px) {
  body .mobile-nav {
    padding: 8px 4px calc(10px + env(safe-area-inset-bottom));
    align-items: stretch;
  }
  body .mobile-nav a {
    flex: 1 1 0;
    min-width: 0;
    min-height: 64px;
    padding: 4px 1px;
    gap: 6px;
    font-size: 11px;
    line-height: 1.2;
    color: #596650;
    align-content: center;
    border-radius: 9px;
  }
  body .mobile-nav a span { max-width: 100%; overflow-wrap: anywhere; text-align: center; }
  body .mobile-nav a, body .mobile-nav a.active { font-weight: 400; }
  body .mobile-nav a.active { color: #596650; background: #dce5cf; }
  body .mobile-nav a svg { width: 32px; height: 32px; stroke-width: 2; }
  body:not(.auth-screen) .workspace {
    padding-bottom: calc(104px + env(safe-area-inset-bottom));
  }
  body:not(.auth-screen) header { gap: 6px; padding-inline: 12px; }
  body:not(.auth-screen) .header-title { min-width: 0; max-width: none; flex: 1; font-size: 14px; }
  body:not(.auth-screen) .sync-pill { font-size: 11px; min-height: 44px; padding: 6px 9px; max-width: 40%; white-space: normal; }
  body:not(.auth-screen) .account-button { font-size: 13px; min-width: 44px; min-height: 44px; }
  body:not(.auth-screen) .icon-button { width: 44px; height: 44px; flex-shrink: 0; }
  body:not(.auth-screen) .icon-button svg { width: 28px; height: 28px; }
  .overview-heading .sub, .welcome .sub { font-size: 14px; line-height: 1.6; }
  .overview-period label { font-size: 13px; }
  .overview-period input { min-width: 0; min-height: 48px; }
  .overview-period .button { min-height: 48px; font-size: 13px; }
  .overview-actions { gap: 8px; }
  .overview-actions > a { min-width: 0; padding: 14px 10px; gap: 10px; }
  .overview-actions strong { font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
  .overview-step { width: 30px; height: 30px; font-size: 14px; }
  .overview-section-title { align-items: flex-start; flex-wrap: wrap; }
  .overview-section-title > span { font-size: 12px; }
  .overview-stat { padding: 18px 14px; }
  .overview-stat > small { font-size: 13px; line-height: 1.45; padding-right: 0; min-height: 38px; }
  .overview-stat-icon { position: static; display: block; margin-bottom: 10px; color: #657e4e; }
  .overview-stat-icon svg { width: 32px; height: 32px; stroke-width: 2; }
  .overview-stat > strong { font-size: 36px; margin: 10px 0; }
  .overview-stat > strong > span { font-size: 20px; }
  .overview-stat > p { font-size: 12px; line-height: 1.6; }
  .overview-card-heading { flex-wrap: wrap; }
  .overview-card-heading .eyebrow { font-size: 10px; }
  .overview-card-heading > a { font-size: 13px; min-height: 44px; display: inline-flex; align-items: center; gap: 6px; white-space: normal; }
  .overview-card-heading > a svg, .overview-person > svg { width: 26px; height: 26px; flex-shrink: 0; stroke-width: 2; }
  .overview-card-heading .badge { font-size: 12px; }
  .overview-person-copy > strong, .overview-recent strong { font-size: 14px; }
  .overview-person-copy > small, .overview-recent small { font-size: 12px; }
  .overview-reasons > span, .overview-call > small, .overview-attendance-total { font-size: 12px; }
  .overview-call { font-size: 13px; }
  .overview-recent { flex-wrap: wrap; }
  .overview-recent > span:last-child { font-size: 12px; }
  .overview-roster-filters .check-label { font-size: 13px; min-height: 44px; }
  .overview-table-scroll th { font-size: 11px; }
  .overview-table-scroll td, .overview-frequency, .overview-missing { font-size: 13px; }
  .overview-table-instrument, .overview-table-date, .overview-table-presence { font-size: 12px; overflow-wrap: anywhere; }
  .overview-table-scroll .table-link { min-height: 44px; }
  .overview-sync strong { font-size: 14px; }
  .overview-sync small { font-size: 12px; }
  .record h3, .call-student h3 { font-size: 14px; }
  .record p, .small-copy, .history-entry > span, .attendance-history small, .call-saved { font-size: 12px; }
  .record .button, .toolbar .button, .instructor-actions .button.text { font-size: 12px; min-height: 44px; }
  .record .button svg, .record > button svg { width: 26px; height: 26px; }
  .presence-choice span { font-size: 12px; min-height: 48px; overflow-wrap: anywhere; }
  .attendance-history .status { font-size: 11px; }
  #toast { bottom: calc(108px + env(safe-area-inset-bottom)); }
}
@media (max-width: 360px) {
  body .mobile-nav a { font-size: 10px; }
  .overview-actions strong { font-size: 12px; }
  .overview-stat > strong { font-size: 32px; }
}

/* A rotated phone keeps the mobile menu and leaves room for content. */
@media (orientation: landscape) and (max-height: 500px) and (max-width: 1100px) {
  body:not(.auth-screen) header { height: 56px; }
  body:not(.auth-screen) main { padding-top: 20px; }
  body .mobile-nav { padding-top: 4px; padding-bottom: calc(4px + env(safe-area-inset-bottom)); }
  body .mobile-nav a { min-height: 56px; gap: 3px; padding-block: 2px; }
  body:not(.auth-screen) .workspace { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
  #toast { bottom: calc(84px + env(safe-area-inset-bottom)); }
}
