/* Shared adaptive presentation. Colors come from theme.css; navigation from shell.css. */
:root { --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--radius-card:14px }
html { scroll-padding-top:16px }
body { overflow-wrap:break-word }
main { width:auto }
#content { width:100%;max-width:1440px }
input,select,textarea { max-width:100%;min-width:0 }
img,video { max-width:100% }
button,a,summary { -webkit-tap-highlight-color:transparent }
.form-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)) }
.form-grid>* { min-width:0 }
.panel>label,.fraction-entry>label { display:flex;flex-direction:column;gap:8px;margin:16px 0 }
.panel p { line-height:1.6 }
.mobile-row-details { display:none }
.record-more>summary { display:none }
.record-more-content { display:flex;gap:6px;flex-wrap:wrap }
.record-more { border:0;padding:0 }
.adaptive-filters>summary { display:none }
.adaptive-filter-content>.secondary { margin-top:12px }
.adaptive-filters .toolbar { margin-top:0 }
.adaptive-table td { overflow-wrap:anywhere }
.adaptive-table .record-empty { text-align:center;padding:24px;color:var(--muted) }
dialog { max-height:min(92dvh,var(--usable-height,92dvh));overflow:auto }
dialog form { min-width:0 }
dialog h2 { overflow-wrap:anywhere }
dialog::backdrop { background:#081f2ba8 }
.dialog-actions { position:sticky;bottom:-27px;background:var(--paper);border-top:1px solid var(--line);padding:16px 0;margin-top:16px;z-index:2 }
.secret { white-space:pre-wrap;overflow-wrap:anywhere }
.actions>button,.history-actions>button { white-space:normal }
.fraction-lookup-option { line-height:1.5 }
.message { line-height:1.5 }
.permission-module input[type=checkbox] { width:22px;height:22px;margin:10px }
.page-actions { margin:0 0 16px;gap:10px }
.responsive-summary,.summary-extra { display:contents }
.responsive-summary>summary { display:none }
.product-description { font-size:12px;padding:8px 6px;min-height:34px;height:34px;resize:vertical;vertical-align:middle }
.adaptive-table:not(.editable-records)>tbody:empty::after { content:'Nenhum registro encontrado.';display:block;padding:24px;color:var(--muted) }
body:has(dialog[open]) { overflow:hidden }
.icon-button { min-width:44px;min-height:44px }

@media(max-width:1279px) and (min-width:1101px) {
  main{padding:24px}
  .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .details-card .grow{min-width:0}
  .operator-box{width:auto;flex:1}
  .toolbar{align-items:stretch}
  .toolbar>label{flex:1 1 180px}
  .topbar{gap:16px}
}

@media(max-width:1100px) {
  body{font-size:15px}
  main{padding:16px 12px calc(88px + env(safe-area-inset-bottom))}
  .anonymous main{padding:20px 12px;min-height:100svh}
  h1,main:has(.loan-records-page)>.topbar h1{font-size:23px;line-height:1.25;letter-spacing:-.4px;margin:0}
  h2{font-size:18px;line-height:1.35}
  h3{font-size:16px}
  .muted,.optional,.label,.card-header p,.loan-records-page .loan-helper{font-size:13px;line-height:1.5}
  .topbar{gap:12px;align-items:flex-start;margin:0 0 20px;padding:0;flex-wrap:wrap}
  .eyebrow{display:none}
  .topbar>div{min-width:0;flex:1}
  .topbar .primary{min-height:44px}
  .section-heading{flex-wrap:wrap}
  .order-heading{flex-wrap:wrap;gap:8px}
  button,.primary,.secondary,.text-button,.icon-button,summary{min-height:44px;font-size:14px}
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:48px;padding:12px;border-radius:10px;width:100%;max-width:100%}
  input[type=checkbox],input[type=radio]{width:22px;height:22px;flex-shrink:0;margin:10px}
  label{line-height:1.45}
  .check{min-height:44px}
  .field label,.dialog-field label{font-size:14px}
  .form-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .form-grid label,.toolbar label{font-size:14px}
  .form-grid .check{flex-direction:row}
  .loan-direction{grid-template-columns:minmax(0,1fr)}
  .panel,.details-card,.loan-records-page .panel,.loan-records-page .loan-indicators>.panel{padding:16px;border-radius:var(--radius-card)}
  .panel{margin-bottom:16px}
  .grow{min-width:0;width:100%;flex-basis:100%}
  .details-card{gap:16px}
  .operator-box{width:100%;padding:0;border:0;gap:4px}
  .notes-field{margin:0}
  .details-card textarea{min-height:88px}
  .summary-grid,.loan-records-page .loan-indicators{grid-template-columns:minmax(0,1fr);gap:12px}
  .metric{padding:16px;gap:6px}
  .metric>span,.metric small{font-size:12px;letter-spacing:.3px}
  .metric strong{font-size:28px}
  .loan-records-page .loan-indicators>.loan-balance-card{grid-column:auto}
  .loan-records-page .indicator-value{white-space:normal;overflow:visible;overflow-wrap:anywhere}
  .balance-list,.loan-records-page .balance-list{max-height:none}
  .loan-records-page .balance-list strong{font-size:17px}
  .card-header{padding:16px;gap:16px}
  .card-header>div,.history-actions,.search{width:100%;min-width:0}
  .card-header .history-actions{flex-wrap:wrap}
  .history-actions>button{flex:1 1 130px}
  .search input{min-width:0;flex:1}
  .search button{flex-shrink:0}
  .table-footer{padding:12px;flex-wrap:wrap;font-size:12px}
  .table-footer>div{display:flex;gap:8px}
  .table-footer>label{display:flex;align-items:center}
  .adaptive-filters>summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;font-size:15px;font-weight:650;cursor:pointer;list-style:none}
  .adaptive-filters>summary::after{content:'＋';font-size:22px}
  .adaptive-filters[open]>summary::after{content:'−'}
  .adaptive-filter-content{padding-top:16px}
  .adaptive-filter-content>.secondary{width:100%}
  .loan-records-page .loan-filter-top,.loan-records-page .loan-filter-bottom{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
  .loan-records-page .loan-filter-controls{margin:0}
  .loan-records-page .loan-filter-bottom>label{width:100%}
  .loan-records-page .loan-filter-controls input:not([type=checkbox]),.loan-records-page .loan-filter-controls select{font-size:16px;height:48px}
  .toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
  .toolbar>*{min-width:0}
  .loan-records-page .loan-list-heading{padding:16px}
  .loan-records-page .loan-records-card{padding:0;overflow:visible}
  .table-scroll:has(>.adaptive-table){overflow:visible}
  .adaptive-table,#items-table.adaptive-table,.loan-entry.adaptive-table{display:block;min-width:0;width:100%;border:0}
  .adaptive-table>thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .adaptive-table>tbody{display:grid;gap:14px;width:100%}
  .adaptive-table>tbody>tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:14px;min-width:0}
  .adaptive-table>tbody>tr>td,.loan-records-page .loan-records-card .adaptive-table>tbody>tr>td{display:flex;flex-direction:column;gap:5px;min-width:0;width:auto;max-width:none;padding:0;border:0;font-size:14px;line-height:1.5;white-space:normal;text-align:left}
  .adaptive-table>tbody>tr>td::before{content:attr(data-label);font-size:12px;color:var(--muted);font-weight:500}
  .adaptive-table>tbody>tr>td.record-primary{font-size:16px;font-weight:650}
  .adaptive-table>tbody>tr>td.record-wide,.adaptive-table>tbody>tr>td.record-empty{grid-column:1/-1}
  .adaptive-table td.record-empty::before{display:none}
  .adaptive-table td:has(.actions),.adaptive-table td:has(.history-actions),.adaptive-table td:has(.ledger-status){grid-column:1/-1}
  .adaptive-table .ledger-status{align-items:center}
  .adaptive-table .ledger-status input{margin:8px 8px 8px 0}
  .adaptive-table .actions,.adaptive-table .history-actions{display:flex;gap:10px}
  .adaptive-table .actions>button,.adaptive-table .history-actions>button{flex:1;min-width:0}
  .record-more{flex:1;min-width:0}
  .record-more>summary{display:flex;align-items:center;justify-content:center;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-secondary);font-weight:600;list-style:none}
  .record-more-content{display:grid;gap:8px;margin-top:8px}
  .record-more-content button{width:100%;text-align:left}
  .record-more:not([open])>.record-more-content{display:none}
  .items-card>.table-scroll,.loan-records-card .table-scroll{padding:12px}
  .editable-records>tbody>tr{grid-template-columns:repeat(6,minmax(0,1fr))}
  .editable-records>tbody>tr>td{grid-column:span 3}
  .editable-records>tbody>tr>td[data-cell-field=description]{grid-column:1/-1;order:-2}
  .editable-records>tbody>tr>td[data-cell-field=quantity],.editable-records>tbody>tr>td[data-cell-field=q],.editable-records>tbody>tr>td[data-cell-field=unit],.editable-records>tbody>tr>td[data-cell-field=factor]{grid-column:span 2}
  .editable-records>tbody>tr>td[data-cell-field=cost_reason]{grid-column:1/-1}
  .editable-records input.description{min-width:0}
  #items-table.adaptive-table>tbody>tr>td.row-number{grid-column:1/-1;order:-3;font-size:12px;color:var(--muted)}
  #items-table .row-number::before{content:'Produto '}
  #items-table.adaptive-table input[data-field],#items-table.adaptive-table input[data-field^=company-],.loan-entry.adaptive-table input,.loan-entry.adaptive-table select{width:100%;min-width:0;max-width:100%;padding:12px;font-size:16px;min-height:48px}
  #items-table.adaptive-table td:has(:is(input,textarea)[data-field=description]){width:auto}
  #items-table.adaptive-table td:has(input:is([data-field=q],[data-field^=company-],[data-field=unit],[data-field=factor])){width:auto;padding:0}
  #items-table.adaptive-table td.ean-action-cell{width:auto;min-width:0;align-items:flex-start}
  #items-table .ean-action{border:1px solid var(--line);background:var(--surface-secondary);width:100%;height:48px}
  #items-table .ean-action::after{content:' EAN';font-size:13px}
  #items-table.adaptive-table td.output{min-width:0;text-align:left;font-variant-numeric:tabular-nums}
  #items-table.adaptive-table td.output:not(.subtotal){display:none}
  #items-table.adaptive-table tr.show-calculations td.output{display:flex}
  #items-table.adaptive-table td.mobile-row-details{display:flex;grid-column:1/-1}
  #items-table .mobile-row-details::before{display:none}
  #items-table .remove-row{width:44px;height:44px;border:1px solid var(--line);color:var(--danger)}
  .editor-footer{display:flex;flex-direction:column;gap:12px;margin-top:16px}
  .editor-footer>div{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;width:100%}
  .editor-footer p{font-size:13px;margin:0}
  .store-summary{gap:12px;flex-direction:column}
  .participant-chip{font-size:13px;max-width:100%;overflow-wrap:anywhere}
  .permission-module{padding:8px}
  .permission-module .adaptive-table td:not(:first-child){flex-direction:row;align-items:center;justify-content:space-between;min-height:44px}
  .permission-module .adaptive-table td:not(:first-child)::before{font-size:13px}
  .permission-module .adaptive-table td:first-child{grid-column:1/-1}
  .permission-module input[type=checkbox]{margin:8px}
  dialog:not(.mobile-menu){width:100%;max-width:100%;height:min(100dvh,var(--usable-height,100dvh));max-height:min(100dvh,var(--usable-height,100dvh));margin:0;padding:0;border:0;border-radius:0}
  dialog:not(.mobile-menu)>form{display:flex;flex-direction:column;min-height:100%;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}
  .dialog-heading,dialog form>h2{margin:0 0 20px;flex-shrink:0}
  .dialog-heading h2{font-size:21px}
  #modal-body,#dialog-body{min-width:0;flex:1}
  #modal-body>label{display:flex;flex-direction:column;gap:8px;margin:16px 0}
  .dialog-actions{bottom:-16px;padding:12px 0 max(12px,env(safe-area-inset-bottom));margin-top:16px;display:flex;flex-wrap:wrap}
  .dialog-actions>button{flex:1 1 120px;min-height:48px}
  .dialog-field textarea{min-height:96px}
  .import-preview{max-height:none}
  .import-preview table{min-width:0}
  .fraction-detail-grid{grid-template-columns:minmax(0,1fr)}
  .fraction-detail-section{padding:12px}
  .fraction-detail-section dl>div{grid-template-columns:minmax(0,1fr)}
  .fraction-entry>.primary{width:100%;margin-top:16px}
  .fraction-lookup{padding:10px}
  .fraction-lookup>div{max-height:40dvh}
  .fraction-camera{max-height:50dvh}
  .login{margin:12px auto;max-width:480px}
  .login button{width:100%;margin-top:8px}
  .login-logo{width:220px}
  .authenticator-qr{width:240px}
  .audit-event{padding:12px;margin:16px 0}
  .banner{gap:12px}
  .appearance-switch{min-height:44px;height:44px;width:68px;flex-basis:68px;border-radius:24px}
  .appearance-switch::before{top:5px;left:5px;width:32px;height:32px}
  .appearance-switch[aria-checked=true]::before{transform:translateX(24px)}
  .responsive-summary{display:block;border:1px solid var(--line);border-radius:14px;background:var(--paper);padding:16px;grid-column:1/-1}
  .responsive-summary>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;font-size:15px;font-weight:650;cursor:pointer;list-style:none}
  .responsive-summary>summary::after{content:'＋';font-size:22px}
  .responsive-summary[open]>summary::after{content:'−'}
  .responsive-summary:not([open])>.summary-extra{display:none}
  .responsive-summary[open]>.summary-extra{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding-top:12px}
  #items-table.adaptive-table .product-description{font-size:16px;min-height:96px;height:96px;padding:12px;width:100%;min-width:0}
  .page-actions{display:grid;grid-template-columns:1fr}
  .mobile-tab{font-size:11px}
  .table-footer label:has(#show-sku){gap:4px}
  .editable-records>tbody>tr>td[data-cell-field^=company-]{grid-column:span 2}
  .notes-field textarea{font-size:16px}
  .editable-records>tbody>tr>td{min-width:0}
  .summary-grid{margin:16px 0}
  .dialog-actions{bottom:0}
  .product-description{font-weight:400}
}

@media(min-width:1101px) {
  .responsive-summary{display:block;min-width:0}
  .summary-extra{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .summary-grid{grid-template-columns:1.35fr 3.2fr}
  .summary-grid .summary-extra{grid-template-columns:repeat(3,minmax(0,1fr))}
  .loan-indicators>.responsive-summary{grid-column:span 2}
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after{scroll-behavior:auto;animation-duration:0s;transition-duration:0s}
}

/* Keep full-screen dialogs inside the visible area above the virtual keyboard. */
@media(max-width:1100px){body.keyboard-open dialog[open]:not(.mobile-menu){position:fixed;top:var(--viewport-top,0px);bottom:auto;height:var(--usable-height);max-height:var(--usable-height)}input,textarea{scroll-margin-block:16px}}

/* Authentication uses the entire viewport, independently of module widths. */
body.anonymous{background:#0b2545}
.anonymous main{
 margin:0;width:100%;max-width:none;min-height:100vh;min-height:100dvh;
 padding:24px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.anonymous #content{width:100%;max-width:480px}
.anonymous #notice{width:100%;max-width:480px;flex-shrink:0}
.anonymous .login{width:100%;max-width:none;margin:0}
.anonymous #content>.panel{margin-bottom:0}
@media(max-width:760px){.anonymous main{padding:20px 12px}}
