/* Responsive system — loaded last so every module follows the same containment rules. */
html,body{max-width:100%;overflow-x:hidden}img,svg,video,canvas{max-width:100%}main,main>section,.panel,.assistant-grid,.chat-panel,.conversation-rail,.context-panel,.invoice-register,.settings-grid,.module-form,.quote-editor,fieldset{min-width:0}button,input,select,textarea{max-width:100%}p,h1,h2,h3,strong,span,td,th{overflow-wrap:anywhere}.mobile-nav-toggle,.mobile-nav-scrim{display:none}
.assistant-grid>article{min-width:0}.rail-head,.context-head{padding-inline:18px}.conversation-rail .compact-pagination{padding:9px 12px 12px}.assistant-case{margin-inline:8px;border-radius:10px}.assistant-case:first-child{border-top-color:transparent}.assistant-case strong,.assistant-case span{line-height:1.45}.chat-head{padding-block:8px;min-height:65px;height:auto}.chat-head>div:nth-child(2){min-width:0}.chat-head>div:nth-child(2) strong,.chat-head>div:nth-child(2) span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-messages{padding:24px clamp(18px,2.2vw,34px)}.chat-welcome{padding-inline:18px}.context-content{padding:18px}.context-block p{overflow-wrap:anywhere}.chat-composer{padding:14px clamp(12px,1.6vw,22px) 16px}.composer-row textarea{min-width:0}.attachment-tray{margin-inline:2px}.composer-note{padding-inline:2px}

@media(max-width:1440px){
  .app{grid-template-columns:220px minmax(0,1fr)}
  .assistant-grid{grid-template-columns:minmax(210px,240px) minmax(0,1fr) minmax(230px,260px)}
  .conversation-select{max-width:155px}
  .chat-head{gap:7px;padding-inline:12px}
  .voice-control{padding-inline:7px}
  .workspace{grid-template-columns:minmax(260px,300px) minmax(0,1fr) minmax(260px,290px)}
}

@media(max-width:1200px){
  main{padding-inline:22px}
  main>section>header,.assistant-top{margin-inline:-22px;padding-left:22px}
  .stats,.invoice-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .assistant-grid{grid-template-columns:minmax(210px,240px) minmax(0,1fr)}
  .context-panel{display:none}
  .invoice-view .invoice-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end!important}
  .invoice-view .invoice-search{grid-column:1/-1;width:100%;max-width:none}
  .invoice-view .invoice-toolbar select,.invoice-view .compact-filter,.invoice-view .compact-filter input{width:100%;max-width:none}
  .invoice-count{grid-column:1/-1;margin-left:0;text-align:right}
  .quote-form-grid{grid-template-columns:1fr}
  .quote-form-grid .editor-wide{grid-column:auto}
}

@media(max-width:960px){
  .app{display:block;min-height:100vh}
  .app>aside{display:flex;position:fixed;inset:0 auto 0 0;width:min(290px,86vw);height:100dvh;z-index:100;transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 50px #10182833;overflow-y:auto}
  .app.mobile-nav-open>aside{transform:translateX(0)}
  .mobile-nav-toggle{display:grid;place-items:center;position:fixed;left:14px;top:16px;z-index:92;width:42px;height:42px;border:1px solid #dce2eb;border-radius:11px;background:#fff;color:#344054;box-shadow:0 4px 14px #1018281c;font-size:20px}
  .mobile-nav-scrim{position:fixed;inset:0;z-index:99;border:0;background:#10182873}
  .app.mobile-nav-open .mobile-nav-scrim{display:block}
  .profile-menu{position:fixed;right:14px;top:16px}
  main{padding:0 18px 24px}
  main>section>header,.assistant-top{min-height:74px;margin:0 -18px 20px;padding:16px 68px 16px 68px}
  main>section>header{gap:12px;flex-wrap:wrap}
  main>section>header>div:first-child{min-width:0}
  main>section>header h1,.assistant-top h1{font-size:clamp(21px,4vw,26px)}
  .header-actions{flex-direction:row;flex-wrap:wrap}
  .workspace,#viewDashboard.dashboard-mode-cases .workspace{grid-template-columns:minmax(240px,290px) minmax(0,1fr)}
  .approvals-panel{grid-column:1/-1}
  .module-form{max-width:none}
  .module-grid,.settings-grid .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-tabs{max-width:100%;overflow-x:auto;scrollbar-width:thin}
  .settings-tabs button{flex:0 0 auto;white-space:nowrap}
}

@media(max-width:760px){
  main{padding-inline:12px}
  main>section>header,.assistant-top{margin-inline:-12px;padding:14px 62px;min-height:68px}
  main>section>header{align-items:flex-start}
  main>section>header .primary,main>section>header .secondary{width:100%}
  .profile-menu{right:10px;top:14px}
  .mobile-nav-toggle{left:10px;top:14px}
  .stats,.invoice-stats{grid-template-columns:1fr}
  .assistant-view{height:auto;min-height:calc(100dvh - 20px)}
  .assistant-grid{display:flex;flex-direction:column;min-height:calc(100dvh - 112px);overflow:visible;border-radius:13px}
  .conversation-rail{display:block;flex:0 0 auto;border-right:0;border-bottom:1px solid var(--line);max-height:220px;overflow:hidden}
  .rail-head{height:48px}
  .search.compact{margin:8px 10px}
  .assistant-cases{display:flex;gap:8px;max-height:none;overflow-x:auto;padding:0 10px 10px;scroll-snap-type:x proximity}
  .assistant-case{flex:0 0 min(250px,78vw);border:1px solid var(--line);border-radius:10px;padding:10px;scroll-snap-align:start}
  .conversation-rail .compact-pagination{display:none}
  .chat-panel{min-height:560px}
  .chat-head{height:auto;min-height:62px;flex-wrap:wrap;padding:9px 10px}
  .chat-head>div:nth-child(2){min-width:120px;flex:1}
  .review-badge{margin-left:0!important}
  .conversation-select{order:5;width:100%;max-width:none;margin:0!important}
  .voice-control{min-width:34px}
  #voiceMode{font-size:0}#voiceMode::after{content:'Voice';font-size:10px}
  .chat-messages{padding:14px 10px}
  .message{max-width:92%}
  .prompt-grid{grid-template-columns:1fr}
  .chat-composer{padding:10px}
  .composer-note{gap:8px;flex-wrap:wrap}
  .context-panel{display:none}
  .workspace,#viewDashboard.dashboard-mode-cases .workspace{grid-template-columns:1fr}
  .case-workspace{min-height:420px}
  .invoice-view .invoice-toolbar{grid-template-columns:1fr 1fr;padding:10px}
  .invoice-view .invoice-search,.invoice-count{grid-column:1/-1}
  .invoice-view .compact-filter{white-space:normal}
  .invoice-table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  .invoice-table{min-width:720px}
  .table-actions{min-width:0;flex-wrap:nowrap}
  .table-pagination,.settings-pager{justify-content:space-between;flex-wrap:wrap;padding:10px}
  .table-pagination>span,.settings-pager>span{order:-1;width:100%;text-align:center}
  .table-pagination button,.settings-pager button{min-width:0;flex:1}
  .module-grid,.settings-grid .module-grid{grid-template-columns:1fr}
  .module-form{padding:16px}
  .document-import{align-items:stretch;flex-direction:column;gap:8px;padding:12px}
  .document-import label{min-width:0;width:100%}
  .modal{align-items:end;padding:0}
  .modal-card,.quote-editor,#invoiceForm,.settings-dialog .modal-card{width:100%;max-width:100%;max-height:94dvh;border-radius:18px 18px 0 0;padding:20px 14px;overflow:auto}
  .modal-actions,.quote-editor-actions{position:sticky;bottom:-20px;margin:20px -14px -20px;padding:12px 14px;background:#fff;border-top:1px solid var(--line);z-index:2}
  .quote-editor-actions>*{flex:1;justify-content:center}
  .repeat-header{display:none}
  .repeat-row{grid-template-columns:1fr!important;overflow:visible}
  .repeat-actions{grid-column:auto;justify-content:flex-end}
  #viewSettings .settings-add{position:static;float:none;width:calc(100% - 40px);margin:10px 20px}
  #viewSettings .settings-grid>.panel>h2{padding-right:20px}
  .settings-list-toolbar{flex-wrap:wrap}.settings-list-toolbar .search{max-width:none;flex-basis:100%}
  .user-row,.agent-rule-row,.browser-task-row,.settings-driver{align-items:flex-start!important;grid-template-columns:1fr!important;flex-direction:column}
  .agent-rule-row button{width:100%}
  .login-card{width:min(420px,calc(100% - 32px));padding-block:30px}
  .tl-calendar{width:min(300px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto}
}

@media(max-width:420px){
  main>section>header,.assistant-top{padding-inline:58px}
  .invoice-view .invoice-toolbar{grid-template-columns:1fr}
  .invoice-view .invoice-search,.invoice-count{grid-column:auto}
  .table-pagination label{width:100%;justify-content:center}
  .chat-panel{min-height:520px}
  .composer-row{gap:4px;padding:5px}
  .microphone-button{width:34px;flex-basis:34px}
  .modal-actions,.quote-editor-actions{flex-direction:column}
  .settings-tabs{border-radius:9px}
}
