/* GraficaERP shared design system. Tokens → shell → components → responsive. */
:root{
  --canvas:#f6f7f4;
  --surface:#fff;
  --ink:#202d28;
  --muted:#737e77;
  --line:#e4e8e2;
  --green:#245d46;
  --green-dark:#173f31;
  --green-soft:#eaf2ec;
  --accent:#dc7854;
  --danger:#af423f;
  --radius:12px;
  --shadow:0 3px 14px #23392b05;
  --sidebar:246px;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--canvas);
  font-size:14px;
  font-synthesis:none}

*{
  box-sizing:border-box}

body{
  margin:0}

a{
  color:var(--green);
  text-decoration:none}

a:hover{
  text-decoration:underline}

button,input,select,textarea{
  font:inherit}

button,a,input,select,textarea{
  touch-action:manipulation}

button,a{
   -webkit-tap-highlight-color:transparent}

:focus-visible{
  outline:3px solid #71a78b;
  outline-offset:3px}

.ui-icon{
  width:20px;
  height:20px;
  flex-shrink:0;
  vertical-align:middle}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap}

.skip-link{
  position:fixed;
  top:-60px;
  left:20px;
  padding:12px;
  z-index:100;
  background:white}

.skip-link:focus{
  top:10px}

.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:var(--sidebar);
  background:var(--green-dark);
  color:#f4f7f3;
  display:flex;
  flex-direction:column;
  padding:33px 19px 20px;
  z-index:40}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:white;
  font-size:25px;
  letter-spacing:-1px;
  font-weight:650;
  padding:0 10px 34px}

.brand:hover{
  text-decoration:none}

.brand-mark{
  width:38px;
  height:42px;
  background:#ffffff10;
  border:1px solid #ffffff20;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:34px;
  letter-spacing:-3px}

.brand-mark>span{
  color:#eea07a}

.brand-light{
  font-weight:350;
  color:#c7d8ce}

.brand small{
  display:block;
  font-size:8px;
  letter-spacing:2.4px;
  font-weight:500;
  margin-top:5px;
  color:#b7cdc0}

.workspace-label,.nav-section-label{
  font-size:9px;
  letter-spacing:1.8px;
  color:#8faf9c;
  font-weight:650;
  padding:12px 13px 16px;
  display:flex;
  align-items:center;
  gap:8px}

.workspace-dot{
  width:5px;
  height:5px;
  border-radius:50%;
  background:#d99b76}

.sidebar-nav{
  display:grid;
  gap:5px}

.nav-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:8px;
  color:#c1d3c8;
  font-size:13px;
  transition:background .15s,color .15s}

.nav-item:hover{
  background:#ffffff0b;
  color:white;
  text-decoration:none}

.nav-item.is-active{
  background:#f1f5ed;
  color:#224d39;
  box-shadow:0 2px 6px #0000000c;
  font-weight:650}

.nav-section-label{
  margin-top:27px;
  padding-bottom:13px}

.sidebar-bottom{
  margin-top:auto;
  padding-top:30px}

.organization-card{
  display:flex;
  gap:11px;
  align-items:center;
  padding:16px 7px;
  border-top:1px solid #ffffff15}

.organization-monogram{
  background:#d8e5d625;
  color:#ecf4e8;
  width:34px;
  height:34px;
  border-radius:8px;
  display:grid;
  place-items:center;
  font-weight:600}

.organization-card>div{
  min-width:0}

.organization-card strong{
  display:block;
  font-size:12px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:152px}

.organization-card small{
  display:block;
  color:#91ad9d;
  font-size:10px;
  margin-top:5px}

.sidebar .button_to{
  background:none;
  border:0;
  padding:0;
  box-shadow:none;
  margin:0;
  display:block}

.logout-button{
  width:100%;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  justify-content:flex-start!important;
  color:#b4cbbd!important;
  padding:10px 9px!important;
  font-size:11px!important}

.logout-button .ui-icon{
  width:16px;
  height:16px}

.powered-by{
  display:block;
  font-size:9px;
  color:#89a594;
  margin:21px 10px 0}

.powered-by strong{
  color:#bccfc3;
  font-size:13px;
  font-weight:600;
  margin-left:4px}

.app-workspace{
  margin-left:var(--sidebar);
  min-height:100dvh;
  display:flex;
  flex-direction:column}

.topbar{
  height:77px;
  border-bottom:1px solid var(--line);
  background:#ffffffb3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:0 42px}

.breadcrumb{
  display:flex;
  align-items:center;
  gap:13px;
  font-size:12px;
  color:#939b94}

.breadcrumb strong{
  font-weight:500;
  color:#414e45}

.topbar-account{
  display:flex;
  gap:12px;
  align-items:center}

.today-label{
  font-size:11px;
  color:#8b948d;
  margin-right:12px}

.avatar{
  width:30px;
  height:30px;
  border:1px solid #e2e7df;
  background:#edf0e8;
  color:#4f6756;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-size:10px;
  font-weight:650}

.account-name{
  font-size:11px;
  font-weight:500}

.page-content{
  width:100%;
  max-width:1440px;
  margin:0 auto;
  padding:38px 42px 48px;
  flex:1;
  overflow-wrap:anywhere}

.page-content>h1,.page-heading h1{
  font-size:29px;
  letter-spacing:-1px;
  line-height:1.2;
  font-weight:600;
  margin:0 0 12px}

.page-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:30px}

.eyebrow{
  font-size:9px!important;
  font-weight:650;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 12px!important}

.page-description{
  margin:8px 0 0!important;
  color:var(--muted);
  font-size:12px;
  line-height:1.7}

h2{
  font-size:17px;
  letter-spacing:-.35px;
  font-weight:600;
  margin:30px 0 17px}

h3{
  font-size:14px;
  font-weight:600;
  margin:0 0 8px}

p{
  line-height:1.65}

.page-content>p{
  color:var(--muted);
  font-size:12px}

button,input[type=submit],.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid #dbe3da;
  background:white;
  color:var(--green);
  padding:10px 16px;
  min-height:39px;
  border-radius:7px;
  cursor:pointer;
  font-weight:550;
  font-size:12px;
  line-height:1.3;
  text-decoration:none;
  transition:background .15s,border-color .15s;
  white-space:normal}

button:hover,.button:hover{
  background:#f0f5ee;
  text-decoration:none;
  border-color:#b6c8b5}

input[type=submit],.button-primary{
  background:var(--green);
  border-color:var(--green);
  color:#fff;
  box-shadow:0 2px 3px #183e2410}

input[type=submit]:hover,.button-primary:hover{
  background:#1c4c38;
  border-color:#1c4c38;
  color:#fff}

.button .ui-icon{
  width:16px;
  height:16px}

.button-danger{
  color:var(--danger);
  background:#fff8f6;
  border-color:#efdcd6}

.page-content>.button_to{
  display:inline-block;
  border:0;
  background:none;
  padding:0;
  margin:18px 0;
  box-shadow:none}

.page-content>.button_to button{
  color:var(--danger);
  border-color:#e6d4cd}

.page-content>a{
  display:inline-block;
  font-size:12px;
  margin:9px 8px 15px 0;
  font-weight:550}

.page-content>form:not(.button_to),.form-panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:27px 30px;
  box-shadow:var(--shadow);
  margin:24px 0;
  max-width:920px}

.page-content form>div:not([role=alert]),.page-content form>p{
  margin:0 0 20px}

.page-content form>p{
  color:var(--muted);
  font-size:12px}

label:not(:has(input[type=checkbox])){
  display:block;
  font-size:11px;
  font-weight:600;
  color:#58645c;
  margin-bottom:7px}

input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=hidden]),select,textarea{
  width:100%;
  max-width:100%;
  border:1px solid #dce2d9;
  border-radius:7px;
  padding:10px 12px;
  background:#fcfdfa;
  color:#253b2d;
  font-size:13px;
  line-height:1.5;
  min-height:41px;
  transition:border .15s,box-shadow .15s}

input:hover,select:hover,textarea:hover{
  border-color:#b8c7b5}

input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:#709981;
  box-shadow:0 0 0 3px #3e785212;
  background:white}

textarea{
  min-height:105px;
  resize:vertical}

input[type=file]{
  padding:7px!important;
  font-size:11px!important}

input[type=file]::file-selector-button{
  background:#edf2e8;
  border:0;
  border-radius:4px;
  padding:7px 10px;
  color:var(--green);
  margin-right:10px;
  cursor:pointer}

input[type=checkbox],input[type=radio]{
  accent-color:var(--green);
  width:15px;
  height:15px;
  vertical-align:middle;
  margin:0 7px 0 0}

label:has(input[type=checkbox]){
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:12px;
  line-height:1.8;
  cursor:pointer}

br{
  line-height:0}

form br{
  display:none}

fieldset{
  border:1px solid var(--line);
  border-radius:8px;
  padding:18px;
  margin:22px 0;
  background:#fafcf8;
  min-width:0}

legend{
  font-size:12px;
  font-weight:600;
  padding:0 7px;
  color:#4f6454}

fieldset>div{
  margin:10px 0}

form .field_with_errors{
  display:contents}

form .field_with_errors input{
  border-color:var(--danger)!important}

[role=alert]{
  background:#fff1ec;
  color:#934a36;
  border:1px solid #f3d9cb;
  border-radius:8px;
  padding:12px 16px;
  font-size:12px;
  margin-bottom:18px}

[role=alert] p{
  margin:0}

.flash{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 17px;
  border-radius:8px;
  font-size:12px;
  margin-bottom:25px}

.flash-success{
  background:#e9f3e8;
  border:1px solid #d4e5d1;
  color:#3f6544}

.flash-success .ui-icon{
  width:17px;
  height:17px}

.flash-error{
  background:#fff0e9;
  color:#9e4b33;
  border:1px solid #f0d4c4}

.table-panel{
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:auto;
  box-shadow:var(--shadow)}

table{
  border-collapse:separate;
  border-spacing:0;
  width:100%;
  background:var(--surface);
  font-size:12px;
  text-align:left;
  overflow:hidden}

.page-content>table{
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin:20px 0;
  display:block;
  overflow-x:auto}

thead{
  background:#fafbf8}

th{
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:1px;
  color:#8a948b;
  font-weight:600;
  white-space:nowrap;
  padding:16px 20px;
  border-bottom:1px solid var(--line)}

td{
  padding:17px 20px;
  border-bottom:1px solid #edf0e9;
  vertical-align:middle;
  line-height:1.5}

tbody tr:last-child td{
  border-bottom:0}

tbody tr:hover{
  background:#fbfcf9}

td:first-child{
  font-weight:500}

td a{
  font-weight:550}

td small{
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-top:4px}

.table-code{
  font-family:ui-monospace,SFMono-Regular,monospace;
  color:#829080;
  font-size:10px}

.table-subtitle{
  color:var(--muted);
  font-weight:400}

.table-heading{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:20px;
  border-bottom:1px solid var(--line)}

.table-heading h2{
  margin:0;
  font-size:14px}

.table-heading span{
  font-size:10px;
  color:var(--muted)}

.row-action{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:11px}

.row-action .ui-icon{
  width:14px;
  height:14px}

.badge{
  display:inline-flex;
  padding:4px 9px;
  border-radius:5px;
  font-size:10px;
  font-weight:550;
  background:var(--green-soft);
  color:#57795b}

.badge-muted{
  background:#f0f1eb;
  color:#888d7a}

.badge-orange{
  background:#fcf0e6;
  color:#b87941}

.empty-state{
  text-align:center;
  padding:55px 24px;
  background:white;
  border-radius:var(--radius);
  border:1px dashed #dfe5d9;
  margin:24px 0}

.empty-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  margin:0 auto 16px;
  border-radius:12px;
  background:#eff3ea;
  color:#83977b}

.empty-state h3{
  font-size:14px}

.empty-state p{
  max-width:350px;
  margin:8px auto 0;
  color:var(--muted);
  font-size:12px}

.page-content>ul:not(.module-grid),.page-content>ol{
  padding:0;
  list-style:none;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin:20px 0;
  overflow:hidden}

.page-content>ul>li,.page-content>ol>li{
  padding:18px 22px;
  border-bottom:1px solid var(--line);
  line-height:1.8;
  font-size:12px}

.page-content>ul>li:last-child,.page-content>ol>li:last-child{
  border:0}

.page-content>ul>li img{
  display:block;
  margin:16px 0}

.page-content>ul>li>.button_to,.page-content>ol>li>.button_to{
  display:inline-block;
  margin:4px 6px}

.page-content>ul>li>.button_to button,.page-content>ol>li>.button_to button{
  font-size:10px;
  padding:6px 10px;
  min-height:30px;
  color:var(--danger)}

dl{
  display:grid;
  grid-template-columns:160px 1fr;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin:25px 0;
  overflow:hidden}

dt,dd{
  margin:0;
  padding:14px 22px;
  border-bottom:1px solid #edf0e9;
  line-height:1.6;
  font-size:12px}

dt{
  color:var(--muted);
  background:#fbfcf9;
  font-size:11px}

dd{
  min-height:45px;
  overflow-wrap:anywhere}

dt:last-of-type,dd:last-of-type{
  border-bottom:0}

img{
  max-width:100%;
  height:auto;
  border-radius:10px;
  object-fit:cover}

pre{
  white-space:pre-wrap;
  font-size:11px;
  background:#f3f5ef;
  border-radius:8px;
  padding:15px}

.app-footer{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:18px 42px;
  border-top:1px solid var(--line);
  color:#939c92;
  font-size:10px}

.app-footer small{
  font-size:9px}

.app-footer small span{
  font-family:ui-monospace,monospace}

.footer-dot{
  padding:0 6px;
  color:#b8bfb4}

.menu-toggle,.sidebar-scrim{
  display:none}

.stats-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:17px;
  margin:28px 0 34px}

.stat-card{
  padding:22px 23px;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow)}

.stat-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:var(--muted);
  font-size:11px}

.stat-top .ui-icon{
  color:#8b9f87;
  width:18px;
  height:18px}

.stat-value{
  display:block;
  font-size:31px;
  font-weight:550;
  letter-spacing:-1.4px;
  margin:15px 0 7px}

.stat-caption{
  font-size:10px;
  color:#969d91}

.dashboard-section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:10px 0 18px}

.dashboard-section-heading h2{
  margin:0}

.dashboard-section-heading>span{
  font-size:10px;
  color:var(--muted)}

.module-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:17px}

.module-card{
  display:flex;
  flex-direction:column;
  position:relative;
  border:1px solid var(--line);
  background:white;
  border-radius:var(--radius);
  padding:23px;
  min-height:175px;
  color:var(--ink);
  box-shadow:var(--shadow);
  transition:transform .18s,border-color .18s}

.module-card:hover{
  transform:translateY(-2px);
  border-color:#9db39b;
  text-decoration:none}

.module-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:20px}

.module-icon{
  display:grid;
  place-items:center;
  background:#f0f4eb;
  color:#5c7d56;
  width:38px;
  height:38px;
  border-radius:9px}

.module-card:nth-child(3n+2) .module-icon{
  background:#fbf0e7;
  color:#b87e52}

.module-card-top>.ui-icon{
  color:#9ba693;
  width:16px;
  height:16px}

.module-card h3{
  font-size:14px}

.module-card p{
  font-size:11px;
  color:var(--muted);
  line-height:1.7;
  margin:0}

.welcome-banner{
  border-radius:var(--radius);
  border:1px solid #dfe7d6;
  background:linear-gradient(110deg,#eaf0e3,#f3f5ec);
  padding:24px 28px;
  display:flex;
  gap:20px;
  align-items:center;
  justify-content:space-between;
  margin-top:32px}

.welcome-banner h3{
  font-size:15px;
  font-weight:550}

.welcome-banner p{
  font-size:11px;
  color:#78856e;
  margin:6px 0 0}

.welcome-banner>.ui-icon{
  width:30px;
  height:30px;
  color:#95a884}

.auth-layout{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:100dvh;
  background:white}

.auth-story{
  background:var(--green-dark);
  color:white;
  padding:50px 11%;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  overflow:hidden}

.auth-story:after{
  content:"";
  position:absolute;
  right:-180px;
  bottom:70px;
  width:450px;
  height:450px;
  border-radius:50%;
  border:1px solid #ffffff12;
  box-shadow:0 0 0 65px #ffffff03,0 0 0 130px #ffffff02;
  pointer-events:none}

.auth-brand{
  color:white;
  font-size:28px;
  font-weight:600;
  letter-spacing:-1.4px}

.auth-story .eyebrow{
  color:#a9c2ac}

.auth-story h2{
  font-size:clamp(30px,3.8vw,55px);
  line-height:1.18;
  letter-spacing:-2px;
  font-weight:450;
  margin:25px 0}

.auth-story em{
  color:#d6b78f;
  font-style:normal}

.auth-story p:not(.eyebrow){
  max-width:270px;
  color:#a6bcab;
  font-size:13px;
  line-height:1.8}

.auth-story>span{
  font-size:10px;
  color:#8fa996;
  z-index:1}

.auth-workspace{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0}

.auth-panel{
  width:min(100%,440px);
  margin:auto;
  padding:70px 35px}

.auth-panel h1{
  font-size:29px;
  letter-spacing:-1px;
  margin:0 0 14px;
  font-weight:600}

.auth-panel>p{
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
  margin-bottom:30px}

.auth-panel form>p{
  margin:0 0 21px}

.auth-panel form{
  margin:30px 0 20px}

.auth-panel input[type=submit]{
  width:100%;
  margin-top:10px;
  min-height:44px}

.auth-panel>a{
  font-size:11px}

.auth-panel .form-note{
  font-size:11px;
  color:#9ba194;
  text-align:center}

.auth-workspace .app-footer{
  padding:24px 35px;
  border:0;
  font-size:9px}

.auth-mobile-brand{
  display:none}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px}

.field-full{
  grid-column:1/-1}

.form-actions{
  display:flex;
  align-items:center;
  gap:15px;
  padding-top:20px;
  border-top:1px solid var(--line);
  margin-top:24px!important}

.section-caption{
  color:var(--muted);
  font-size:11px;
  margin-top:-7px}

.detail-code{
  font:11px ui-monospace,monospace;
  color:#8a9585}

.quote-line{
  display:grid;
  grid-template-columns:minmax(100px,1fr) 90px 145px minmax(100px,1fr);
  gap:14px;
  align-items:end;
  padding:16px 0;
  border-bottom:1px solid var(--line)}

.quote-line label:has(input){
  align-self:center}

.quote-line label{
  margin:0}

.quote-line input,.quote-line select{
  margin-top:6px}

.quote-line:last-child{
  border:0}

@media(min-width:1100px){
  .page-content form:not(.button_to)>div:has(>label):not(:has(fieldset)){
  max-width:660px}

.page-content form>div:has(>button){
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  align-items:end}

.page-content form>div:has(>button)>label{
  grid-column:1/-1}

}

@media(prefers-reduced-motion:reduce){
  *{
  transition:none!important;
  scroll-behavior:auto!important}

}

@media(max-width:1100px){
  :root{
  --sidebar:218px}

.page-content{
  padding:30px 28px}

.topbar{
  padding:0 28px}

.app-footer{
  padding:18px 28px}

.stats-grid{
  grid-template-columns:repeat(2,1fr)}

.module-grid{
  grid-template-columns:repeat(2,1fr)}

.account-name{
  display:none}

.quote-line{
  grid-template-columns:1fr 90px;
  align-items:start}

}

@media(max-width:760px){
  .sidebar{
  transform:translateX(-100%);
  transition:transform .2s;
  width:246px}

.navigation-open .sidebar{
  transform:translateX(0)}

.navigation-open .sidebar-scrim{
  display:block;
  position:fixed;
  inset:0;
  background:#13291f77;
  z-index:35;
  border:0;
  border-radius:0;
  width:100%;
  height:100%;
  padding:0}

.app-workspace{
  margin-left:0}

.topbar{
  height:64px;
  padding:0 20px}

.menu-toggle{
  display:flex;
  border:0;
  background:none;
  min-height:32px;
  padding:5px;
  color:var(--green)}

.breadcrumb{
  margin-right:auto;
  gap:8px;
  font-size:10px}

.breadcrumb>span:first-child{
  display:none}

.breadcrumb>span:nth-child(2){
  display:none}

.today-label{
  display:none}

.page-content{
  padding:27px 20px 35px}

.page-content>h1,.page-heading h1{
  font-size:25px}

.page-heading{
  align-items:flex-start;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:24px}

.page-heading .button{
  font-size:11px}

.stats-grid{
  gap:10px;
  margin:22px 0 28px}

.stat-card{
  padding:18px 15px}

.stat-value{
  font-size:27px}

.module-grid{
  gap:12px}

.module-card{
  padding:18px;
  min-height:172px}

.module-card p{
  font-size:10px}

.welcome-banner{
  padding:20px}

.app-footer{
  padding:16px 20px;
  font-size:9px}

.app-footer>span{
  max-width:60%}

.page-content>form:not(.button_to){
  padding:20px 17px}

.page-content>table{
  margin:18px 0}

th,td{
  padding:14px 15px}

.form-grid{
  grid-template-columns:1fr}

.field-full{
  grid-column:auto}

dl{
  grid-template-columns:105px 1fr}

dt,dd{
  padding:12px 14px}

.auth-layout{
  grid-template-columns:1fr}

.auth-story{
  display:none}

.auth-workspace{
  min-height:100dvh;
  background:var(--canvas)}

.auth-panel{
  max-width:440px;
  padding:45px 28px}

.auth-mobile-brand{
  display:block;
  font-size:23px;
  font-weight:650;
  color:var(--green);
  letter-spacing:-1px;
  margin-bottom:50px}

.auth-workspace .app-footer{
  padding:20px 28px}

.quote-line{
  grid-template-columns:1fr 1fr}

}

@media(max-width:380px){
  .module-grid{
  grid-template-columns:1fr}

.topbar-account{
  gap:5px}

.stat-top{
  font-size:10px}

}



/* Shared form refinements. */
fieldset:has(input[name="user[permissions][]"]) {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 10px 20px;
   }


.form-grid > div {
   min-width: 0;
   }


.form-grid > div:has(button) {
   display: grid;
   grid-template-columns: 1fr auto;
   gap: 7px;
   align-items: end;
   }


.form-grid > div:has(button) > label {
   grid-column: 1 / -1;
   }


.form-grid .field-full {
   width: 100%;
   }


.form-grid + p {
   margin-top: 20px;
   }


.page-content:has(.form-grid) > form {
   max-width: 1000px;
   }


@media (max-width: 760px) {
   fieldset:has(input[name="user[permissions][]"]) {
   grid-template-columns: 1fr;
   }

 }


/* Usability: keep labels and navigation accessible on compact screens. */
.quote-line > div:first-of-type { display: flex; gap: 7px; align-items: center; align-self: center; }
.quote-line > div:first-of-type label { margin: 0; }
.stat-caption { color: #788371; }
@media (max-width: 760px) {
  .sidebar { visibility: hidden; }
  .navigation-open .sidebar { visibility: visible; }
}
/* Inline service creation preserves the surrounding supplier form. */
.service-dialog { width: min(500px, calc(100vw - 32px)); max-height: 85dvh; overflow-y: auto; border: 1px solid var(--line); border-radius: var(--radius); padding: 25px; color: var(--ink); box-shadow: 0 20px 80px #102b2840; }
.service-dialog::backdrop { background: #15332985; }
.service-dialog .dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.service-dialog h2 { margin: 0; }
.service-dialog p { margin: 18px 0; color: var(--muted); font-size: 12px; }
.service-dialog .dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
[hidden] { display: none !important; }

.supplier-filters { display:flex; align-items:end; gap:16px; flex-wrap:wrap; margin:20px 0; }
.supplier-filters > div:first-child { flex:1; min-width:240px; }
.supplier-filters label { display:block; margin-bottom:6px; }
.page-content form.supplier-filters > div { margin-bottom:0; }
.supplier-filter-actions { display:flex; align-items:center; gap:8px; }
.supplier-filter-actions input[type=submit], .supplier-filter-actions .button { height:42px; }
.supplier-service-tags { display:flex; align-items:center; gap:5px; flex-wrap:wrap; max-width:290px; }
.service-overflow { position:relative; }
.service-overflow > button { border:0; cursor:pointer; font:inherit; font-size:11px; }
.service-tooltip { display:none; position:absolute; z-index:20; top:100%; right:0; width:max-content; max-width:280px; margin:0; padding:12px 16px; list-style:none; background:#fff; color:#263b30; border:1px solid #dfe5d9; border-radius:8px; box-shadow:0 6px 20px #0002; white-space:normal; }
.service-tooltip li + li { margin-top:8px; }
.service-overflow:hover .service-tooltip, .service-overflow:focus-within .service-tooltip { display:block; }
@media (min-width: 1000px) {
  .supplier-table-panel, .supplier-table-panel table { overflow:visible; }
}
.service-tooltip { overflow-wrap:anywhere; }

.supplier-evaluation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.supplier-evaluation { margin:24px 0; }
.supplier-evaluation h3 { margin:12px 0; }
.evaluation-tags { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:12px 0; }
.evaluation-tags .badge { font-size:12px; overflow-wrap:anywhere; max-width:100%; }
.evaluation-positive { background:#eaf3e8; color:#345d36; }
.evaluation-negative { background:#fff0e6; color:#94532f; }
@media (max-width:700px) { .supplier-evaluation-grid { grid-template-columns:1fr; } }

.supplier-row-evaluation { display:grid; gap:8px; min-width:170px; max-width:280px; }
.supplier-row-evaluation-line { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.supplier-row-evaluation-line .evaluation-label { width:42px; color:var(--muted); font-size:10px; }
.supplier-filters > div:not(:first-child):not(.supplier-filter-actions) { flex:1; min-width:150px; }

.feedback-filters { display:flex; align-items:end; flex-wrap:wrap; gap:16px; }
.page-content form.feedback-filters > div { margin-bottom:0; }
.feedback-filter-actions { display:flex; gap:8px; }
.feedback-filter-actions input[type=submit], .feedback-filter-actions .button { height:42px; }
.feedback-message { margin:24px 0; padding:24px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow-wrap:anywhere; }
.feedback-message p { white-space:pre-wrap; }

.customer-stock-thumbnail { object-fit:cover; border-radius:7px; }

.warehouse-sharing { margin:24px 0; padding:24px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.warehouse-sharing-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.shared-warehouse-layout .page-content { max-width:1200px; margin:0 auto; padding:32px 20px; }
