:root{
  --apsis-orange:#f39c12;
  --apsis-orange-dark:#e67e22;
  --apsis-orange-soft:rgba(243,156,18,.12);
  --apsis-bg:#eef1f5;
  --apsis-card:#ffffff;
  --apsis-input:#f4f6f9;
  --apsis-text:#1e293b;
  --apsis-text-2:#475569;
  --apsis-muted:#94a3b8;
  --apsis-border:#e2e8f0;
  --apsis-border-2:#cbd5e1;

  --bs-primary:#f39c12;
  --bs-primary-rgb:243,156,18;
  --bs-body-bg:var(--apsis-bg);
  --bs-body-color:var(--apsis-text);
  --bs-border-color:var(--apsis-border);
  --bs-link-color:var(--apsis-orange-dark);
  --bs-link-hover-color:var(--apsis-orange);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--apsis-bg);
  color:var(--apsis-text);
  font-size:14px;
  -webkit-font-smoothing:antialiased;
}

/* Botões */
.btn-primary{
  background:linear-gradient(135deg,var(--apsis-orange),var(--apsis-orange-dark));
  border:none;
  box-shadow:0 4px 12px rgba(243,156,18,.22);
  font-weight:600;
}
.btn-primary:hover,.btn-primary:focus{
  background:linear-gradient(135deg,var(--apsis-orange-dark),#d35400);
  box-shadow:0 8px 20px rgba(243,156,18,.32);
  transform:translateY(-1px);
}
.btn{transition:all .2s ease;border-radius:.5rem}
.btn-outline-primary{color:var(--apsis-orange-dark);border-color:var(--apsis-orange)}
.btn-outline-primary:hover{background:var(--apsis-orange);border-color:var(--apsis-orange)}

/* Inputs */
.form-control,.form-select{
  background:var(--apsis-input);
  border:1px solid var(--apsis-border);
  border-radius:.55rem;
  padding:.6rem .85rem;
  font-size:.875rem;
  color:var(--apsis-text);
}
.form-control:focus,.form-select:focus{
  background:#fff;
  border-color:var(--apsis-orange);
  box-shadow:0 0 0 3px var(--apsis-orange-soft);
}
.form-label{font-weight:500;font-size:.8rem;color:var(--apsis-text-2);margin-bottom:.35rem}

/* Cards */
.card{border:1px solid var(--apsis-border);border-radius:1rem;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.card-header{background:transparent;border-bottom:1px solid var(--apsis-border);font-weight:600;padding:.9rem 1.2rem}

/* Modais */
.modal-content{border:none;border-radius:1rem;box-shadow:0 25px 60px rgba(15,23,42,.25)}
.modal-header{border-bottom:1px solid var(--apsis-border);padding:1rem 1.3rem}
.modal-title{font-weight:700;font-size:1rem}
.modal-body{padding:1.3rem}
.modal-footer{border-top:1px solid var(--apsis-border);padding:.9rem 1.3rem}
.modal-backdrop.show{opacity:.45}

/* Toasts */
.toast-container{z-index:1090}
.apsis-toast{
  background:#fff;border:none;border-left:4px solid var(--apsis-orange);
  border-radius:.75rem;box-shadow:0 12px 35px rgba(15,23,42,.15);
  min-width:320px;color:var(--apsis-text);
}
.apsis-toast.toast-success{border-left-color:#16a34a}
.apsis-toast.toast-danger{border-left-color:#dc2626}
.apsis-toast.toast-warning{border-left-color:#d97706}
.apsis-toast.toast-info{border-left-color:#2563eb}
.apsis-toast .toast-body{padding:.85rem 1rem;display:flex;align-items:center;gap:.7rem;font-size:.85rem;font-weight:500}
.apsis-toast .toast-icon{
  width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:.85rem;color:#fff;flex-shrink:0;
}
.toast-success .toast-icon{background:#16a34a}
.toast-danger .toast-icon{background:#dc2626}
.toast-warning .toast-icon{background:#d97706}
.toast-info .toast-icon{background:#2563eb}

/* Login */
.login-page{
  min-height:100vh;background:linear-gradient(135deg,#f5f7fa 0%,#e8ecf2 100%);
  display:flex;align-items:center;justify-content:center;padding:1.5rem;
  position:relative;overflow:hidden;
}
.login-page::before{
  content:'';position:absolute;top:-30%;right:-15%;width:70%;height:180%;
  background:radial-gradient(circle,rgba(243,156,18,.10) 0%,transparent 65%);
  animation:apsisPulse 12s ease-in-out infinite;
}
@keyframes apsisPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}

.login-card{
  width:100%;max-width:1050px;background:#fff;border-radius:1.5rem;overflow:hidden;
  box-shadow:0 20px 50px rgba(15,23,42,.12);position:relative;z-index:1;
  display:grid;grid-template-columns:1fr 1fr;
}
.login-card .login-left{
  padding:3rem;background:linear-gradient(135deg,#fff 0%,#f7f9fc 100%);
  border-right:1px solid var(--apsis-border);display:flex;flex-direction:column;justify-content:center;
}
.login-card .login-right{padding:3rem;display:flex;flex-direction:column;justify-content:center}
@media(max-width:900px){
  .login-card{grid-template-columns:1fr}
  .login-card .login-left{display:none}
}

.apsis-logo{display:flex;align-items:center;gap:.9rem}
.apsis-logo .logo-icon{
  width:56px;height:56px;background:linear-gradient(135deg,var(--apsis-orange),var(--apsis-orange-dark));
  border-radius:1rem;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.5rem;box-shadow:0 10px 25px rgba(243,156,18,.35);
}
.apsis-logo .logo-text h1{font-size:1.5rem;font-weight:800;letter-spacing:-.5px;margin:0;color:var(--apsis-text)}
.apsis-logo .logo-text h1 span{color:var(--apsis-orange)}
.apsis-logo .logo-text p{font-size:.62rem;letter-spacing:3px;color:var(--apsis-muted);font-weight:600;margin:0}

/* App */
.apsis-app{display:flex;height:100vh;overflow:hidden}
.apsis-sidebar{
  width:270px;background:#fff;border-right:1px solid var(--apsis-border);
  display:flex;flex-direction:column;transition:width .3s ease;flex-shrink:0;
  box-shadow:0 1px 3px rgba(15,23,42,.05);
}
.apsis-sidebar.collapsed{width:78px}
.apsis-sidebar .sidebar-brand{
  padding:1rem 1.1rem;border-bottom:1px solid var(--apsis-border);
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
}
.apsis-sidebar .sidebar-nav{flex:1;overflow-y:auto;padding:.9rem .6rem}
.apsis-sidebar .nav-section-title{
  font-size:.6rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--apsis-muted);
  font-weight:700;padding:.6rem .8rem .3rem;
}
.apsis-sidebar .nav-link{
  display:flex;align-items:center;gap:.75rem;padding:.68rem .8rem;color:var(--apsis-text-2);
  border-radius:.55rem;font-size:.85rem;font-weight:500;cursor:pointer;
  white-space:nowrap;overflow:hidden;margin-bottom:2px;
}
.apsis-sidebar .nav-link:hover{background:#f1f5f9;color:var(--apsis-text)}
.apsis-sidebar .nav-link.active{
  background:linear-gradient(135deg,var(--apsis-orange),var(--apsis-orange-dark));
  color:#fff;box-shadow:0 4px 12px rgba(243,156,18,.3);
}
.apsis-sidebar .nav-link i{font-size:1rem;width:1.25rem;text-align:center;flex-shrink:0}
.apsis-sidebar .submenu{
  list-style:none;padding-left:2rem;margin:0;max-height:0;overflow:hidden;transition:max-height .3s ease;
}
.apsis-sidebar .submenu.open{max-height:600px}
.apsis-sidebar .submenu a{
  display:block;padding:.5rem .75rem;color:var(--apsis-text-2);font-size:.78rem;
  border-radius:.45rem;text-decoration:none;cursor:pointer;
}
.apsis-sidebar .submenu a:hover{background:#f1f5f9;color:var(--apsis-orange)}
.apsis-sidebar .submenu a.active{color:var(--apsis-orange);font-weight:600;background:var(--apsis-orange-soft)}

.apsis-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.apsis-topbar{
  padding:.85rem 1.4rem;background:#fff;border-bottom:1px solid var(--apsis-border);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-shrink:0;
}
.apsis-content{flex:1;overflow-y:auto;padding:1.4rem}

@media(max-width:900px){
  .apsis-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:1050;transform:translateX(-100%);box-shadow:0 0 40px rgba(0,0,0,.15)}
  .apsis-sidebar.mobile-open{transform:translateX(0)}
}

/* Stat cards */
.stat-card{background:#fff;border:1px solid var(--apsis-border);border-radius:1rem;padding:1.2rem;transition:all .3s}
.stat-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(15,23,42,.08);border-color:var(--apsis-orange)}
.stat-icon{width:44px;height:44px;border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.15rem;margin-bottom:.75rem}
.stat-icon.orange{background:rgba(243,156,18,.12);color:var(--apsis-orange)}
.stat-icon.green{background:rgba(22,163,74,.12);color:#16a34a}
.stat-icon.blue{background:rgba(37,99,235,.12);color:#2563eb}
.stat-icon.red{background:rgba(220,38,38,.12);color:#dc2626}
.stat-value{font-size:1.55rem;font-weight:700;margin-bottom:.15rem}
.stat-label{color:var(--apsis-text-2);font-size:.8rem}

/* Dropzone */
.apsis-dropzone{
  border:2px dashed var(--apsis-border-2);border-radius:1rem;padding:1.6rem;text-align:center;
  cursor:pointer;background:var(--apsis-input);transition:all .25s;
}
.apsis-dropzone:hover,.apsis-dropzone.dragover{border-color:var(--apsis-orange);background:var(--apsis-orange-soft)}
.apsis-dropzone i{font-size:2.2rem;color:var(--apsis-orange);opacity:.9;margin-bottom:.4rem;display:block}
.apsis-dropzone .dz-title{font-weight:600;margin-bottom:.2rem;font-size:.88rem}
.apsis-dropzone .dz-desc{font-size:.76rem;color:var(--apsis-muted)}

.apsis-photo-preview{position:relative;display:inline-block;margin-top:1rem}
.apsis-photo-preview img{width:100px;height:100px;border-radius:50%;object-fit:cover;border:3px solid var(--apsis-orange);box-shadow:0 8px 20px rgba(243,156,18,.25)}
.apsis-photo-preview .remove-btn{
  position:absolute;top:0;right:0;width:26px;height:26px;border-radius:50%;
  background:#dc2626;color:#fff;border:2px solid #fff;
  display:flex;align-items:center;justify-content:center;font-size:.7rem;cursor:pointer;
}

.view{display:none}
.view.active{display:block;animation:fadeIn .3s}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}