/* KISONIS Camera V2 – quiet spatial UI, 4.1.23.281.
 * Layout/presentation only. No camera/OpenCV/worker runtime changes.
 * Internal kisonis-* selectors remain for backwards compatibility.
 */
:root{
  --kcv2-fg:#fff;
  --kcv2-muted:rgba(255,255,255,.66);
  --kcv2-panel:rgba(17,17,17,.72);
  --kcv2-panel-soft:rgba(17,17,17,.46);
  --kcv2-line:rgba(255,255,255,.16);
  --kcv2-line-strong:rgba(255,255,255,.26);
  --kcv2-shadow:0 16px 48px rgba(0,0,0,.22);
  --kcv2-font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,"Helvetica Neue",Arial,sans-serif;
}
#ar-text-overlay-root.kisonis-camera-v2{font-family:var(--kcv2-font);background:#000;color:var(--kcv2-fg);overflow:hidden;isolation:isolate;border-radius:22px;min-height:min(72vh,720px);position:relative;color-scheme:dark;touch-action:manipulation;--kcv2-safe-left:env(safe-area-inset-left);--kcv2-safe-right:env(safe-area-inset-right);--kcv2-safe-top:env(safe-area-inset-top);--kcv2-safe-bottom:env(safe-area-inset-bottom)}
body.kisonis-camera-v2-page{margin:0;background:#000;overflow:hidden;color:#fff;font-family:var(--kcv2-font)}
body.kisonis-camera-v2-page #ar-text-overlay-root.kisonis-camera-v2{position:fixed;inset:0;width:100vw;height:100dvh;min-height:100dvh;border-radius:0}
#ar-text-overlay-root.kisonis-camera-v2::before{content:"";position:absolute;inset:0 0 auto 0;height:104px;z-index:12;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.30),transparent)}
#ar-text-overlay-root.kisonis-camera-v2::after{content:"";position:absolute;inset:auto 0 0 0;height:120px;z-index:12;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.28),transparent)}
#ar-text-overlay-root.kisonis-camera-v2 #arto-canvas{width:100%!important;height:100%!important;display:block;background:#000;object-fit:cover}
#ar-text-overlay-root.kisonis-camera-v2 #arto-video{position:absolute!important;left:-9999px!important;top:0!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-overlay{z-index:40}

#ar-text-overlay-root.kisonis-camera-v2 .kcv2-topbar{position:absolute;left:0;right:0;top:0;z-index:80;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:calc(var(--kcv2-safe-top) + 14px) calc(var(--kcv2-safe-right) + 16px) 0 calc(var(--kcv2-safe-left) + 16px);pointer-events:none}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-brand-row{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:4px 6px;border:1px solid var(--kcv2-line);border-radius:999px;background:rgba(17,17,17,.52);box-shadow:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-brand{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:#fff;padding:0 8px 0 2px}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-brand img{width:46px;height:46px;display:block;border-radius:11px;object-fit:cover;box-shadow:0 4px 14px rgba(0,0,0,.24)}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-brand span{font:900 15px/1 var(--kcv2-font);letter-spacing:.12em;text-transform:uppercase;text-shadow:none}
#ar-text-overlay-root.kisonis-camera-v2 #arto-language-select-embedded{appearance:none;width:54px;height:36px;border-radius:999px;border:1px solid var(--kcv2-line);background-color:rgba(255,255,255,.07);color:#fff;padding:0 21px 0 8px;text-align:center;font:750 13px/1 var(--kcv2-font);background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.8) 50%),linear-gradient(135deg,rgba(255,255,255,.8) 50%,transparent 50%);background-position:calc(100% - 13px) calc(50% - 2px),calc(100% - 8px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;color-scheme:dark}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-close{pointer-events:auto;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:999px;border:1px solid var(--kcv2-line);background:rgba(17,17,17,.48);color:#fff;font:500 28px/1 var(--kcv2-font);box-shadow:none;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer}

#ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock-wrap{position:absolute;left:0;right:0;bottom:0;z-index:82;display:flex;justify-content:center;padding:0 calc(var(--kcv2-safe-right) + 16px) calc(var(--kcv2-safe-bottom) + 18px) calc(var(--kcv2-safe-left) + 16px);pointer-events:none}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock{pointer-events:auto;display:flex;align-items:center;gap:6px;width:min(94vw,980px);min-height:64px;padding:7px;border:1px solid var(--kcv2-line);border-radius:999px;background:var(--kcv2-panel);box-shadow:var(--kcv2-shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock::-webkit-scrollbar{display:none}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock select,#ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock button,#ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock a,#ar-text-overlay-root.kisonis-camera-v2 .kcv2-status-chip{flex:0 0 auto;height:48px;border-radius:999px;border:1px solid transparent;background:rgba(255,255,255,.06);color:#fff;font:800 13px/1 var(--kcv2-font);letter-spacing:-.01em;box-shadow:none;white-space:nowrap}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-channel-select{appearance:none;width:min(29vw,250px);min-width:155px;padding:0 40px 0 16px;text-overflow:ellipsis;background-color:rgba(255,255,255,.06);background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.78) 50%),linear-gradient(135deg,rgba(255,255,255,.78) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 13px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;color-scheme:dark}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-search{width:48px;min-width:48px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:0!important;background:rgba(255,255,255,.06)!important;border-color:var(--kcv2-line)!important}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-search::before{content:"⌕";font-size:24px;line-height:1;color:#fff;transform:translateY(-1px)}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-status-chip{display:inline-flex;align-items:center;gap:8px;min-width:auto;justify-content:center;padding:0 13px;background:transparent;border-color:transparent;color:var(--kcv2-muted)}
#ar-text-overlay-root.kisonis-camera-v2 .arto-runtime-icon{display:inline-block!important;width:8px!important;height:8px!important;min-width:8px!important;border-radius:999px!important;background:#9ca3af!important;font-size:0!important;line-height:0!important;color:transparent!important;box-shadow:none!important;overflow:hidden!important;animation:none!important}
#ar-text-overlay-root.kisonis-camera-v2 .arto-runtime-label{font:750 12px/1 var(--kcv2-font);color:rgba(255,255,255,.74)}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="boot"] .arto-runtime-icon{background:#e0bc50!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="partial"] .arto-runtime-icon{background:#dc815d!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="ready"] .arto-runtime-icon{background:#63a975!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="error"] .arto-runtime-icon{background:#d35b54!important}
@keyframes kisonisStatusBlink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.22;transform:scale(.82)}}
@keyframes kisonisStatusFault{0%,18%,36%,100%{opacity:1}9%,27%{opacity:.14}37%,99%{opacity:.42}}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="boot"][data-phase="boot"] .arto-runtime-icon{animation:kisonisStatusBlink 1.8s ease-in-out infinite!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="boot"][data-phase="scene"] .arto-runtime-icon{animation:kisonisStatusBlink 1.55s ease-in-out infinite!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="boot"][data-phase="camera"] .arto-runtime-icon{animation:kisonisStatusBlink 1.2s ease-in-out infinite!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="boot"][data-phase="opencv"] .arto-runtime-icon{animation:kisonisStatusBlink .9s ease-in-out infinite!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="boot"][data-phase="worker"] .arto-runtime-icon{animation:kisonisStatusBlink .65s ease-in-out infinite!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="partial"] .arto-runtime-icon{animation:kisonisStatusBlink .42s ease-in-out infinite!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="error"] .arto-runtime-icon{animation:kisonisStatusFault 1.25s linear infinite!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="ready"] .arto-runtime-icon,
#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator[data-state="standby"] .arto-runtime-icon{animation:none!important}
@media (prefers-reduced-motion:reduce){#ar-text-overlay-root.kisonis-camera-v2 #arto-runtime-indicator .arto-runtime-icon{animation:none!important;transform:none!important}}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-action{min-width:102px;padding:0 17px;cursor:pointer}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-action.primary{background:#fff;color:#111;border-color:#fff;font-size:0!important}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-action.primary::after{content:"Look around";font:850 13px/1 var(--kcv2-font)}
#ar-text-overlay-root.kisonis-camera-v2 #arto-marker-places-button{background:rgba(255,255,255,.09);border-color:var(--kcv2-line);font-size:0!important}
#ar-text-overlay-root.kisonis-camera-v2 #arto-marker-places-button::after{content:"Signal Map";font:850 13px/1 var(--kcv2-font)}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-action.more{background:transparent;border-color:transparent}
#ar-text-overlay-root.kisonis-camera-v2 button:disabled{opacity:.45;cursor:default}
#ar-text-overlay-root.kisonis-camera-v2 #arto-status{position:absolute;left:calc(var(--kcv2-safe-left) + 16px);top:calc(var(--kcv2-safe-top) + 72px);z-index:78;max-width:min(520px,calc(100% - 32px));padding:.48rem .68rem;background:rgba(17,17,17,.58);color:#fff;font:11px/1.35 var(--kcv2-font);border-radius:12px;border:1px solid var(--kcv2-line);display:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}

#ar-text-overlay-root.kisonis-camera-v2 .kcv2-more-sheet{position:absolute;right:calc(var(--kcv2-safe-right) + 16px);bottom:calc(var(--kcv2-safe-bottom) + 92px);z-index:90;display:none;min-width:220px;padding:7px;border-radius:20px;border:1px solid var(--kcv2-line);background:rgba(17,17,17,.90);box-shadow:var(--kcv2-shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-more-sheet[data-open="1"]{display:flex;flex-direction:column;gap:4px}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-more-sheet button,#ar-text-overlay-root.kisonis-camera-v2 .kcv2-more-sheet a{height:42px;border-radius:13px;border:0;background:transparent;color:#fff;font:700 13px/1 var(--kcv2-font);text-align:left;padding:0 12px;display:flex;align-items:center;text-decoration:none;cursor:pointer}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-more-sheet button:hover,#ar-text-overlay-root.kisonis-camera-v2 .kcv2-more-sheet a:hover{background:rgba(255,255,255,.07)}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-more-sheet #arto-abuse-report[disabled],#ar-text-overlay-root.kisonis-camera-v2 .kcv2-more-sheet #arto-abuse-report[aria-disabled="true"]{display:none}
#ar-text-overlay-root.kisonis-camera-v2 .kcv2-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:760px){
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-topbar{padding-top:calc(var(--kcv2-safe-top) + 9px);padding-left:calc(var(--kcv2-safe-left) + 9px);padding-right:calc(var(--kcv2-safe-right) + 9px)}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-brand-row{min-height:42px;padding:3px 5px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-brand img{width:40px;height:40px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-brand span{font-size:13px}
  #ar-text-overlay-root.kisonis-camera-v2 #arto-language-select-embedded{width:50px;height:34px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-close{width:42px;height:42px;font-size:25px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock-wrap{padding-left:calc(var(--kcv2-safe-left) + 8px);padding-right:calc(var(--kcv2-safe-right) + 8px);padding-bottom:calc(var(--kcv2-safe-bottom) + 10px)}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock{width:100%;min-height:58px;padding:5px;gap:4px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock select,#ar-text-overlay-root.kisonis-camera-v2 .kcv2-dock button,#ar-text-overlay-root.kisonis-camera-v2 .kcv2-status-chip{height:46px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-channel-select{min-width:135px;width:36vw;padding-left:13px;padding-right:34px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-status-chip{padding:0 9px}
  #ar-text-overlay-root.kisonis-camera-v2 .arto-runtime-label{font-size:11px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-action{min-width:82px;padding:0 12px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-action.primary::after,#ar-text-overlay-root.kisonis-camera-v2 #arto-marker-places-button::after{font-size:12px}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-more-sheet{right:calc(var(--kcv2-safe-right) + 9px);bottom:calc(var(--kcv2-safe-bottom) + 76px)}
}
@media(max-width:520px){
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-brand span{display:none}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-status-chip{min-width:34px;width:34px;padding:0}
  #ar-text-overlay-root.kisonis-camera-v2 .arto-runtime-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  #ar-text-overlay-root.kisonis-camera-v2 .kcv2-search{display:none}
}
