:root{--bg:#f5f6f8;--card:#fff;--card2:#f9fafb;--text:#15171a;--muted:#70757d;--border:#e4e7eb;--primary:#f36b21;--shadow:0 8px 24px rgba(20,25,30,.06)}
html[data-theme=dark]{--bg:#0c0f12;--card:#14181d;--card2:#191e24;--text:#f3f5f7;--muted:#939aa3;--border:#293039;--shadow:0 10px 30px rgba(0,0,0,.24)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}
a{color:inherit}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:#101317;color:#fff;padding:22px 14px;border-right:1px solid #252a30}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;margin:0 8px 28px}.brand>span{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--primary);color:#fff}.brand small{display:block;font-size:10px;color:#9aa0a8;font-weight:600}.sidebar nav{display:grid;gap:5px}.sidebar nav a{padding:10px 12px;border-radius:8px;text-decoration:none;color:#c5c9cf}.sidebar nav a:hover{background:#1b2026;color:#fff}.main{min-width:0}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--card);border-bottom:1px solid var(--border)}.top-actions{display:flex;align-items:center;gap:10px}.content{padding:22px}.panel{background:var(--card);border:1px solid var(--border);border-radius:13px;padding:16px;box-shadow:var(--shadow);margin-bottom:16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.panel h2,.panel h3{margin:0 0 12px}.panel-head h2{margin:0}.panel-head p{margin:3px 0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.stat{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:var(--shadow)}.stat small{display:block;color:var(--muted)}.stat strong{font-size:28px}.table-wrap{width:100%;overflow:auto}.resizable{resize:vertical;min-height:220px;height:440px;max-height:75vh}table{border-collapse:collapse;width:100%;min-width:900px}th,td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}th{font-size:11px;text-transform:uppercase;color:var(--muted);background:var(--card);position:sticky;top:0}th a{text-decoration:none}.code{font-weight:800;color:var(--primary);text-decoration:none}.badge{display:inline-flex;padding:5px 8px;border:1px solid var(--border);border-radius:999px;background:var(--card2);font-size:11px}.primary,.primary-link,.ghost,.ghost-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 13px;border-radius:8px;text-decoration:none;font-weight:750;cursor:pointer}.primary,.primary-link{border:0;background:var(--primary);color:#fff}.ghost{border:1px solid var(--border);background:var(--card2);color:var(--text)}.ghost-link{border:1px solid var(--border);color:var(--text)}.full{width:100%;margin-top:8px}input,select,textarea{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--card2);color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary)}label{display:grid;gap:5px;color:var(--muted);font-size:12px}.form-panel{max-width:900px}.form-panel form>p{display:grid;gap:6px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.message{background:rgba(47,170,92,.12);border:1px solid rgba(47,170,92,.3);padding:10px 12px;border-radius:8px;margin-bottom:14px}.error{background:rgba(220,60,60,.12);padding:10px;border-radius:8px}.muted{color:var(--muted)}.search{display:flex;gap:8px;max-width:520px;flex:1}.search-row{display:grid;grid-template-columns:minmax(250px,1fr) auto auto auto;gap:8px}.filters{display:none;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.filters.open{display:grid;gap:12px}.check{display:inline-flex;grid-auto-flow:column;align-items:center;margin:6px 14px 0 0}.check input{width:auto;min-height:0}.ticket-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.facts>div{padding:10px;background:var(--card2);border:1px solid var(--border);border-radius:8px}.facts small{display:block;color:var(--muted)}.timeline{display:grid;gap:0}.event{position:relative;padding:12px 0 12px 18px;border-left:2px solid var(--border)}.event:before{content:"";position:absolute;left:-5px;top:18px;width:8px;height:8px;border-radius:50%;background:var(--primary)}.event time,.event span{display:block;color:var(--muted);font-size:11px}.event p{margin:5px 0 0}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(390px,100%);background:var(--card);border:1px solid var(--border);border-radius:16px;padding:26px;box-shadow:var(--shadow);display:grid;gap:14px}.login-brand{margin:0 0 6px}.login-card h1{margin:0}
@media(max-width:1000px){.layout{grid-template-columns:76px 1fr}.sidebar .brand div,.sidebar nav a{font-size:0}.sidebar nav a:before{content:"•";font-size:20px}.stats{grid-template-columns:repeat(2,1fr)}.ticket-grid{grid-template-columns:1fr}.facts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.content{padding:12px}.topbar{padding:0 12px}.stats{grid-template-columns:1fr}.search-row{grid-template-columns:1fr}.facts{grid-template-columns:1fr}}

/* === LUMAPITEC CADASTROS V2 START === */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid .full{grid-column:1/-1}
.form-grid .span-2{grid-column:span 2}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field label{font-size:12px;font-weight:700;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;box-sizing:border-box;background:var(--card2);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:10px 11px}
.field select{min-height:42px}
.field small{color:var(--muted);font-size:11px}
.field-label-row,.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.section-title{margin:6px 0 14px;padding-bottom:9px;border-bottom:1px solid var(--border);font-weight:800}
.address-title{margin-top:24px}
.mini-link{font-size:11px;text-decoration:none;color:var(--primary);white-space:nowrap}
.dependency-warning{margin-top:6px;padding:8px 10px;border:1px dashed var(--border);border-radius:8px;font-size:12px}
.compact{padding:7px 10px!important;font-size:12px}
.compact-text{margin:-7px 0 14px}
.check-field{justify-content:center}
.check-field label{display:flex;align-items:center;gap:8px}
.check-field input{width:auto}
.errorlist{margin:0;padding-left:18px;color:#ff8e8e;font-size:12px}
.equipment-form-panel{max-width:1180px}
@media(max-width:900px){
  .form-grid,.form-grid.three{grid-template-columns:1fr}
  .form-grid .span-2{grid-column:auto}
  .field-label-row,.section-title{align-items:flex-start;flex-direction:column}
}
/* === LUMAPITEC CADASTROS V2 END === */

/* === CHECKBOX FIX START === */
input[type="checkbox"]{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  min-height:16px!important;
  padding:0!important;
  margin:0 6px 0 0!important;
  border-radius:3px!important;
  vertical-align:middle!important;
}
/* === CHECKBOX FIX END === */

/* === LUMAPITEC MOBILE V1 START === */
.mobile-menu-button,
.mobile-menu-close,
.mobile-menu-overlay{display:none}

.topbar-title{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.topbar-title strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

button,.primary,.primary-link,.ghost,.ghost-link{touch-action:manipulation}

input[type="checkbox"]{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  min-height:16px!important;
  padding:0!important;
}

@media (max-width:1000px) and (min-width:761px){
  .content{padding:16px}
  .panel{padding:14px}
  .topbar{padding:0 16px}
  .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid.three .span-2{grid-column:1/-1}
  .table-wrap{-webkit-overflow-scrolling:touch}
}

@media (max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  body{font-size:14px}

  .layout{
    display:block!important;
    min-height:100dvh;
  }

  .main{
    width:100%;
    min-width:0;
  }

  .sidebar{
    position:fixed!important;
    z-index:1200;
    inset:0 auto 0 0;
    width:min(84vw,320px)!important;
    height:100dvh;
    padding:18px 14px calc(18px + env(safe-area-inset-bottom));
    transform:translateX(-105%);
    transition:transform .2s ease;
    overflow-y:auto;
    box-shadow:0 16px 48px rgba(0,0,0,.45);
  }

  .sidebar .brand{
    margin:2px 46px 22px 8px;
  }

  .sidebar .brand div,
  .sidebar nav a{
    font-size:inherit!important;
  }

  .sidebar nav a:before{
    content:none!important;
  }

  .sidebar nav a{
    display:flex;
    align-items:center;
    min-height:46px;
    padding:11px 12px;
    font-size:14px!important;
  }

  .mobile-menu-open .sidebar{
    transform:translateX(0);
  }

  .mobile-menu-button,
  .mobile-menu-close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    min-width:42px;
    padding:0;
    border:1px solid var(--border);
    border-radius:9px;
    background:var(--card2);
    color:var(--text);
    font:inherit;
    font-size:22px;
    cursor:pointer;
  }

  .mobile-menu-close{
    position:absolute;
    top:16px;
    right:14px;
    color:#fff;
    background:#191e24;
    border-color:#293039;
    font-size:28px;
    line-height:1;
  }

  .mobile-menu-overlay{
    position:fixed;
    z-index:1190;
    inset:0;
    width:100%;
    height:100%;
    border:0;
    background:rgba(0,0,0,.56);
    opacity:0;
    visibility:hidden;
    transition:opacity .2s ease,visibility .2s ease;
  }

  .mobile-menu-open .mobile-menu-overlay{
    display:block;
    opacity:1;
    visibility:visible;
  }

  body.mobile-menu-open{
    overflow:hidden;
  }

  .topbar{
    position:sticky;
    top:0;
    z-index:1000;
    min-height:64px;
    height:auto;
    padding:10px 12px;
    gap:8px;
    background:var(--card);
  }

  .topbar-title{
    min-width:0;
    flex:1;
  }

  .topbar-title strong{
    font-size:14px;
  }

  .top-actions{
    gap:6px;
    flex:0 0 auto;
  }

  .top-actions > span{
    display:none;
  }

  .top-actions form{
    margin:0;
  }

  .top-actions .ghost{
    min-height:42px;
    padding:0 10px;
  }

  .content{
    width:100%;
    padding:12px 10px calc(22px + env(safe-area-inset-bottom))!important;
  }

  .panel{
    width:100%;
    max-width:100%;
    margin-bottom:12px;
    padding:13px;
    border-radius:11px;
  }

  .panel-head{
    align-items:stretch;
    flex-direction:column;
    gap:10px;
  }

  .panel-head > *{
    width:100%;
  }

  .stats{
    grid-template-columns:1fr!important;
    gap:10px;
  }

  .stat{
    padding:14px;
  }

  .stat strong{
    font-size:24px;
  }

  .form-panel,
  .equipment-form-panel{
    max-width:none!important;
  }

  .form-grid,
  .form-grid.three{
    grid-template-columns:1fr!important;
    gap:13px!important;
  }

  .form-grid .full,
  .form-grid .span-2,
  .form-grid.three .span-2{
    grid-column:auto!important;
  }

  .field-label-row,
  .section-title{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:6px!important;
  }

  .section-title .compact,
  .address-title .compact{
    width:100%;
  }

  input,
  select,
  textarea{
    min-height:46px;
    font-size:16px;
  }

  textarea{
    min-height:110px;
  }

  .form-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }

  .form-actions .primary,
  .form-actions .primary-link,
  .form-actions .ghost,
  .form-actions .ghost-link,
  .form-actions button,
  .form-actions a{
    width:100%;
    min-height:46px;
  }

  .search,
  .search-row{
    width:100%;
    max-width:none;
    grid-template-columns:1fr!important;
    flex-direction:column;
  }

  .search > *,
  .search-row > *{
    width:100%;
  }

  .filters{
    width:100%;
  }

  .table-wrap{
    width:100%;
    max-width:100%;
    overflow-x:auto!important;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    border-radius:8px;
  }

  .table-wrap table{
    min-width:720px;
  }

  th,td{
    padding:10px 9px;
  }

  .table-wrap th:first-child,
  .table-wrap td:first-child{
    position:sticky;
    left:0;
    z-index:2;
    background:var(--card);
  }

  .table-wrap th:first-child{
    z-index:3;
  }

  .resizable{
    resize:none;
    height:auto;
    min-height:0;
    max-height:none;
  }

  .ticket-grid{
    grid-template-columns:1fr!important;
  }

  .facts{
    grid-template-columns:1fr!important;
  }

  .event{
    padding-right:3px;
  }

  .login-body{
    min-height:100dvh;
    padding:
      calc(16px + env(safe-area-inset-top))
      12px
      calc(16px + env(safe-area-inset-bottom));
  }

  .login-card{
    width:100%;
    max-width:420px;
    padding:20px 16px;
    border-radius:14px;
  }

  .google-btn{
    min-height:50px!important;
  }
}

@media (max-width:380px){
  .topbar{padding-left:8px;padding-right:8px}
  .content{padding-left:8px!important;padding-right:8px!important}
  .top-actions .ghost{padding:0 8px;font-size:12px}
  .mobile-menu-button{width:40px;height:40px;min-width:40px}
}

@media (prefers-reduced-motion:reduce){
  .sidebar,
  .mobile-menu-overlay{
    transition:none!important;
  }
}
/* === LUMAPITEC MOBILE V1 END === */

/* === MOBILE CLOSE FIX START === */
.mobile-menu-close{
  display:none!important;
}

@media (max-width:760px){
  .mobile-menu-open .mobile-menu-close{
    display:inline-flex!important;
    position:absolute!important;
    top:14px!important;
    right:14px!important;
    left:auto!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    margin:0!important;
    border:1px solid var(--border)!important;
    border-radius:9px!important;
    background:var(--card2)!important;
    color:var(--text)!important;
    font-size:26px!important;
    line-height:1!important;
    z-index:5!important;
  }
}
/* === MOBILE CLOSE FIX END === */

/* === DESKTOP CLOSE BUTTON FIX START === */
@media (min-width:761px){
  #mobileMenuClose,
  .mobile-menu-close{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}
/* === DESKTOP CLOSE BUTTON FIX END === */

/* === TICKET NOTES V2 START === */
.ticket-timeline{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.timeline-note-card{
  position:relative;
  margin:0!important;
  padding:14px 16px!important;
  border:1px solid var(--border);
  border-left:3px solid var(--primary);
  border-radius:10px;
  background:var(--card2);
}

.timeline-note-card:before{
  display:none!important;
}

.timeline-note-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:5px;
}

.timeline-note-head > div{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.timeline-note-head strong{
  font-size:14px;
}

.timeline-note-head time{
  flex:0 0 auto;
  font-size:11px;
  color:var(--muted);
}

.note-visibility{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:2px 7px;
  border:1px solid var(--border);
  border-radius:999px;
  font-size:10px;
  color:var(--muted);
}

.timeline-note-user{
  margin-bottom:10px;
  font-size:11px;
  color:var(--muted);
}

.timeline-note-content{
  line-height:1.55;
  overflow-wrap:anywhere;
}

.timeline-history-event{
  padding-top:5px;
  padding-bottom:5px;
}

.timeline-history-event p{
  margin-top:6px;
}

.status-change{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:5px;
  font-size:11px;
  color:var(--muted);
}

.note-compose-panel{
  border-top:2px solid var(--primary);
}

.note-compose-form{
  display:grid;
  gap:14px;
}

.note-compose-form .field{
  margin:0;
}

.note-compose-form textarea{
  min-height:120px;
  resize:vertical;
}

.note-status-field select{
  font-weight:700;
}

.current-status-box{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}

.current-status-box p{
  margin:0;
}

@media (max-width:760px){
  .timeline-note-head{
    flex-direction:column;
    gap:4px;
  }

  .timeline-note-card{
    padding:13px!important;
  }

  .note-compose-form .primary{
    width:100%;
    min-height:46px;
  }
}
/* === TICKET NOTES V2 END === */

/* === TICKET ASSIGNMENT V1 START === */
.mine-filter-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}

.mine-filter-active{
  border-color:var(--primary)!important;
  color:var(--primary)!important;
}

.mine-filter-check{
  margin-top:12px;
  font-weight:700;
}

.note-assignee-field select{
  font-weight:700;
}

.note-assignee-field small{
  color:var(--muted);
}

@media (max-width:760px){
  .mine-filter-button{
    width:100%;
    min-height:46px;
  }
}
/* === TICKET ASSIGNMENT V1 END === */
