.mobile-bar,.mobile-shade,.mobile-nav-close{display:none}
.mobile-line-field{display:contents}.mobile-line-field>span{display:none}
.inbox-capture-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.inbox-camera-hint{max-width:620px;margin:14px auto!important}
@media(max-width:1100px){
 .shell{grid-template-columns:210px minmax(0,1fr)}
 main{padding:24px 20px}
 .toolbar{flex-wrap:wrap}.toolbar>input{max-width:100%;min-width:0}
}
@media(max-width:800px){
 html{scroll-padding-top:76px}body{overflow-wrap:break-word}
 body.mobile-menu-lock{overflow:hidden}
 .shell{display:block;min-height:100dvh}
 .mobile-bar{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;background:#101c2d;box-shadow:0 2px 12px #10213726}
 .mobile-bar img{width:116px;height:42px;object-fit:contain;background:#fff;border-radius:7px;padding:5px}
 .mobile-bar button{color:#fff;background:#1d3048;border-color:#3e536e;min-height:44px}
 .shell>aside{position:fixed;inset:0 auto 0 0;z-index:31;width:min(320px,88vw);height:100dvh;display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;padding:16px 18px max(20px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;transform:translateX(-110%);visibility:hidden;transition:transform .18s ease,visibility .18s}
 .shell.mobile-menu-open>aside{transform:none;visibility:visible}
 .mobile-nav-close{display:block;align-self:flex-end;background:#1d3048;color:#fff;border-color:#3e536e;margin-bottom:14px;min-height:44px}
 .shell>aside .brand{margin-bottom:16px;flex:none}.shell>aside .brand-caption{display:none}
 .shell>aside nav{display:flex;flex-direction:column;width:100%;margin:0;gap:16px}
 .shell>aside .navigation-section{border-top:1px solid #ffffff26;padding-top:14px}
 .shell>aside .navigation-section-title{font-size:15px;padding:0 12px;margin-bottom:5px}
 .shell>aside nav button{font-size:15px;padding:12px;min-height:46px;text-align:left}
 .shell>aside nav>[data-page=dashboard]{margin:0}
 .shell>aside .logout{display:block;margin:10px 0 0;font-size:14px;min-height:44px;flex-shrink:0}
 .shell>aside [hidden]{display:none!important}
 .mobile-menu-open .mobile-shade{display:block;position:fixed;inset:0;z-index:30;background:#091424ab;border:0;width:100%;height:100dvh;cursor:default}
 main{padding:22px 14px max(24px,env(safe-area-inset-bottom));width:100%;min-width:0}
 main>header{align-items:flex-start;gap:12px}h1{font-size:27px;margin-bottom:20px;overflow-wrap:anywhere}
 main>header #refresh{font-size:12px;padding:10px;flex-shrink:0;min-height:44px}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;min-width:0;max-width:100%}
 input[type=checkbox],input[type=radio]{width:20px;height:20px;flex-shrink:0}
 button,.actions a,.purchase-actions a{min-height:44px}
 .actions a,.purchase-actions a{display:inline-flex;align-items:center;justify-content:center}
 .toolbar{gap:10px;padding:14px;align-items:stretch}.toolbar>input,.inbox-toolbar #inboxSearch{flex-basis:100%;width:100%;min-width:0;max-width:none;margin:0}
 .toolbar label{display:flex;align-items:center;gap:7px;min-height:44px}
 .metrics{display:grid!important;grid-template-columns:1fr!important;overflow:visible;gap:12px;max-width:100%}
 .metrics article{min-width:0!important;width:100%!important;max-width:100%!important}
 .metrics.invoice-card-layout,.purchase-period-metrics{display:flex!important;overflow-x:auto;gap:12px;scroll-snap-type:x mandatory;padding-bottom:10px;overscroll-behavior-x:contain}
 .metrics.invoice-card-layout article,.purchase-period-metrics article{flex:0 0 min(280px,88vw);width:min(280px,88vw)!important;scroll-snap-align:start}
 .purchase-metrics,.finance-summary-grid,.finance-result-grid{grid-template-columns:1fr!important;gap:12px}
 .finance-irpf{grid-template-columns:1fr}.quote-metrics article{min-width:0;width:100%}
 .panel,.finance-home,.purchase-table,.quote-list,.finance-quarter-table{min-width:0;max-width:100%}
 /* Cards avoid tiny text and page-wide scrolling; amount labels remain explicit. */
 #table .row.head,.purchase-table:not(:has(.purchase-line-table)) thead,.quote-list thead{display:none}
 #table .row:not(.head){display:grid!important;grid-template-columns:minmax(0,1fr)!important;min-width:0!important;gap:10px!important;padding:16px!important}
 #table .row:not(.head)>*,.purchase-table:not(:has(.purchase-line-table)) tbody td,.quote-list tbody td{min-width:0!important;max-width:none!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
 #table .row:not(.head)>[data-mobile-label]::before{content:attr(data-mobile-label);display:block;font-size:10px;letter-spacing:.04em;color:#65758b;font-weight:600;margin-bottom:5px;text-align:left}
 #table .row:not(.head) .amount{text-align:right!important}
 #table .row:not(.head) .actions{flex-wrap:wrap;justify-content:flex-end;width:auto!important}
 .purchase-table:not(:has(.purchase-line-table)) table,.quote-list table{display:block;min-width:0!important;width:100%;table-layout:auto}
 .purchase-table:not(:has(.purchase-line-table)) tbody,.quote-list tbody{display:block}
 .purchase-table:not(:has(.purchase-line-table)) tbody tr,.quote-list tbody tr{display:block;border-bottom:1px solid #dce5ef;padding:12px 14px}
 .purchase-table:not(:has(.purchase-line-table)) tbody td,.quote-list tbody td{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:baseline;gap:8px 14px;padding:7px 0;border:0;width:100%!important;overflow-wrap:anywhere;text-align:right}
 .purchase-table:not(:has(.purchase-line-table)) tbody td>*,.quote-list tbody td>*{grid-column:2}
 .purchase-table:not(:has(.purchase-line-table)) tbody td::before,.quote-list tbody td::before{content:attr(data-mobile-label);flex:0 0 90px;text-align:left;font-size:10px;font-weight:600;color:#65758b;letter-spacing:.02em}
 .purchase-table:not(:has(.purchase-line-table)) .purchase-actions,.quote-list .quote-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}
 .inbox-drop{margin-top:16px;padding:22px 14px}.inbox-drop h2{font-size:20px;line-height:1.35}.inbox-capture-actions{flex-direction:column}.inbox-capture-actions button{width:100%}
 #purchaseInboxPage:not(.hidden){display:flex;flex-direction:column}
 #purchaseInboxPage>.inbox-drop{order:-2}#purchaseInboxPage>#inboxError{order:-3}
 .purchase-metrics.inbox-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px;margin:10px 0}
 .inbox-metrics article{padding:12px 8px;gap:6px}.inbox-metrics small{font-size:9px;line-height:1.4}.inbox-metrics span{display:none}
 .backdrop{padding:6px;z-index:40;align-items:center;overflow:hidden}
 .modal,.modal.new-note-modal,.purchase-modal,.purchase-modal.purchase-review{width:100%;max-width:100%;max-height:calc(100dvh - 12px);padding:16px;border-radius:12px;overscroll-behavior:contain}
 .modal>header{gap:12px}.modal h2{font-size:22px;margin:4px 0}.modal>header button{min-width:44px}
 .modal footer{display:flex;flex-wrap:wrap;gap:10px;background:#fff;padding-bottom:env(safe-area-inset-bottom)}
 .grid,.purchase-fiscal-grid,.purchase-review .purchase-fiscal-grid,.quote-head{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
 .grid label,.purchase-fiscal-grid label{min-width:0}.quote-client-field{grid-column:auto}
 .modal .line,.modal .line.note-line{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px;padding:14px 10px;border:1px solid #dbe4f0;border-radius:10px;margin-bottom:12px;background:#f8fafc}
 .modal .line>textarea{grid-column:1/-1;min-height:100px!important;max-height:none!important}
 .modal .line.note-line>.line-kind{grid-column:1/-1;width:130px!important;min-width:0!important;max-width:130px!important}
 .modal .line>button{justify-self:end;min-width:44px}
 .mobile-line-field{display:flex;flex-direction:column;gap:6px;min-width:0}.mobile-line-field>span{display:block;color:#586c84;font-size:12px;font-weight:600}
 #servicePanel{padding:14px!important;margin:16px 0!important}#servicePanel>.grid{margin-bottom:14px}
 #servicePanel>label>textarea,.new-note-modal #servicePanel textarea{min-height:110px!important;max-height:none!important}
 #fields>section:not(#servicePanel)>div{overflow-x:auto}
 .purchase-modal.purchase-review{height:calc(100dvh - 12px);display:flex;overflow-y:auto}
 .purchase-review #purchaseReviewLayout{display:flex;flex-direction:column;flex:none;overflow:visible}
 .purchase-review #purchasePreview{height:310px;flex:none}
 .purchase-review #purchaseFields{overflow:visible;padding:0;flex:none}
 .purchase-review>footer{position:static}.purchase-total{flex-direction:column;align-items:stretch;gap:12px}.purchase-total strong{white-space:normal}
 .purchase-line-table,.quote-lines table{display:block;width:100%;min-width:0!important;table-layout:auto}
 .purchase-line-table colgroup,.purchase-line-table thead,.quote-lines colgroup,.quote-lines thead{display:none}
 .purchase-line-table tbody,.quote-lines tbody{display:block}
 .purchase-line-table tbody tr,.quote-lines tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 10px;margin-bottom:12px;background:#f8fafc;border:1px solid #dce5ef;border-radius:10px}
 .purchase-table .purchase-line-table tbody td,.quote-lines tbody td{display:block;min-width:0!important;width:auto!important;padding:0;border:0;text-align:left;white-space:normal}
 .purchase-line-table tbody td:first-child,.quote-lines tbody td:first-child{grid-column:1/-1}
 .purchase-line-table tbody td::before,.quote-lines tbody td::before{content:attr(data-mobile-label);display:block;color:#65758b;font-size:11px;font-weight:600;margin-bottom:6px;white-space:normal}
 .purchase-line-table tbody td:last-child,.quote-lines tbody td:last-child{align-self:end;justify-self:end}
 .purchase-line-table textarea,.quote-lines textarea{min-height:100px}.purchase-line-table input,.quote-lines input{min-height:44px;width:100%}
 .quote-dialog,.fiscal-dialog{max-width:calc(100vw - 12px)!important;width:calc(100vw - 12px)!important;max-height:calc(100dvh - 12px)!important;margin:auto}.quote-dialog{padding:0}
 .quote-dialog form{max-height:calc(100dvh - 16px)}.quote-dialog header,.quote-dialog footer,.quote-body{padding:16px}.quote-bottom{grid-template-columns:1fr}
 .login form{padding:26px 20px}.login input{font-size:16px}
 .metrics.hidden,.metrics.invoice-card-layout.hidden{display:none!important}
}
@media(prefers-reduced-motion:reduce){.shell>aside{transition:none}}
