/* CONNECT Sistemas em PHP — SaaS premium UX. Does not modify approved logo image. */
:root{--connect-panel-focus:#087ac1;--connect-panel-soft:#eff8ff}
.appmain>*,.panel,.formcard,.hero,.catalogcard,.stat,.twocol>*,.tablewrap{min-width:0;max-width:100%}
:where(.panel,.formcard,.hero,.login-story) :where(h1,h2,h3,p,li,small){overflow-wrap:anywhere}
:where(.panel,.formcard,.top,.foot) :where(a,button,input,select,textarea,summary):focus-visible{
 outline:3px solid var(--connect-panel-focus);outline-offset:3px
}
.top nav a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.4}
.top nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.top nav{min-width:0}.user-nav{min-width:0;flex-wrap:wrap;justify-content:flex-end}
.nav-logout button{min-height:44px;touch-action:manipulation}
.appmain :where(.btn,button,[role="button"]){min-height:44px;touch-action:manipulation}
.appmain .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.4}
.appmain :where(input,select,textarea){font-size:16px;max-width:100%;min-width:0}
.appmain label{min-width:0;max-width:100%;overflow-wrap:anywhere}
.appmain [aria-invalid="true"]{border-color:#b12c40;box-shadow:0 0 0 2px rgba(177,44,64,.12)}
.appmain .connect-is-submitting :where(button[type="submit"]){opacity:.76;cursor:progress}
.tablewrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-color:#8cb7d3 #f0f8ff}
.tablewrap :where(th,td){overflow-wrap:anywhere}
.ticketlink,.client-quick-links a{min-height:44px;display:inline-flex;align-items:center}
.client-quick-links a{line-height:1.5}
.admin-control-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:13px;padding:13px 0;border-bottom:1px solid #e0eaf3}
.admin-control-row>span{flex:1;min-width:175px;overflow-wrap:anywhere}
.admin-control-row>button{width:auto;min-width:145px;margin:0}
.catalogcard{display:flex;flex-direction:column;gap:8px}
.catalogcard .textlink{margin-top:auto}
.appmain .notice,.appmain .alert{overflow-wrap:anywhere}
@media(min-width:1600px){.appmain{max-width:1320px}.topinner{max-width:1320px}}
@media(max-width:1020px){.topinner{flex-wrap:wrap;gap:12px}.top nav{order:3;width:100%;display:flex;overflow:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.top nav a{flex:0 0 auto}.user-nav{margin-left:auto}.client-quick-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.login-layout,.twocol{grid-template-columns:minmax(0,1fr)}.topinner{padding:13px 12px}.top nav{gap:11px}.appmain{padding:22px 13px 46px}.hero{padding:clamp(19px,5vw,32px)}.hero-actions .btn{min-width:0}.client-quick-links{grid-template-columns:repeat(2,minmax(0,1fr))}.formcard{max-width:100%}.foot{padding:19px 14px}}
@media(max-width:480px){.client-quick-links,.catalog-grid,.statgrid,.pricegrid,.gate-grid{grid-template-columns:minmax(0,1fr)}.user-label{max-width:100px}.admin-control-row>button{width:100%}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{width:100%}.login-story h1{font-size:clamp(28px,8.5vw,40px)}.appmain .btn{max-width:100%}}
@media(max-width:365px){.topinner{gap:9px}.top nav{gap:8px}.user-chip{font-size:9px}.top nav a{font-size:11px}}
@media(prefers-reduced-motion:reduce){.appmain :where(a,button,.btn){animation:none!important;transition:none!important}}
@media print{.top nav,.nav-logout,.hero-actions{display:none!important}.top,.hero,.panel,.stat{box-shadow:none!important}.appmain{max-width:100%}}

/* ELITE-374 — SaaS próprio: Cliente/MASTER, layout independente e acessível. */
:where(.appmain,.topinner,.foot)>*{min-inline-size:0}
.appmain :where(h1,h2,h3,p,span,dd,dt){overflow-wrap:anywhere}
.appmain :where(.formcard,.panel,.hero,.stat,.catalogcard){min-inline-size:0;max-inline-size:100%}
.appmain .tablewrap{overflow-x:auto;overscroll-behavior-x:contain}
.appmain .tablewrap:focus-visible{outline:3px solid #087ac1;outline-offset:2px}
.appmain :where(.btn,button,input,select,textarea){min-block-size:44px}
.appmain :where(input,select,textarea){font-size:16px;max-inline-size:100%;min-inline-size:0}
.appmain .admin-control-row{min-inline-size:0;flex-wrap:wrap;gap:10px}
.appmain .admin-control-row > span{overflow-wrap:anywhere}
@media(min-width:1600px){.appmain,.topinner{max-width:1320px}}
@media(max-width:980px){.topinner{flex-wrap:wrap}.top nav{inline-size:100%;overflow:auto;scrollbar-width:thin;overscroll-behavior-x:contain}.top nav a{flex:0 0 auto;min-block-size:44px}.appmain .statgrid,.appmain .catalog-grid,.appmain .pricegrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.appmain .twocol,.appmain .login-layout{grid-template-columns:minmax(0,1fr)}.appmain .client-quick-links{grid-template-columns:repeat(2,minmax(0,1fr))}.appmain .panel,.appmain .formcard{padding:clamp(17px,4vw,24px)}}
@media(max-width:380px){.appmain .statgrid,.appmain .catalog-grid,.appmain .pricegrid,.appmain .client-quick-links{grid-template-columns:minmax(0,1fr)}.appmain .admin-control-row > button{inline-size:100%}.appmain{padding-inline:11px}.topinner{padding-inline:10px}}
@media(prefers-reduced-motion:reduce){.appmain :where(a,button,.btn){transition:none!important;animation:none!important}}


/* ELITE-394 — Cliente/MASTER only: responsive forms, breadcrumbs and tables. */
.appmain :where(.panel,.formcard,.stat,.catalogcard,.tablewrap){min-inline-size:0;max-inline-size:100%}
.appmain :where(h1,h2,h3,p,small,dt,dd){overflow-wrap:anywhere}
.appmain .tablewrap{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.appmain .tablewrap:focus-visible{outline:3px solid #087ac1;outline-offset:3px}
.appmain :where(label,input,textarea,select,fieldset){min-inline-size:0;max-inline-size:100%}
.appmain :where(button,.btn){min-block-size:44px;touch-action:manipulation;white-space:normal;overflow-wrap:anywhere}
.appmain :where(input,select,textarea){font-size:16px}
.top nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
@media(max-width:960px){.top nav{max-inline-size:100%;overflow-x:auto;overscroll-behavior-x:contain}.top nav a{flex:0 0 auto;min-block-size:44px}}
@media(max-width:560px){.appmain{padding-inline:12px}.appmain :where(.login-layout,.twocol,.catalog-grid,.statgrid,.pricegrid,.gate-grid,.client-quick-links){grid-template-columns:minmax(0,1fr)}.appmain .admin-control-row{flex-wrap:wrap}.appmain .admin-control-row>button{inline-size:100%}}
@media(min-width:1600px){.appmain,.topinner{max-inline-size:1320px;margin-inline:auto}}
@media(prefers-reduced-motion:reduce){.appmain :where(a,button,.btn){transition:none!important;animation:none!important}}

/* ELITE-463/464/465 — independent client cart, consistent approved SaaS visual theme. */
.cart-line{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 2px;border-bottom:1px solid #d4e5f3}
.cart-line>div{flex:1;min-width:0;overflow-wrap:anywhere}
.cart-line p{margin:6px 0 8px}
.cart-line form{flex-shrink:0;max-width:100%}
.cart-line .btn{margin:0;min-height:44px;white-space:normal}
.cart-total{margin:25px 0 14px;color:#0a5290;font-size:17px}
.client-order-links,.master-order-links{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}
.client-order-links .ticketlink,.master-order-links .ticketlink{min-height:44px}
.connect-order-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin:20px 0}
.connect-order-detail>div{border:1px solid #d4e5f3;background:#f4f9ff;border-radius:12px;padding:15px;min-width:0}
.connect-order-detail dt{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#5b7795;margin-bottom:5px}
.connect-order-detail dd{font-size:14px;font-weight:750;color:#0a2f55;margin:0;overflow-wrap:anywhere}
@media(max-width:660px){.connect-order-detail{grid-template-columns:minmax(0,1fr)}.cart-line{align-items:flex-start;flex-wrap:wrap}.cart-line form{width:100%}.cart-line form .btn{width:100%}}


/* ELITE-431/569: preference storage UX; no SMTP activation. */
.appmain .notification-setting{display:flex;align-items:flex-start;gap:14px;padding:15px;margin:12px 0;border:1px solid #d4e5f3;background:#f5faff;border-radius:12px;cursor:pointer;max-width:100%}
.appmain .notification-setting input[type=checkbox]{flex:0 0 23px;inline-size:23px;block-size:23px;margin:1px 0 0;accent-color:#087ce1}
.appmain .notification-setting span{display:flex;flex-direction:column;gap:5px;min-inline-size:0}
.appmain .notification-setting strong{font-size:15px;line-height:1.35;color:#153557}
.appmain .notification-setting small{font-size:12px;line-height:1.5;color:#516982}
.appmain .notification-setting:focus-within{outline:3px solid #087ce1;outline-offset:3px}
@media(max-width:480px){.appmain .notification-setting{gap:11px;padding:13px}}


/* ELITE-417/422/433: accessible login, password toggle, compact screens and nav. */
.appmain .connect-password-toggle{display:inline-flex;align-items:center;justify-content:center;min-block-size:44px;max-inline-size:100%;padding:8px 15px;margin:8px 0 5px;background:#f0f8ff;color:#0d568e;font-size:13px;font-weight:800;border:1px solid #b9d8ee;border-radius:10px;cursor:pointer;touch-action:manipulation}
.appmain .connect-password-toggle[aria-pressed=true]{background:#daedff;border-color:#087ce1;color:#084f8a}
.appmain .connect-password-toggle:focus-visible{outline:3px solid #087ce1;outline-offset:3px}
@media(max-width:390px){
 .appmain{padding-inline:11px;overflow-wrap:anywhere}
 .topinner{padding-inline:10px}
 .top nav{scrollbar-width:thin;overscroll-behavior-x:contain;max-inline-size:100%;min-inline-size:0}
 .top nav a{min-block-size:44px;white-space:normal}
 .appmain .login-layout{grid-template-columns:minmax(0,1fr)}
 .appmain .login-story,.appmain .formcard{min-inline-size:0;padding:clamp(15px,4vw,23px)}
 .appmain .login-story h1{overflow-wrap:anywhere}
}
@media(min-width:1920px){.appmain,.topinner{max-inline-size:1320px;margin-inline:auto}}
@media(orientation:landscape) and (max-height:550px){.top nav{max-block-size:42vh;overflow-y:auto}.appmain{padding-block:18px}}


/* ELITE-656..675: own-order filter, visible at narrow/mobile sizes. */
.appmain .client-order-filter{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:17px 0 22px}
.appmain .client-order-filter label{flex:1 1 210px;min-width:0}
.appmain .client-order-filter .btn{min-height:44px}
@media(max-width:480px){.appmain .client-order-filter{align-items:stretch;flex-direction:column}.appmain .client-order-filter label,.appmain .client-order-filter .btn{width:100%;flex:auto}}


/* ELITE-776..795 — print-safe quote for authenticated own orders; not a paid invoice. */
.appmain .draft-print-label{padding:12px 14px;margin:0 0 14px;border:1px solid currentColor;border-radius:9px;overflow-wrap:anywhere;font-size:12px}
.appmain .disclosure-print{margin:17px 0;padding:12px 14px;border-radius:10px;border:1px solid #aecde5}
.appmain .disclosure-print summary{cursor:pointer;font-weight:750;min-height:36px}
.appmain .terms-snapshot{padding:16px 3px 5px;overflow-wrap:anywhere;line-height:1.6}
@media print{
  @page{size:auto;margin:13mm}
  body:has(.printable-draft) .foot,
  body:has(.printable-draft) .top nav,
  body:has(.printable-draft) .top .user-nav,
  body:has(.printable-draft) .print-helper,
  body:has(.printable-draft) .printable-draft > .btn{display:none!important}
  body:has(.printable-draft) .top .brand img{max-width:200px;height:auto}
  body:has(.printable-draft) .appmain{max-width:100%;padding:0}
  body:has(.printable-draft) .hero,body:has(.printable-draft) .printable-draft{box-shadow:none!important;break-inside:avoid}
  body:has(.printable-draft) .disclosure-print{break-inside:auto}
  body:has(.printable-draft) .disclosure-print .terms-snapshot{display:block}
  body:has(.printable-draft) .connect-order-detail > div{break-inside:avoid}
}


/* ELITE-936..955 — owner-only search discovery and accessible states. */
.appmain .client-order-filter input[type=search]{
  width:100%;min-height:44px;max-width:100%;box-sizing:border-box;scroll-margin-block:20px;
}
.appmain .client-order-filter input[type=search]:focus-visible,
.appmain .client-order-filter select:focus-visible{
  outline:3px solid #087ce1;outline-offset:3px;
}
.appmain .search-result-status{margin:6px 0 14px;min-height:1.6em;flex-basis:100%;overflow-wrap:anywhere}
@media(max-width:600px){
 .appmain .client-order-filter{gap:12px}
 .appmain .client-order-filter label{flex-basis:100%}
 .appmain .search-result-status{max-width:100%;font-size:13px}
}
@media(prefers-reduced-motion:reduce){
 .appmain .client-order-filter *,
 .appmain .search-result-status{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
