/* Device Lab — tema KirMoon para a bancada (aplicado por cima de lab.min.css e legal.css).
   Remova a classe km-theme do <html> para voltar ao visual anterior. */
.km-theme{
  --void:#05070b;--void-2:#0b0f16;--lunar:#eceef1;--regolith:#9aa1ab;--dust:#7d8591;--glow:#c8d6e6;--ink-2:#c1cbd5;--tick:#9fb6c8;
  --line:rgba(236,238,241,.1);--line-2:rgba(236,238,241,.18);--line-strong:rgba(236,238,241,.42);
  --muted:#8d96a2;--panel:#080b10;--raised:rgba(236,238,241,.06);--accent:#c8d6e6;--ease-out:cubic-bezier(.16,1,.3,1);--ease:cubic-bezier(.2,.7,.2,1);
  --display:"Barlow Condensed","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --body:"Barlow","Helvetica Neue",Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  font-family:var(--body);background:var(--void);color:var(--lunar);-webkit-font-smoothing:antialiased;
}
.km-theme body{background:var(--void)}
.km-theme :is(button,input,select,output){font-family:var(--body)}
.km-theme ::selection{background:rgba(200,214,230,.28)}

/* Cabeçalho */
.km-theme .app-header{background:rgba(5,7,11,.9);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.dl-brand{display:flex;align-items:center;gap:14px;width:max-content;min-height:48px;padding:4px 10px 4px 0;border:0;border-radius:10px;background:none;color:var(--lunar);cursor:pointer;text-align:left}
.dl-brand .dl-logo{display:block;height:40px;width:auto;overflow:visible}
.km-theme .dl-wordmark{display:block;width:auto;max-width:none;font-size:inherit;letter-spacing:normal;line-height:0}
.km-theme .connection-brand{justify-content:space-between;padding-bottom:20px;border-bottom:1px solid var(--line)}
.km-theme .connection-brand .dl-wordmark svg{display:block;height:38px;width:auto}
.km-theme .connection-product{font:400 9.5px var(--mono);letter-spacing:.2em;color:var(--dust)}
.dl-brand-home{display:inline-flex;align-items:center;gap:6px;padding:4px 0 4px 14px;border-left:1px solid var(--line-2);font:400 9.5px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dust);transition:color .2s}
.dl-brand:hover .dl-brand-home,.dl-brand:focus-visible .dl-brand-home{color:var(--lunar)}
.km-theme .address-bar{height:50px;border:1px solid rgba(236,238,241,.12);border-radius:12px;background:rgba(255,255,255,.02);box-shadow:none}
.km-theme .address-bar:focus-within{border-color:var(--line-strong);box-shadow:0 0 0 3px rgba(200,214,230,.06)}
.km-theme .address-bar input{font:400 13px var(--mono);color:var(--lunar)}
.km-theme .address-icon svg{color:var(--dust)}
.km-theme .app-header .primary-button{position:relative;isolation:isolate;overflow:hidden;height:40px;padding-inline:20px;border:1.5px solid var(--lunar);border-radius:8px;background:none;color:var(--lunar);font:600 13px var(--display);letter-spacing:.16em;text-transform:uppercase;transition:color .35s}
.km-theme .app-header .primary-button::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--lunar);transform:translateY(101%);transition:transform .35s var(--ease)}
.km-theme .app-header .primary-button:hover{color:var(--void);background:none}
.km-theme .app-header .primary-button:hover::before{transform:none}
.km-theme .app-header :is(.address-all,.header-action),.km-theme .workspace-tools .preview-help{border:1px solid var(--line-2);border-radius:8px;background:none;color:#d6dde6}
.km-theme .app-header .address-all{height:40px;padding-inline:14px;font:600 12px var(--display);letter-spacing:.14em;text-transform:uppercase}
.km-theme .app-header :is(.address-all,.header-action):hover,.km-theme .workspace-tools .preview-help:hover{border-color:var(--line-strong);background:var(--raised);color:var(--lunar)}
.km-theme .app-header .icon-button,.km-theme .workspace-tools .icon-button,.km-theme .sidebar .device-list-remove{color:#b8c0cb;border-radius:10px}
.km-theme .app-header .icon-button:hover,.km-theme .workspace-tools .icon-button:hover{background:var(--raised);color:var(--lunar)}

/* Painel lateral */
.km-theme .sidebar{background:linear-gradient(180deg,#080b10,#05070b);border-right:1px solid var(--line)}
.km-theme .sidebar-scroll{scrollbar-color:#2a313b transparent}
.km-theme .sidebar .control-section{border-color:var(--line)}
.km-theme .sidebar :is(.section-heading,.view-heading){font:400 10.5px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--regolith);margin-bottom:14px}
.km-theme .sidebar .section-kicker{color:var(--dust)}
.km-theme .sidebar :is(.field-label,.custom-size label){font:500 12.5px var(--body);color:#b8c0cb}
.km-theme .sidebar .field-hint,.km-theme .sidebar :is(.bar-override-hint,.session-hint,.switch-row small){font:400 12px/1.55 var(--body);color:var(--regolith)}
.km-theme .sidebar :is(input[type=number],select){height:44px;border:1px solid var(--line);border-radius:10px;background-color:rgba(255,255,255,.018);color:var(--lunar);font:400 14px var(--body);transition:border-color .2s,background-color .2s}
.km-theme .sidebar :is(input[type=number],select):hover{border-color:var(--line-2)}
.km-theme .sidebar :is(input[type=number],select):focus{border-color:var(--line-strong);background-color:rgba(255,255,255,.03)}
.km-theme .sidebar select option{background:var(--void-2);color:var(--lunar)}
.km-theme .sidebar .device-list li{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.018)}
.km-theme .sidebar .device-list li.is-selected{border-color:var(--line-strong);background:linear-gradient(100deg,rgba(236,238,241,.07),rgba(236,238,241,.015));box-shadow:inset 2px 0 var(--glow)}
.km-theme .sidebar .device-list li:has(.device-list-select:hover){border-color:var(--line-2)}
.km-theme .sidebar .device-list li strong{font:600 15px/1.15 var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--lunar)}
.km-theme .sidebar .device-list li em{font:400 11.5px/1.3 var(--body);font-style:normal;letter-spacing:0;color:var(--regolith)}
.km-theme .sidebar :is(.action-grid button,.ghost-button){border:1px solid var(--line-2);border-radius:8px;background:none;color:#d6dde6;font:600 12px var(--display);letter-spacing:.14em;text-transform:uppercase}
.km-theme .sidebar :is(.action-grid button,.ghost-button):hover:not(:disabled){border-color:var(--line-strong);background:var(--raised);color:var(--lunar)}
.km-theme .sidebar .device-data>div{border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.012)}
.km-theme .sidebar .device-data span{font:400 10px/1.35 var(--body);color:var(--regolith)}
.km-theme .sidebar .device-data strong{font:400 11px var(--mono);color:var(--lunar)}
.km-theme .range-field>span{font:500 12.5px var(--body);color:#b8c0cb}
.km-theme .range-field output{font:400 11px var(--mono);color:var(--lunar)}
.km-theme .range-field input{accent-color:var(--glow)}
.km-theme .sidebar .switch-row strong{font:500 13px var(--body);color:#dfe5ec}
.km-theme .sidebar .switch-row i{background:rgba(236,238,241,.12);box-shadow:inset 0 0 0 1px rgba(236,238,241,.08)}
.km-theme .sidebar .switch-row i::after{background:#9aa1ab}
.km-theme .sidebar .switch-row input:checked+i{background:var(--glow);box-shadow:none}
.km-theme .sidebar .switch-row input:checked+i::after{background:var(--void)}
.km-theme .simulation-note{font:400 12px/1.6 var(--body);color:var(--regolith);border-left:2px solid rgba(200,214,230,.35)}
.km-theme :is(.help-card summary,.sidebar .advanced-simulation summary){font:600 12.5px var(--display);letter-spacing:.14em;text-transform:uppercase;color:#d6dde6}
.km-theme .sidebar .advanced-simulation{border-color:var(--line)}
.km-theme .sidebar .help-card{border-top:1px solid var(--line)}
.km-theme .sidebar .help-card p{font:400 12.5px/1.65 var(--body);color:var(--regolith)}
.km-theme .help-card code{font:11px var(--mono);color:var(--lunar)}
.km-theme .public-connection-actions{padding:0 20px 16px;gap:8px}
.km-theme .public-connection-actions p{font:400 12px/1.6 var(--body);color:var(--regolith)}
.km-theme :is(.public-connection-actions,.connection-buttons) button{min-height:40px;border:1px solid var(--line-2);border-radius:10px;background:none;color:#d6dde6;font:600 12.5px var(--display);letter-spacing:.14em;text-transform:uppercase}
.km-theme :is(.public-connection-actions,.connection-buttons) button:hover:not(:disabled){border-color:var(--line-strong);background:var(--raised);color:var(--lunar)}

/* Área de trabalho */
.km-theme .workspace{background:var(--void)}
.km-theme .workspace-header{background:rgba(7,10,15,.92);border-bottom:1px solid var(--line)}
.km-theme .device-title .workspace-eyebrow{font:400 10px var(--mono);letter-spacing:.22em;color:var(--dust)}
.km-theme .device-title strong{font:600 26px/1.05 var(--display);letter-spacing:.03em;text-transform:uppercase;color:var(--lunar)}
.km-theme .device-title>span:last-child,.km-theme #deviceMeta{font:400 12px var(--body);color:var(--regolith)}
.km-theme #integrationBadge{font:400 10px var(--mono);letter-spacing:.08em;color:#a4b2c0}
.km-theme .workspace .status{font:400 11px var(--mono);letter-spacing:.04em;color:#a4b2c0}
.km-theme .status i{background:var(--glow);box-shadow:0 0 0 3px rgba(200,214,230,.14)}
.km-theme .stage{background:
  radial-gradient(circle at 22px 18px,rgba(255,255,255,.55) 0 .8px,transparent 1.3px) 0 0/397px 283px,
  radial-gradient(circle at 142px 104px,rgba(208,222,240,.45) 0 .7px,transparent 1.2px) 0 0/513px 359px,
  radial-gradient(circle at 286px 46px,rgba(255,255,255,.38) 0 .9px,transparent 1.4px) 0 0/619px 421px,
  radial-gradient(ellipse 60% 55% at 55% 45%,#0e1520 0,transparent 72%),var(--void)}
.km-theme .stage::before{content:"";position:absolute;inset:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 600' preserveAspectRatio='none'%3E%3Cpath d='M-20 560 C 260 430 600 220 1020 70' fill='none' stroke='%23c9ced6' stroke-opacity='.22' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.km-theme .stage::after{content:"";position:absolute;inset:16px;pointer-events:none;opacity:.45;background:
  linear-gradient(var(--tick),var(--tick)) left top/14px 1px no-repeat,linear-gradient(var(--tick),var(--tick)) left top/1px 14px no-repeat,
  linear-gradient(var(--tick),var(--tick)) right top/14px 1px no-repeat,linear-gradient(var(--tick),var(--tick)) right top/1px 14px no-repeat,
  linear-gradient(var(--tick),var(--tick)) left bottom/14px 1px no-repeat,linear-gradient(var(--tick),var(--tick)) left bottom/1px 14px no-repeat,
  linear-gradient(var(--tick),var(--tick)) right bottom/14px 1px no-repeat,linear-gradient(var(--tick),var(--tick)) right bottom/1px 14px no-repeat}
.km-theme .stage-glow{background:radial-gradient(circle,rgba(159,182,200,.07),transparent 66%)}
.km-theme .device-card-label strong,.km-theme .device-card-name{font:600 18px/26px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--lunar)}
.km-theme .device-wrap.multi .device-card.is-selected .device-card-label strong{color:#fff;text-shadow:0 0 12px rgba(200,214,230,.35)}
.km-theme .device-drag-handle{border:1px solid var(--line-2);border-radius:999px;background:rgba(5,7,11,.82);color:var(--regolith);font:400 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase}
.km-theme .device-drag-handle:hover:not(:disabled){border-color:var(--line-strong);background:rgba(5,7,11,.92);color:var(--lunar)}
.km-theme .empty-preview-message{font:400 15px var(--body);color:var(--regolith)}
.km-theme .screen-loading small{font:400 11px var(--mono);letter-spacing:.06em}

/* Aviso de prévia sem confirmação */
.km-theme .navigation-notice{background:radial-gradient(ellipse at 50% 30%,#0e1520,transparent 70%),#05070b;font:400 15px var(--body)}
.km-theme .navigation-notice h2{font:700 26px/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.km-theme .navigation-notice .notice-explanation{color:var(--regolith)}
.km-theme .navigation-notice :is(a,button){border:1px solid var(--line-2);border-radius:10px;background:none;color:var(--lunar);font:600 13px var(--display);letter-spacing:.14em;text-transform:uppercase}
.km-theme .navigation-notice a{border:1.5px solid var(--lunar)}
.km-theme .navigation-notice img{width:54px;height:54px}

/* Primeiros passos na bancada */
.km-theme .tutorial-card{padding:22px 22px 16px;border:1px solid rgba(236,238,241,.2);border-radius:18px;background:linear-gradient(180deg,rgba(14,19,27,.97),rgba(7,10,15,.97));box-shadow:0 24px 60px rgba(0,0,0,.55);font-family:var(--body)}
.km-theme .tutorial-card::before{background:#0d1219}
.km-theme .tutorial-card[data-side=top]::before{border-top-color:rgba(236,238,241,.2);border-left-color:rgba(236,238,241,.2)}
.km-theme .tutorial-card[data-side=left]::before{border-left-color:rgba(236,238,241,.2);border-bottom-color:rgba(236,238,241,.2)}
.km-theme .tutorial-progress{display:flex;align-items:center;gap:10px;margin-bottom:10px;font:400 10px/1.4 var(--mono);letter-spacing:.18em;color:var(--regolith)}
.km-theme .tutorial-progress::before{content:"";flex:none;width:18px;height:18px;background:center/contain no-repeat}
.km-theme .tutorial-card[data-step="1"] .tutorial-progress::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='%230b0f16' stroke='%23eceef1' stroke-opacity='.5'/%3E%3C/svg%3E")}
.km-theme .tutorial-card[data-step="2"] .tutorial-progress::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='%23eceef1' stroke-opacity='.5'/%3E%3Cpath d='M12 3A9 9 0 0 1 12 21A4.5 9 0 0 0 12 3Z' fill='%23eceef1'/%3E%3C/svg%3E")}
.km-theme .tutorial-card[data-step="3"] .tutorial-progress::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='%23eceef1'/%3E%3C/svg%3E")}
.km-theme .tutorial-card[data-step="4"] .tutorial-progress::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='%23eceef1' stroke-opacity='.5'/%3E%3Cpath d='M12 3A9 9 0 0 0 12 21A4.5 9 0 0 1 12 3Z' fill='%23eceef1'/%3E%3C/svg%3E")}
.km-theme .tutorial-card[data-step="3"]{width:min(340px,calc(100vw - 24px))}
.km-theme .tutorial-card h2{margin:0 28px 8px 0;font:700 26px/1 var(--display);letter-spacing:.01em;text-transform:uppercase;color:var(--lunar)}
.km-theme .tutorial-card #tutorialText{margin:0 0 18px;font:400 14.5px/1.6 var(--body);color:var(--ink-2)}
.km-theme .tutorial-close{color:var(--regolith);font-family:var(--body);border-radius:50%}
.km-theme .tutorial-close:hover{background:var(--raised);color:var(--lunar)}
.km-theme .tutorial-actions button{font-family:var(--body)}
.km-theme .tutorial-actions .tutorial-skip{font:400 13px var(--body);color:var(--regolith);text-decoration-color:rgba(236,238,241,.35);text-underline-offset:4px}
.km-theme .tutorial-actions .tutorial-next{position:relative;isolation:isolate;overflow:hidden;min-height:42px;padding:0 18px;border:1.5px solid var(--lunar);border-radius:0;background:none;color:var(--lunar);font:600 13px var(--display);letter-spacing:.16em;text-transform:uppercase;transition:color .35s}
.km-theme .tutorial-actions .tutorial-next::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--lunar);transform:translateY(101%);transition:transform .35s var(--ease)}
.km-theme .tutorial-actions .tutorial-next:hover{background:none;color:var(--void)}
.km-theme .tutorial-actions .tutorial-next:hover::before{transform:none}
.km-theme .tutorial-target{outline:1px solid rgba(200,214,230,.75);outline-offset:5px;border-radius:12px;box-shadow:0 0 0 9px rgba(200,214,230,.06)}

/* Diálogos: termos e conexão */
.km-theme .legal-dialog,.km-theme dialog#connectionGuide{border:1px solid rgba(236,238,241,.14);border-radius:20px;background:radial-gradient(ellipse 80% 40% at 80% 0,rgba(200,214,230,.06),transparent 70%),linear-gradient(180deg,#0b0f16,#06090e);box-shadow:0 30px 90px rgba(0,0,0,.6);color:var(--lunar);font:400 15px/1.65 var(--body);scrollbar-color:#2a313b transparent}
.km-theme .legal-dialog::backdrop,.km-theme #connectionGuide::backdrop{background:rgba(3,5,9,.78);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.km-theme .legal-dialog:not(.legal-preferences){font-family:var(--body)}
.km-theme .legal-dialog :is(h1,h2),.km-theme .legal-dialog:not(.legal-preferences) h1{font:700 34px/1 var(--display);letter-spacing:.005em;text-transform:uppercase;text-align:left;color:var(--lunar)}
.km-theme .legal-dialog #termsDescription p:first-child{margin-inline:0;max-width:none;text-align:left}
.km-theme .legal-dialog p{color:var(--ink-2)}
.km-theme .legal-dialog .legal-consent-note{font:400 12.5px/1.6 var(--body);color:var(--regolith)}
.km-theme .terms-brand{border-bottom:1px solid var(--line)}
.km-theme .terms-brand .dl-terms-logo{display:block;height:30px;width:auto}
.km-theme .terms-product{font:400 9.5px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dust)}
.km-theme .legal-terms-link{font:600 13px var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--lunar);text-decoration-color:rgba(236,238,241,.35)}
.km-theme .consent-choice{border-color:var(--line);font:500 14px/1.5 var(--body);color:#dfe5ec}
.km-theme .consent-choice input{accent-color:var(--glow)}
.km-theme .legal-dialog button,.km-theme .legal-dialog:not(.legal-preferences) button{font:600 13.5px var(--display);letter-spacing:.16em;text-transform:uppercase}
.km-theme .legal-dialog #termsAccept{position:relative;isolation:isolate;overflow:hidden;border:2px solid var(--lunar);border-radius:0;background:none;color:var(--lunar);transition:color .35s}
.km-theme .legal-dialog #termsAccept::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--lunar);transform:translateY(101%);transition:transform .35s var(--ease)}
.km-theme .legal-dialog #termsAccept:hover:not(:disabled){color:var(--void);background:none}
.km-theme .legal-dialog #termsAccept:hover:not(:disabled)::before{transform:none}
.km-theme .legal-dialog #termsAccept:disabled{border-color:rgba(236,238,241,.16);background:rgba(236,238,241,.03);color:var(--dust)}
.km-theme .legal-dialog #termsDecline,.km-theme .legal-dialog:not(.legal-preferences) #termsDecline{border:1px solid var(--line-2);border-radius:0;background:none;color:#d6dde6}
.km-theme .legal-dialog #termsDecline:hover{border-color:var(--line-strong);color:var(--lunar)}
.km-theme .legal-preferences button{border:1px solid var(--line-2);border-radius:10px}
.km-theme .legal-settings{min-height:34px;padding:0 14px;border:1px solid var(--line-2);border-radius:999px;background:rgba(5,7,11,.82);color:var(--regolith);font:400 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.km-theme .legal-settings:hover:not(:disabled){border-color:var(--line-strong);color:var(--lunar);background:rgba(5,7,11,.92)}
.km-theme .connection-kicker{font:400 10.5px var(--mono);letter-spacing:.2em;color:var(--regolith)}
.km-theme #connectionGuide h1{font:700 32px/1 var(--display);text-transform:uppercase}
.km-theme #connectionGuide :is(li,p){color:var(--ink-2)}
.km-theme #connectionGuide summary{font:600 13px var(--display);letter-spacing:.12em;text-transform:uppercase;color:#d6dde6}
.km-theme #connectUrl{border:1px solid var(--line-2);border-radius:10px;background:rgba(255,255,255,.02);color:var(--lunar);font:400 14px var(--mono)}
.km-theme .connection-buttons .primary-button{border:1.5px solid var(--lunar);background:none;color:var(--lunar)}
.km-theme .connection-buttons .primary-button:hover:not(:disabled){background:var(--lunar);color:var(--void)}

/* Página de termos */
.km-theme .legal-page{background:var(--void);font:400 16px/1.7 var(--body);color:var(--ink-2)}
.km-theme .legal-page main{padding-top:48px}
.km-theme .legal-page h1{font:700 clamp(40px,7vw,64px)/.92 var(--display);text-transform:uppercase;color:var(--lunar);margin:28px 0 12px}
.km-theme .legal-page h2{font:700 24px/1.1 var(--display);text-transform:uppercase;letter-spacing:.01em;color:var(--lunar);margin-top:40px}
.km-theme .legal-page .legal-logo{display:block;width:180px;height:auto;margin:34px 0 0}
.km-theme .legal-page main>a:first-child{font:600 13px var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--lunar);text-decoration:none}
.km-theme .legal-page code{font:.88em var(--mono);color:var(--lunar)}

/* Enquanto a página inicial cobre a bancada, o aviso sem JavaScript fica oculto */
.km-theme.dl-js .access-fallback{display:none!important}
.km-theme .access-fallback{font-family:var(--body)}
.km-theme .access-fallback h1{font:700 40px/1 var(--display);text-transform:uppercase}

@media(max-width:1100px){.dl-brand-home{display:none}}
@media(max-width:760px){.dl-brand .dl-logo{height:28px}}
@media(prefers-reduced-motion:reduce){.km-theme *,.km-theme *::before,.km-theme *::after{transition-duration:.01ms!important}}
