REFERINȚĂ · MOBIL
Sub 1024px fiecare ecran din Dublin pornește dintr-unul din două shell-uri, după ce e ecranul. Produs — acasă, liste, setări, detalii — stă în .app-mobile: header voalat sus, .tabbar jos, restul navigării în spatele itemului Meniu. Flux — wizard, semnare, onboarding — stă în .flow-chrome: înapoi sus, un singur CTA jos. Aceeași foaie .sheet urcă de jos în amândouă. Mai jos, ecrane Dublin reale în fiecare shell.
.app-shell + .sidebar / .topbar (produs) și .app-top + .app-footer (flux) — vezi references/referinta-dublin-aligned.html. Nu importa .app-mobile sau .flow-chrome într-o pagină desktop și nu pune .tabbar într-un flux.
.app-mobile — header voalat + tabbar.flow-chrome — înapoi sus, un singur CTA jos.app-mobile. Ecranul are un singur „înainte" și un sfârșit — wizard, semnare, onboarding → .flow-chrome. Niciodată amândouă pe același ecran: nu .tabbar într-un flux, nu .flow-bar pe un ecran de produs..tabbar (Acasă · De făcut · Banii tăi, plus camera ridicată la mijloc — pe telefon jobul principal e să încarci o cheltuială) plus .mobile-menu pentru restul, deschis de Meniu, ultimul item din bară. Fără FAB. Activul e icon --c-accent-deep + etichetă 700, fără fill; contorul e .badge.sm.filled.pink, doar numere. Un ecran de detaliu e .app-mobile.no-bar: navigarea globală e în urmă (înapoi în header), nu jos..sheet.attached deschisă din ea). Detaliu (.detail): înapoi · titlu centrat · .spacer. Titlul din header e chrome — un div.title; h1.t-h1 al paginii stă în conținut. Voalul e cel din .flow-bar: bej-0 @ 85% + blur(7px)..list-row în .list-group, sub o etichetă .t12. .link merge undeva (chevron), .value ține o cifră, .control ține un .switch care salvează instant — de aceea ecranul de setări n-are CTA — iar .danger e ink 600, niciodată roșu, singur în grupul lui. Contorul pe un rând de pagină e .badge.sm.neutral. Nicio clasă locală de rând..sheet. Un meniu deschis dintr-un buton sau rând → .sheet.attached cu rânduri de 44 (.list-group.sm); o explicație → .sheet.floating; cel mult două câmpuri → .sheet.form. Sugestiile de sub un câmp în care scrii rămân .popover, o decizie rămâne .modal. Scrimul e cel canonic (.sheet-scrim), fără grabber. Aceeași foaie în ambele shell-uri — .flow-sheet și .doc-sheet sunt aliasuri deprecate.disabled pe primul pas, nu ascuns), .flow-footer ține un singur .btn.primary.lg, header și footer sunt voal + blur peste .flow-chrome-scroll. Titlul pasului deschide lista pașilor doar în wizards multi-step, iar ieșirea din flux e un rând simplu (nu .danger), singur în al doilea grup al foii. Un ecran pur informativ, fără acțiune (rar), ascunde .flow-bar.bottom și păstrează back-ul.