:root {
  --bg: #091826;
  --bg2: #132A3E;
  --card: #1a3550;
  --card2: #1f3d5e;
  --border: #254d70;
  --text: #f0f5fa;
  --text2: #7aabcc;
  --muted: #3a6585;
  --accent: #F76B0F;
  --accent2: #ff8530;
  --glow: rgba(247,107,15,.18);
  --green: #10b981;
  --greenglow: rgba(16,185,129,.15);
  --yellow: #f59e0b;
  --yellowglow: rgba(245,158,11,.15);
  --red: #ef4444;
  --redglow: rgba(239,68,68,.15);
  --purple: #8b5cf6;
  --purpleglow: rgba(139,92,246,.15);
  --sidebar: 240px;
  --r: 8px;
  --r2: 14px;
  --trans: all .2s ease;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;}
#app{display:flex;min-height:100vh;}

/* SIDEBAR */
.sidebar{width:var(--sidebar);background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;}
.sidebar-logo{display:flex;align-items:center;justify-content:center;padding:20px 18px;border-bottom:1px solid var(--border);}
.logo-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sidebar-logo-img{width:180px;max-height:60px;object-fit:contain;}
.sidebar-nav{flex:1;padding:16px 10px;display:flex;flex-direction:column;}
.nav-group-title{padding:12px 14px 4px;font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:1px;opacity:0.8;}
.nav-submenu{display:flex;flex-direction:column;gap:2px;margin-bottom:12px;}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r);color:var(--text2);text-decoration:none;font-size:13.5px;font-weight:500;transition:var(--trans);cursor:pointer;border:none;background:none;width:100%;}
.nav-submenu .nav-item{padding-left:14px;}
.nav-item:hover{background:var(--glow);color:var(--text);}
.nav-item.active{background:var(--glow);color:var(--accent2);border-left:3px solid var(--accent2);padding-left:11px;}
.sidebar-footer{padding:14px 18px;border-top:1px solid var(--border);}
.sidebar-version{font-size:11px;color:var(--muted);}

/* MAIN */
.main-content{flex:1;margin-left:var(--sidebar);min-height:100vh;overflow-y:auto;}

/* PAGE HEADER */
.page-header{display:flex;align-items:center;justify-content:space-between;padding:22px 30px;border-bottom:1px solid var(--border);background:var(--bg2);position:sticky;top:0;z-index:50;backdrop-filter:blur(8px);}
.page-title{font-size:21px;font-weight:700;}
.page-subtitle{font-size:12px;color:var(--text2);margin-top:2px;}
.header-actions{display:flex;gap:10px;align-items:center;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:var(--r);font-size:13.5px;font-weight:600;cursor:pointer;border:none;transition:var(--trans);text-decoration:none;font-family:inherit;}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{background:var(--accent2);box-shadow:0 0 20px var(--glow);}
.btn-secondary{background:var(--card2);color:var(--text);border:1px solid var(--border);}
.btn-secondary:hover{background:var(--card);border-color:var(--border);}
.btn-success{background:var(--green);color:#fff;}
.btn-success:hover{filter:brightness(1.1);}
.btn-danger{background:var(--red);color:#fff;}
.btn-danger:hover{filter:brightness(1.1);}
.btn-sm{padding:6px 12px;font-size:12px;}
.btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--border);}
.btn-ghost:hover{background:var(--card);color:var(--text);}
.btn-icon{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--r);background:var(--card2);color:var(--text2);border:1px solid var(--border);cursor:pointer;transition:var(--trans);font-size:16px;}
.btn-icon:hover{background:var(--card);color:var(--text);}

/* METRICS */
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:24px 30px 0;}
.metric-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:20px;transition:var(--trans);}
.metric-card:hover{border-color:var(--border);transform:translateY(-2px);}
.metric-label{font-size:12px;color:var(--text2);font-weight:500;text-transform:uppercase;letter-spacing:.05em;}
.metric-value{font-size:32px;font-weight:800;margin:8px 0 4px;line-height:1;}
.metric-sub{font-size:12px;color:var(--text2);}
.metric-card.blue{border-top:3px solid var(--accent2);}
.metric-card.green{border-top:3px solid var(--green);}
.metric-card.yellow{border-top:3px solid var(--yellow);}
.metric-card.red{border-top:3px solid var(--red);}
.metric-card.blue .metric-value{color:var(--accent2);}
.metric-card.green .metric-value{color:var(--green);}
.metric-card.yellow .metric-value{color:var(--yellow);}
.metric-card.red .metric-value{color:var(--red);}

/* URGENCY PANEL */
.urgency-panel{margin:20px 30px;background:var(--card);border:1px solid var(--red);border-radius:var(--r2);overflow:hidden;}
.urgency-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:rgba(239,68,68,.08);border-bottom:1px solid var(--border);cursor:pointer;}
.urgency-title{font-size:14px;font-weight:700;color:var(--red);display:flex;align-items:center;gap:8px;}
.urgency-body{padding:0;}
.urgency-item{display:flex;align-items:center;gap:16px;padding:12px 20px;border-bottom:1px solid var(--border);transition:var(--trans);}
.urgency-item:last-child{border-bottom:none;}
.urgency-item:hover{background:var(--card2);}
.urgency-client{font-weight:600;font-size:13.5px;flex:1;}
.urgency-stage{font-size:12px;color:var(--text2);flex:2;}
.urgency-days{font-size:13px;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap;}
.urgency-days.overdue{background:var(--redglow);color:var(--red);border:1px solid var(--red);}
.urgency-days.critical{background:var(--redglow);color:var(--red);}
.urgency-days.warning{background:var(--yellowglow);color:var(--yellow);}
.urgency-days.ok{background:var(--greenglow);color:var(--green);}
.urgency-empty{padding:20px;text-align:center;color:var(--text2);font-size:13px;}

/* SECTION */
.section{padding:20px 30px;}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.section-title{font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px;}
.section-count{font-size:12px;color:var(--text2);background:var(--card2);padding:2px 8px;border-radius:20px;}

/* CLIENT CARDS */
.clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;}
.client-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:20px;cursor:pointer;transition:var(--trans);position:relative;overflow:hidden;}
.client-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);}
.client-card.status-ok::before{background:var(--green);}
.client-card.status-warning::before{background:var(--yellow);}
.client-card.status-overdue::before{background:var(--red);}
.client-card.status-done::before{background:var(--purple);}
.client-card:hover{border-color:var(--accent2);transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.4);}
.client-name{font-size:16px;font-weight:700;margin-bottom:4px;}
.client-meta{font-size:12px;color:var(--text2);margin-bottom:14px;}
.stage-dots{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:14px;}
.stage-bar-item{height:52px;border-radius:6px;border:1px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:default;transition:var(--trans);padding:4px 2px;}
.stage-bar-item:hover{transform:translateY(-1px);filter:brightness(1.15);}
.stage-bar-item.pending{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.5);color:var(--red);}
.stage-bar-item.inprogress{background:rgba(245,158,11,.2);border-color:var(--yellow);color:var(--yellow);}
.stage-bar-item.done{background:rgba(16,185,129,.2);border-color:var(--green);color:var(--green);}
.stage-bar-item.na{background:var(--card2);border-color:var(--border);opacity:.3;color:var(--muted);}
.sbi-icon{font-size:14px;line-height:1;}
.sbi-name{font-size:8px;font-weight:600;text-align:center;line-height:1.2;opacity:.9;letter-spacing:.01em;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.5;}}
.client-footer{display:flex;align-items:center;justify-content:space-between;}
.client-stage-name{font-size:12px;color:var(--text2);}
.client-deadline-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;}
.badge-overdue{background:var(--redglow);color:var(--red);border:1px solid rgba(239,68,68,.3);}
.badge-critical{background:var(--redglow);color:var(--red);}
.badge-warning{background:var(--yellowglow);color:var(--yellow);}
.badge-ok{background:var(--greenglow);color:var(--green);}
.badge-done{background:var(--purpleglow);color:var(--purple);}
.badge-pending{background:var(--card2);color:var(--text2);}

/* CLIENT DETAIL */
.detail-header{padding:24px 30px;border-bottom:1px solid var(--border);background:var(--bg2);}
.detail-back{display:flex;align-items:center;gap:8px;color:var(--text2);font-size:13px;cursor:pointer;margin-bottom:14px;background:none;border:none;font-family:inherit;}
.detail-back:hover{color:var(--text);}
.detail-client-name{font-size:26px;font-weight:800;}
.detail-client-info{display:flex;gap:24px;margin-top:10px;flex-wrap:wrap;}
.detail-info-item{font-size:13px;color:var(--text2);}
.detail-info-item strong{color:var(--text);font-weight:600;}
.detail-progress-bar{height:6px;background:var(--border);border-radius:3px;margin-top:16px;overflow:hidden;}
.detail-progress-fill{height:100%;background:linear-gradient(90deg,#F76B0F,#ff9a4d);border-radius:3px;transition:width .5s ease;}

/* STAGES TIMELINE */
.stages-container{padding:24px 30px;display:flex;flex-direction:column;gap:0;}
.stage-group-label{font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.1em;padding:16px 0 8px;}
.stage-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);margin-bottom:10px;overflow:hidden;transition:var(--trans);}
.stage-card:hover{border-color:var(--accent2);}
.stage-card.done-card{opacity:.85;}
.stage-card-header{display:flex;align-items:center;gap:14px;padding:16px 20px;cursor:pointer;}
.stage-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;}
.stage-num-pending{background:var(--card2);color:var(--muted);border:2px solid var(--border);}
.stage-num-active{background:var(--accent);color:#fff;box-shadow:0 0 12px var(--glow);}
.stage-num-done{background:var(--green);color:#fff;}
.stage-num-overdue{background:var(--red);color:#fff;}
.stage-num-warning{background:var(--yellow);color:#000;}
.stage-info{flex:1;}
.stage-title{font-size:14px;font-weight:600;}
.stage-desc{font-size:12px;color:var(--text2);margin-top:2px;}
.stage-status-badge{padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;}
.badge-status-pending{background:var(--card2);color:var(--muted);}
.badge-status-active{background:rgba(247,107,15,.15);color:#ff8530;border:1px solid rgba(247,107,15,.4);}
.badge-status-done{background:var(--greenglow);color:var(--green);}
.badge-status-overdue{background:var(--redglow);color:var(--red);}
.badge-status-na{background:var(--card2);color:var(--muted);}
.stage-deadline-info{font-size:12px;color:var(--text2);margin-left:auto;text-align:right;flex-shrink:0;}
.stage-deadline-info span{display:block;font-weight:600;}
.stage-body{padding:0 20px 18px;border-top:1px solid var(--border);}
.stage-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;}
.field-group{display:flex;flex-direction:column;gap:5px;}
.field-label{font-size:11px;color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.05em;}
.field-value{font-size:13px;font-weight:500;}
.field-empty{font-size:13px;color:var(--muted);font-style:italic;}
.stage-notes{margin-top:14px;}
.notes-text{font-size:13px;color:var(--text2);background:var(--bg2);padding:10px 14px;border-radius:var(--r);border:1px solid var(--border);line-height:1.6;white-space:pre-wrap;}
.attachments-list{margin-top:14px;}
.attachment-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);margin-bottom:6px;}
.attachment-icon{font-size:18px;}
.attachment-name{font-size:13px;flex:1;}
.attachment-size{font-size:11px;color:var(--text2);}
.stage-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.parallel-group{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);padding:16px;margin-bottom:10px;}
.parallel-label{font-size:11px;font-weight:700;color:#F76B0F;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;display:flex;align-items:center;gap:6px;}
.parallel-inner{display:flex;flex-direction:column;gap:8px;}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:200;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);width:min(640px,95vw);max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.6);}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);}
.modal-title{font-size:17px;font-weight:700;}
.modal-close{background:none;border:none;color:var(--text2);cursor:pointer;font-size:20px;transition:var(--trans);}
.modal-close:hover{color:var(--text);}
.modal-body{padding:24px;}
.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;}

/* FORMS */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{display:flex;flex-direction:column;gap:6px;}
.form-group.full{grid-column:1/-1;}
.form-label{font-size:12px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;}
.form-label.required::after{content:' *';color:var(--red);}
.form-input,.form-select,.form-textarea{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:10px 14px;color:var(--text);font-size:13.5px;font-family:inherit;transition:var(--trans);width:100%;}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--glow);}
.form-textarea{resize:vertical;min-height:90px;line-height:1.6;}
.form-select option{background:var(--bg2);}
.form-hint{font-size:11px;color:var(--muted);}
.checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer;}
.checkbox-row input{width:16px;height:16px;accent-color:var(--accent2);}

/* FILE UPLOAD */
.file-drop{border:2px dashed var(--border);border-radius:var(--r);padding:24px;text-align:center;cursor:pointer;transition:var(--trans);}
.file-drop:hover{border-color:var(--accent2);background:var(--glow);}
.file-drop-icon{font-size:28px;margin-bottom:8px;}
.file-drop-text{font-size:13px;color:var(--text2);}
.file-drop input{display:none;}

/* REPORTS */
.report-section{padding:20px 30px;}
.report-filters{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;}
.report-table{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--r2);overflow:hidden;border:1px solid var(--border);}
.report-table th{background:var(--card2);padding:12px 16px;text-align:left;font-size:12px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);}
.report-table td{padding:12px 16px;font-size:13px;border-bottom:1px solid var(--border);}
.report-table tr:last-child td{border-bottom:none;}
.report-table tr:hover td{background:var(--card2);}

/* EMPTY STATE */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 30px;text-align:center;}
.empty-icon{font-size:56px;margin-bottom:16px;opacity:.5;}
.empty-title{font-size:18px;font-weight:700;margin-bottom:8px;}
.empty-desc{font-size:14px;color:var(--text2);max-width:400px;line-height:1.6;}

/* TOAST */
.toast{position:fixed;bottom:24px;right:24px;background:var(--card2);border:1px solid var(--border);border-radius:var(--r);padding:12px 20px;font-size:13.5px;font-weight:500;z-index:999;opacity:0;transform:translateY(10px);transition:var(--trans);pointer-events:none;}
.toast.show{opacity:1;transform:translateY(0);}
.toast.success{border-color:var(--green);color:var(--green);}
.toast.error{border-color:var(--red);color:var(--red);}

/* SCROLLBAR */
::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--muted);}

/* RESPONSIVE */
@media(max-width:900px){
  .metrics-grid{grid-template-columns:1fr 1fr;}
  .form-grid{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .sidebar{width:200px;}
  .main-content{margin-left:200px;}
  .metrics-grid{grid-template-columns:1fr;}
  .stage-fields{grid-template-columns:1fr;}
}

/* SETTINGS */
.cfg-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:24px;max-width:720px;}
.cfg-card-header{font-size:15px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:8px;}
.cfg-desc{font-size:13px;color:var(--text2);margin-bottom:20px;line-height:1.6;}
.cfg-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--border);}
.cfg-row:last-child{border-bottom:none;}
.cfg-info{flex:1;}
.cfg-label{font-size:13.5px;font-weight:600;margin-bottom:3px;}
.cfg-hint{font-size:12px;color:var(--text2);line-height:1.5;}
.cfg-input-wrap{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.cfg-unit{font-size:13px;color:var(--text2);white-space:nowrap;}

/* REPORT REDESIGN */
.rpt-print-header{display:none;}
.rpt-divider{display:none;}
.rpt-footer{display:none;}
.th-abbr{font-size:10px;font-weight:700;margin-top:4px;opacity:.9;}
.rpt-badge{padding:3px 8px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap;display:inline-block;}
.rpt-done{background:var(--greenglow);color:var(--green);}
.rpt-active{background:rgba(247,107,15,.15);color:#ff8530;}
.rpt-pending{background:var(--card2);color:var(--text2);}
.rpt-na{color:var(--muted);font-size:11px;font-weight:600;}
.rpt-status{font-size:12px;font-weight:600;white-space:nowrap;}
.rpt-status-done{color:var(--purple);}
.rpt-status-ok{color:var(--green);}
.rpt-status-warn{color:var(--yellow);}
.rpt-status-late{color:var(--red);}
.rpt-status-pend{color:var(--text2);}
.rpt-bar{background:var(--card2);border-radius:3px;height:6px;width:60px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:6px;}
.rpt-bar-fill{background:linear-gradient(90deg,#F76B0F,#ff9a4d);height:100%;transition:width .3s;}
.rpt-pct{font-size:11px;color:var(--text2);display:inline-block;vertical-align:middle;}
.th-icon{font-size:14px;margin-bottom:2px;}
.no-print{}

/* PRINT */
@media print{
  @page { size: A4 landscape; margin: 10mm; }
  html, body { width: 100%; margin: 0 !important; padding: 0 !important; background: #fff !important; color: #132A3E !important; font-size: 11px; overflow: hidden; }
  .sidebar, .header-actions, .stage-actions, .modal-overlay, .page-header, .no-print, .rpt-controls { display: none !important; }
  .main-content { margin: 0 !important; padding: 0 !important; min-height: auto; background: #fff !important; width: 100%; }
  .report-section { padding: 0 !important; width: 100%; box-sizing: border-box; }
  
  .rpt-print-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; width: 100%; box-sizing: border-box; }
  .rpt-logo { height: 50px; object-fit: contain; }
  .rpt-print-meta { text-align: right; }
  .rpt-print-title{font-size:16px;font-weight:800;color:#132A3E;}
  .rpt-print-date{font-size:10px;color:#7aabcc;margin-top:4px;}
  
  .rpt-divider{display:block;height:4px;background:#F76B0F;margin-bottom:20px;}
  
  .report-table{border:1px solid #ddd;width:100%;box-shadow:none;background:#fff!important;}
  .report-table th{background:#f0f5fa!important;color:#132A3E!important;border-bottom:2px solid #ddd!important;padding:8px 6px;font-size:10px;}
  .report-table td{border-bottom:1px solid #eee!important;padding:8px 6px;font-size:10px;color:#132A3E!important;background:#fff!important;}
  .report-table td strong {color:#132A3E!important;}
  
  .rpt-badge{padding:2px 4px;border:1px solid;background:none!important;font-size:10px;}
  .rpt-done{color:#10b981!important;border-color:#10b981!important;}
  .rpt-active{color:#F76B0F!important;border-color:#F76B0F!important;}
  .rpt-pending{color:#999!important;border-color:#ccc!important;}
  
  .rpt-status-done{color:#8b5cf6!important;}
  .rpt-status-ok{color:#10b981!important;}
  .rpt-status-warn{color:#f59e0b!important;}
  .rpt-status-late{color:#ef4444!important;}
  .rpt-status-pend{color:#999!important;}
  
  .rpt-bar{background:#eee!important;}
  .rpt-bar-fill{background:#F76B0F!important;}
  
  .rpt-footer{display:flex;justify-content:space-between;margin-top:30px;font-size:9px;color:#999!important;border-top:1px solid #eee!important;padding-top:10px;}
}

/* ========================================================
   CADCRAFT-INSPIRED 3D VIEWER ENHANCEMENTS (CONTROL OMG)
   ======================================================== */

/* ViewCube Container */
.cad-viewcube-wrap {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 90px;
  height: 90px;
  z-index: 15;
  pointer-events: auto;
  user-select: none;
}

.cad-viewcube-scene {
  width: 90px;
  height: 90px;
  perspective: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.cad-compass-ring {
  position: absolute;
  width: 82px;
  height: 82px;
  border-radius: 50%;
  border: 1px dashed rgba(255, 255, 255, 0.25);
  pointer-events: none;
  transform-style: preserve-3d;
  transition: transform 0.1s linear;
}

.compass-label {
  position: absolute;
  font-size: 8px;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1;
}
.compass-n { top: 2px; left: 50%; transform: translateX(-50%); color: var(--accent); }
.compass-s { bottom: 2px; left: 50%; transform: translateX(-50%); }
.compass-l { right: 2px; top: 50%; transform: translateY(-50%); }
.compass-o { left: 2px; top: 50%; transform: translateY(-50%); }

.cad-viewcube {
  width: 50px;
  height: 50px;
  position: relative;
  transform-style: preserve-3d;
  transform: rotateX(0deg) rotateY(0deg);
  transition: transform 0.1s linear;
}

.cube-face {
  position: absolute;
  width: 50px;
  height: 50px;
  background: rgba(26, 36, 48, 0.88);
  border: 1px solid rgba(138, 161, 177, 0.5);
  color: #e0e8f0;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.cube-face:hover {
  background: var(--accent) !important;
  color: #000 !important;
  border-color: #fff !important;
  font-weight: 900;
}

.cube-front  { transform: rotateY(  0deg) translateZ(25px); }
.cube-back   { transform: rotateY(180deg) translateZ(25px); }
.cube-right  { transform: rotateY( 90deg) translateZ(25px); }
.cube-left   { transform: rotateY(-90deg) translateZ(25px); }
.cube-top    { transform: rotateX( 90deg) translateZ(25px); }
.cube-bottom { transform: rotateX(-90deg) translateZ(25px); }

/* Cantos do ViewCube para cliques isometricos */
.cube-corner {
  position: absolute;
  width: 14px;
  height: 14px;
  background: rgba(247, 107, 15, 0.4);
  border-radius: 2px;
  cursor: pointer;
  z-index: 5;
  transition: background 0.2s, transform 0.2s;
}
.cube-corner:hover {
  background: var(--accent);
  transform: scale(1.3);
}

.corner-tfr { top: -6px; right: -6px; transform: translateZ(25px); }
.corner-tfl { top: -6px; left: -6px; transform: translateZ(25px); }
.corner-tbr { bottom: -6px; right: -6px; transform: translateZ(25px); }
.corner-tbl { bottom: -6px; left: -6px; transform: translateZ(25px); }

.cad-viewcube-home {
  position: absolute;
  top: -4px;
  left: -4px;
  font-size: 13px;
  cursor: pointer;
  background: rgba(0,0,0,0.6);
  border: 1px solid #444;
  border-radius: 4px;
  padding: 2px 4px;
  line-height: 1;
  transition: background 0.2s, transform 0.2s;
}
.cad-viewcube-home:hover {
  background: var(--accent);
  transform: scale(1.15);
}

/* Marquee / Retangulo de Selecao em Massa */
#cad-marquee-box {
  position: absolute;
  pointer-events: none;
  z-index: 25;
  display: none;
}
.marquee-window {
  background: rgba(34, 136, 255, 0.15) !important;
  border: 1.5px solid #2288ff !important;
  box-shadow: 0 0 10px rgba(34, 136, 255, 0.25);
}
.marquee-crossing {
  background: rgba(34, 204, 68, 0.15) !important;
  border: 1.5px dashed #22cc44 !important;
  box-shadow: 0 0 10px rgba(34, 204, 68, 0.25);
}

/* Floating Measure Dimension Tag */
.measure-floating-tag {
  position: absolute;
  transform: translate(-50%, -100%);
  background: rgba(10, 15, 20, 0.92);
  border: 1px solid var(--accent);
  color: white;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  pointer-events: none;
  z-index: 20;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  white-space: nowrap;
}

/* Active Tool Button Highlight */
.btn-tool-active {
  background: var(--accent) !important;
  color: #000 !important;
  font-weight: bold !important;
  box-shadow: 0 0 12px rgba(247, 107, 15, 0.5) !important;
}

/* Snap indicator label */
.snap-tooltip-label {
  position: absolute;
  background: rgba(0, 0, 0, 0.85);
  color: var(--accent);
  border: 1px solid #555;
  padding: 2px 5px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 600;
  pointer-events: none;
  z-index: 20;
  transform: translate(12px, -12px);
}
/* ── Modo servidor: login, carregando, usuário e situação da gravação (servidor.js) ── */
#omg-login,#omg-carregando{position:fixed;inset:0;z-index:5000;display:none;align-items:center;justify-content:center;background:#132A3E;color:#fff;font-family:Inter,sans-serif;font-size:15px;padding:16px;}
.omg-login-box{width:100%;max-width:360px;background:#1b3a55;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:28px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 50px rgba(0,0,0,.35);}
.omg-login-logo{height:54px;object-fit:contain;align-self:center;margin-bottom:4px;}
.omg-login-titulo{text-align:center;font-size:18px;font-weight:700;margin-bottom:6px;}
.omg-login-sub{font-size:13px;color:#c7d3de;text-align:center;margin:0 0 4px;line-height:1.5;}
.omg-login-box label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:#c7d3de;}
.omg-login-box input{font:inherit;font-size:15px;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#0f2233;color:#fff;outline:none;}
.omg-login-box input:focus{border-color:#F76B0F;}
.omg-login-box .btn{margin-top:6px;justify-content:center;padding:11px;font-size:15px;}
.omg-login-msg{min-height:18px;font-size:13px;color:#ff8a8a;text-align:center;}
.omg-user{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;margin-bottom:6px;}
.omg-user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.omg-user a{color:#F76B0F;text-decoration:none;font-weight:600;}
.omg-sync{font-size:11px;margin-bottom:6px;}
.omg-sync.ok{color:#22cc44;} .omg-sync.salvando{color:#eab308;} .omg-sync.erro{color:#ff6b6b;}
