:root{
  --bg:#F8FAFF; --card:#FFFFFF; --border:#E2E8F0; --text:#0F172A; --muted:#64748B;
  --indigo:#4338CA; --purple:#7C3AED; --cyan:#06B6D4; --emerald:#10B981; --rose:#F43F5E; --amber:#F59E0B;
  --shadow:0 12px 32px rgba(15,23,42,.14),0 2px 6px rgba(15,23,42,.06);
  --task:56px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:clip}
body{background:var(--bg);color:var(--text);font-family:Pretendard,-apple-system,"Segoe UI","Malgun Gothic",sans-serif;font-size:14px}
button,input,textarea,select{font:inherit;color:inherit}
.mono{font-family:ui-monospace,"Cascadia Code",Consolas,monospace}


#desk{position:relative;flex:1;min-width:0;overflow:clip;
  background:
   radial-gradient(900px 500px at 85% 10%,rgba(124,58,237,.16),transparent 60%),
   radial-gradient(800px 520px at 10% 90%,rgba(6,182,212,.16),transparent 60%),
   radial-gradient(600px 400px at 60% 70%,rgba(67,56,202,.10),transparent 60%),var(--bg)}
#desk::after{content:"ViKernel";position:absolute;right:28px;bottom:calc(var(--task) + 12px);font-weight:800;font-size:40px;letter-spacing:-1px;color:rgba(67,56,202,.10);pointer-events:none}
#banner{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:5;background:#FFF7E6;border:1px solid #FCD9A0;color:#92400E;padding:6px 14px;border-radius:999px;font-size:12px;display:none;white-space:nowrap}
#banner.show{display:block}


#icons{position:absolute;top:16px;left:16px;display:grid;grid-template-rows:repeat(5,96px);grid-auto-flow:column;grid-auto-columns:92px;gap:6px}
.icon{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;border-radius:12px;border:1px solid transparent;background:none;cursor:pointer;text-align:center}
.icon:hover,.icon:focus-visible{background:rgba(255,255,255,.7);border-color:var(--border);outline:none}
.icon .g{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#fff;box-shadow:0 4px 12px rgba(15,23,42,.15)}
.icon .g svg{width:24px;height:24px}
.icon span{font-size:12px;line-height:1.25;font-weight:600}


.win{position:absolute;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:300px;max-width:calc(100vw - 16px);max-height:calc(100% - var(--task) - 16px);overflow:clip}
.win.focus{box-shadow:0 18px 44px rgba(67,56,202,.22),0 2px 6px rgba(15,23,42,.06);border-color:#C7D2FE}
.tb{display:flex;align-items:center;gap:8px;padding:9px 10px 9px 14px;border-bottom:1px solid var(--border);background:linear-gradient(#fff,#FAFBFF);cursor:grab;user-select:none;touch-action:none}
.tb .dot{width:10px;height:10px;border-radius:50%}
.tb b{flex:1;font-size:13px}
.tb button{width:28px;height:26px;border-radius:8px;border:1px solid transparent;background:none;cursor:pointer;color:var(--muted);font-size:16px;line-height:1}
.tb button:hover{background:#FEE2E2;color:var(--rose)}
.body{padding:14px;overflow:auto;flex:1}



#startbtn{height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--border);background:var(--card);font-weight:800;cursor:pointer;display:flex;align-items:center;gap:8px}
#startbtn i{width:18px;height:18px;border-radius:5px;background:linear-gradient(135deg,var(--indigo),var(--purple));display:inline-block}
#tasks{display:flex;gap:6px;overflow-x:auto;flex:1;min-width:0}
.tbtn{height:36px;padding:0 10px;border-radius:9px;border:1px solid var(--border);background:var(--card);cursor:pointer;white-space:nowrap;font-size:12px}
.tbtn.on{border-color:#A5B4FC;background:#EEF2FF}
#tray{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}
.pill{height:30px;display:flex;align-items:center;gap:6px;padding:0 9px;border-radius:999px;border:1px solid var(--border);background:var(--card);font-size:11.5px;white-space:nowrap}
.pill .k{color:var(--muted)}
.pill.ok{border-color:#A7F3D0;background:#ECFDF5}
.pill.warn{border-color:#FDE68A;background:#FFFBEB}
.pill.bad{border-color:#FECDD3;background:#FFF1F2}
#clock{font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted);min-width:44px;text-align:right}

#start{position:absolute;left:10px;bottom:calc(var(--task) + 8px);width:300px;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:10px;z-index:9001;display:none}
#start.show{display:block}
#start h4{margin:4px 6px 8px;font-size:12px;color:var(--muted);font-weight:600}
#start button.item{display:flex;width:100%;align-items:center;gap:10px;padding:8px;border:0;background:none;border-radius:9px;cursor:pointer;text-align:left}
#start button.item:hover{background:#F1F5F9}
#start .mini{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:#fff}
#start .mini svg{width:15px;height:15px}
#start .sep{height:1px;background:var(--border);margin:8px 0}


.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.btn{height:34px;padding:0 12px;border-radius:9px;border:1px solid var(--border);background:var(--card);cursor:pointer;font-weight:600;font-size:13px}
.btn:hover{border-color:#A5B4FC}
.btn.pri{background:var(--indigo);border-color:var(--indigo);color:#fff}
.btn.danger{background:var(--rose);border-color:var(--rose);color:#fff}
.btn.off{opacity:.45;cursor:not-allowed}
.card{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--card)}
.muted{color:var(--muted)}
.small{font-size:12px}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:11.5px;font-weight:700}
.tag.allow{background:#D1FAE5;color:#065F46}
.tag.deny{background:#FFE4E6;color:#9F1239}
.tag.rec{background:#EDE9FE;color:#5B21B6}
.tag.live{background:#CFFAFE;color:#155E75}
.tag.meas{background:#E0E7FF;color:#3730A3}
.tag.none{background:#F1F5F9;color:#475569}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12.5px}
.kv .k{color:var(--muted)}
pre.out{background:#0F172A;color:#E2E8F0;border-radius:10px;padding:12px;margin:0;white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.5}
textarea,input[type=text],input[type=number],select{border:1px solid var(--border);border-radius:9px;padding:7px 9px;background:#fff}
textarea{width:100%;min-height:96px;resize:vertical}
table{border-collapse:collapse;width:100%;font-size:12px}
th,td{border-bottom:1px solid var(--border);padding:6px 6px;text-align:left;vertical-align:top}
th{color:var(--muted);font-weight:600;background:#F8FAFC;position:sticky;top:0}
tr.bad td{background:#FFF1F2}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.note{font-size:12px;color:var(--muted);border-left:3px solid var(--purple);padding:4px 0 4px 10px;margin-top:10px}


.term{display:flex;flex-direction:column;height:100%;background:#0B1020;color:#E2E8F0;border-radius:10px;overflow:clip}
.term .scr{flex:1;overflow:auto;padding:10px 12px;white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.5}
.term .ln{display:flex;gap:6px;padding:8px 12px;border-top:1px solid #1E293B}
.term input{flex:1;background:transparent;border:0;color:#E2E8F0;outline:none;padding:0}
.term .p{color:var(--cyan)}
.term .dim{color:#94A3B8}
.term .err{color:#FDA4AF}


@media (max-width:700px){
  #icons{grid-template-rows:none;grid-auto-flow:row;grid-template-columns:repeat(3,1fr);grid-auto-columns:auto;left:16px;right:16px;top:44px}
  .win{left:8px !important;right:8px;top:8px !important;width:auto !important;height:calc(100vh - var(--task) - 16px) !important;min-width:0}
  .tb{cursor:default}
  #tray .pill.opt{display:none}
  #startbtn span{display:none}
  .grid2{grid-template-columns:1fr}
  #desk::after{font-size:28px}
  #banner{white-space:normal;width:calc(100% - 32px);text-align:center;border-radius:12px}
}
#splash{position:fixed;inset:0;z-index:20000;background:rgba(248,250,255,.97);display:grid;place-items:center;padding:16px;cursor:pointer}
#splash .sp{max-width:620px;background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:24px;max-height:calc(100vh - 32px);overflow:auto}
#splash .spbar{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--indigo),var(--purple),var(--cyan));margin-bottom:16px;animation:spb 4.5s linear}
@keyframes spb{from{width:0}to{width:100%}}


body{display:flex;flex-direction:column;height:100vh;height:100dvh}
#hdr{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:12px 18px;background:linear-gradient(90deg,#fff,#F5F3FF);border-bottom:1px solid var(--border);position:relative;z-index:30}
#hdr h1{margin:0;font-size:18px;letter-spacing:-.3px}
#hdr .ht{flex:1;min-width:0}
#hdr .hq{margin:2px 0 0;font-size:13px;font-weight:600;color:var(--indigo)}
#hdr .hd{margin:2px 0 0;font-size:12px;color:var(--muted)}
#burger{display:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:#fff;font-size:18px;cursor:pointer}
#fullcopy{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--border);box-shadow:var(--shadow);padding:16px 18px;max-height:60vh;overflow:auto}
#fullcopy.show{display:block}
#shell{flex:1;display:flex;min-height:0;position:relative}
#panel{flex:0 0 264px;width:264px;overflow-y:auto;background:#fff;border-right:1px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:14px;z-index:20}
#panel h3{margin:0 0 8px;font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.3px}
#panel .cap{font-size:11.5px;color:var(--muted);margin:6px 0 0;line-height:1.45}
#models{display:flex;flex-direction:column;gap:4px}
.mrow{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 9px;border-radius:9px;border:1px solid var(--border);background:#F8FAFC;color:var(--muted);font-size:12.5px;font-weight:600;cursor:not-allowed;text-align:left}
.mrow.live{background:#EEF2FF;border-color:var(--indigo);color:var(--indigo);cursor:pointer}
.mrow.ver{cursor:pointer}
.mrow.more{border-style:dashed;cursor:default}
.mt{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:999px}
.mt.l{background:var(--emerald);color:#fff}.mt.v{background:#E0E7FF;color:#3730A3}.mt.s{background:#F1F5F9;color:#64748B}
.kill{width:100%;height:56px;border-radius:12px;border:0;background:var(--rose);color:#fff;font-weight:800;font-size:16px;cursor:pointer;box-shadow:0 6px 16px rgba(244,63,94,.35)}
.kill:active{transform:translateY(1px)}
.kill.pressed{background:#9F1239;box-shadow:inset 0 3px 8px rgba(0,0,0,.35)}
.btn.wide{width:100%;margin-top:8px}
.seg{display:flex;margin-top:10px;border:1px solid var(--border);border-radius:9px;overflow:clip}
.sbtn{flex:1;height:32px;border:0;background:#fff;cursor:pointer;font-size:12.5px;font-weight:600}
.sbtn.on{background:var(--indigo);color:#fff}
.kv2{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:12.5px;margin-top:10px}
.kv2 span{color:var(--muted)}
.row2{display:flex;gap:6px;margin-top:8px}.row2 .btn{flex:1}
#scrim{display:none}
#toast{position:fixed;left:50%;bottom:76px;transform:translateX(-50%);background:#0F172A;color:#fff;padding:9px 14px;border-radius:10px;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:30000;max-width:calc(100vw - 32px)}
#toast.show{opacity:1}
#splash{position:fixed;inset:0;z-index:40000;background:rgba(248,250,255,.97);display:grid;place-items:center;padding:16px;cursor:pointer}
#splash .sp{max-width:620px;background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:24px;max-height:calc(100vh - 32px);overflow:auto}
#splash .spbar{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--indigo),var(--purple),var(--cyan));margin-bottom:16px;animation:spb 4.5s linear}
@keyframes spb{from{width:0}to{width:100%}}
@media (max-width:900px){
  #burger{display:block}
  #hdr{padding:8px 12px;gap:10px}
  #hdr h1{font-size:14px}
  #hdr .hq{font-size:11.5px;white-space:nowrap;overflow:clip;text-overflow:ellipsis}
  #hdr .hd,#more{display:none}
  #panel{position:absolute;left:0;top:0;bottom:0;transform:translateX(-105%);transition:transform .2s;box-shadow:var(--shadow)}
  #panel.open{transform:none}
  #scrim.show{display:block;position:absolute;inset:0;background:rgba(15,23,42,.3);z-index:15}
}
@media (max-width:700px){
  #icons{top:12px}
  .win{left:6px !important;right:6px;top:6px !important;width:auto !important;height:calc(100% - var(--task) - 12px) !important}
}
.mt.c{background:#FEF3C7;color:#92400E}


:root{--mb:30px;--dockh:78px}
#desk{background:
  radial-gradient(1200px 700px at 15% 0%,rgba(67,56,202,.30),transparent 60%),
  radial-gradient(1000px 600px at 90% 30%,rgba(6,182,212,.26),transparent 60%),
  linear-gradient(160deg,#E0E7FF 0%,#ECFEFF 55%,#F8FAFF 100%)}
#desk::after{bottom:calc(var(--dockh) + 14px);color:rgba(67,56,202,.12)}
#menubar{position:absolute;top:0;left:0;right:0;height:var(--mb);display:flex;align-items:center;gap:6px;padding:0 10px;background:rgba(255,255,255,.55);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid rgba(226,232,240,.8);z-index:8000;font-size:12.5px}
.vkmark{width:16px;height:16px;border-radius:5px;background:conic-gradient(from 210deg,var(--indigo),var(--purple),var(--cyan),var(--indigo));position:relative;flex:0 0 auto}
.vkmark::after{content:"";position:absolute;inset:4px;border-radius:2px;background:#fff;clip-path:polygon(0 0,50% 100%,100% 0,75% 0,50% 55%,25% 0)}
#menus{display:flex;gap:2px;flex:1;min-width:0}
.mitem{position:relative}
.mitem>button{height:24px;padding:0 9px;border:0;background:none;border-radius:6px;cursor:default;font-weight:600;font-size:12.5px}
.mitem>button:first-child{font-weight:800}
.mitem>button:hover,.mitem.open>button{background:rgba(67,56,202,.12)}
.mdrop,#ctx{display:none;position:absolute;min-width:190px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:5px;z-index:9500}
.mdrop{top:27px;left:0}
.mitem.open .mdrop{display:block}
.mdrop button,#ctx button{display:block;width:100%;text-align:left;border:0;background:none;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:12.5px}
.mdrop button:hover,#ctx button:hover{background:var(--indigo);color:#fff}
#ctx.show{display:block}
#menubar #tray{gap:4px}
#menubar .pill{height:22px;border:0;background:transparent;padding:0 6px;font-size:11.5px}
#menubar .pill.bad{background:rgba(244,63,94,.14)}
#menubar #clock{min-width:40px}
#banner{top:calc(var(--mb) + 8px)}

#icons{top:calc(var(--mb) + 14px);left:auto;right:14px;grid-template-rows:repeat(5,92px);direction:rtl}
#icons .icon{direction:ltr}
.icon .g,.dk .g,#startapps .mini{background:linear-gradient(160deg,rgba(255,255,255,.35),rgba(255,255,255,0) 55%),var(--c) !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 6px 14px rgba(15,23,42,.18)}
.icon span:last-child{text-shadow:0 1px 2px rgba(255,255,255,.8)}

.win{border-radius:14px;border:1px solid rgba(226,232,240,.9);box-shadow:0 24px 60px rgba(15,23,42,.20),0 2px 8px rgba(15,23,42,.08);margin-top:0;transform-origin:50% 60%;animation:wopen .18s ease-out}
.win.closing{animation:wclose .14s ease-in forwards}
@keyframes wopen{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes wclose{to{opacity:0;transform:scale(.94)}}
.win.min{display:none}
.win.max{left:0 !important;top:var(--mb) !important;width:100% !important;height:calc(100% - var(--mb) - var(--dockh) - 6px) !important;border-radius:0;max-width:none;max-height:none}
.tb{background:rgba(248,250,255,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:8px 12px;gap:10px}
.tb b{text-align:center;font-weight:600;color:#334155;margin-right:52px}
.lights{display:flex;gap:7px}
.lights button{width:13px !important;height:13px !important;border-radius:50% !important;border:1px solid rgba(15,23,42,.12) !important;padding:0;cursor:pointer;position:relative}
.lights .c{background:#F43F5E !important}.lights .n{background:#F59E0B !important}.lights .x{background:#10B981 !important}
.lights button::after{content:"";position:absolute;inset:3px;opacity:0;transition:opacity .1s}
.lights:hover .c::after{opacity:1;background:linear-gradient(45deg,transparent 42%,rgba(15,23,42,.6) 42% 58%,transparent 58%),linear-gradient(-45deg,transparent 42%,rgba(15,23,42,.6) 42% 58%,transparent 58%)}
.lights:hover .n::after{opacity:1;background:linear-gradient(transparent 42%,rgba(15,23,42,.6) 42% 58%,transparent 58%)}
.lights:hover .x::after{opacity:1;inset:3.5px;border:1.5px solid rgba(15,23,42,.55);border-radius:1px}
.tb .dot{display:none}

#dock{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);display:flex;align-items:flex-end;gap:6px;padding:7px 10px;border-radius:20px;background:rgba(255,255,255,.55);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid rgba(255,255,255,.7);box-shadow:0 12px 30px rgba(15,23,42,.16);z-index:9000;max-width:calc(100% - 16px)}
#startbtn{width:48px;height:48px;padding:0;border-radius:13px;border:0;background:linear-gradient(160deg,rgba(255,255,255,.4),rgba(255,255,255,0) 55%),linear-gradient(135deg,var(--indigo),var(--purple));display:grid;place-items:center;transition:transform .15s}
#startbtn i{width:20px;height:20px;background:none;display:grid;grid-template-columns:1fr 1fr;gap:3px}
#startbtn i::before,#startbtn i::after{content:"";border-radius:2px}
#startbtn i{background:linear-gradient(#fff,#fff) 0 0/8px 8px no-repeat,linear-gradient(#fff,#fff) 12px 0/8px 8px no-repeat,linear-gradient(#fff,#fff) 0 12px/8px 8px no-repeat,linear-gradient(rgba(255,255,255,.6),rgba(255,255,255,.6)) 12px 12px/8px 8px no-repeat}
.dsep{width:1px;height:36px;margin:4px 2px;background:rgba(100,116,139,.3)}
#tasks{display:flex;gap:6px;align-items:flex-end;overflow:visible;flex:0 1 auto}
.dk{position:relative;width:48px;height:48px;border:0;background:none;padding:0;cursor:pointer;transition:transform .15s ease,margin .15s ease;transform-origin:50% 100%}
.dk .g{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;color:#fff}
.dk .g svg{width:24px;height:24px}
.dk::after{content:"";position:absolute;left:50%;bottom:-6px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:transparent}
.dk.run::after{background:#0F172A}
.dk .tip{position:absolute;bottom:62px;left:50%;transform:translateX(-50%);background:rgba(15,23,42,.85);color:#fff;font-size:11px;padding:3px 8px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .1s}
.dk:hover .tip{opacity:1}
#dock:hover .dk:hover,#startbtn:hover{transform:scale(1.35) translateY(-4px)}
#dock .dk:hover+.dk{transform:scale(1.15) translateY(-2px)}

#start{left:50%;transform:translateX(-50%);bottom:calc(var(--dockh) + 10px);width:min(440px,calc(100% - 16px));background:rgba(255,255,255,.88);backdrop-filter:blur(20px);border-radius:16px;padding:14px}
#ssearch{width:100%;margin-bottom:10px;border-radius:999px;padding:8px 14px}
#startapps{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
#start button.item{flex-direction:column;gap:6px;text-align:center;font-size:12px;padding:10px 4px}
#start .mini{width:38px;height:38px;border-radius:11px}
#start .mini svg{width:20px;height:20px}
#toast{bottom:96px}
@media (prefers-reduced-motion:reduce){.win,.win.closing{animation:none}.dk,#startbtn{transition:none}#dock:hover .dk:hover,#startbtn:hover,#dock .dk:hover+.dk{transform:none}}
@media (max-width:700px){
  #icons{right:12px;left:12px;direction:ltr;top:calc(var(--mb) + 10px)}
  .win,.win.max{left:0 !important;right:0;top:var(--mb) !important;width:100% !important;height:calc(100% - var(--mb) - var(--dockh) - 6px) !important;border-radius:0}
  #menubar .pill.opt,#menus .mitem:not(:first-child){display:none}
  .dk,.dk .g,#startbtn{width:40px;height:40px}
  #dock{gap:4px;padding:6px 8px;overflow-x:auto;overflow-y:clip}
  #dock:hover .dk:hover,#startbtn:hover,#dock .dk:hover+.dk{transform:none}
  .tb b{margin-right:0}
}
#desk{z-index:0;isolation:isolate}
.term .okc{color:#6EE7B7}
.card.blocked{animation:blk .45s ease}
.card.blocked::before{content:"BLOCKED";float:right;font-weight:800;font-size:11px;letter-spacing:1px;color:var(--rose);border:2px solid var(--rose);border-radius:6px;padding:1px 6px;transform:rotate(-6deg)}
@keyframes blk{0%,100%{transform:none}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
.dlg{position:absolute;inset:0;background:rgba(15,23,42,.35);display:grid;place-items:center;padding:12px;z-index:5}
.dlgc{background:#fff;border-radius:14px;padding:16px;max-width:520px;width:100%;max-height:100%;overflow:auto;box-shadow:var(--shadow)}
.win .body{position:relative}
.gfield{position:relative;height:340px;border-radius:14px;border:1px solid var(--border);background:linear-gradient(#EEF2FF,#fff 70%);overflow:clip;margin-top:8px}
.gfield::after{content:"KERNEL";position:absolute;left:0;right:0;bottom:0;height:34px;display:grid;place-items:center;background:linear-gradient(90deg,var(--indigo),var(--purple));color:#fff;font-weight:800;letter-spacing:3px;font-size:12px}
.gcard{position:absolute;left:50%;transform:translateX(-50%);top:0;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 14px;font-weight:700;box-shadow:0 6px 16px rgba(15,23,42,.12);white-space:nowrap;max-width:94%;text-overflow:ellipsis;overflow:clip}
.gcard.ok{border-color:var(--emerald);background:#ECFDF5}.gcard.bad{border-color:var(--rose);background:#FFF1F2}
.gover{position:absolute;inset:12px 12px 46px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10px}
#langsw{display:flex;border:1px solid var(--border);border-radius:999px;overflow:clip;flex:0 0 auto}
#langsw button{border:0;background:#fff;padding:5px 10px;font-size:12px;font-weight:700;cursor:pointer}
#langsw button.on{background:var(--indigo);color:#fff}
.by{font-size:12px;font-weight:600;color:var(--muted);margin-left:6px}
#foot{position:absolute;left:10px;bottom:6px;font-size:10.5px;color:var(--muted);z-index:8500;pointer-events:none}
@media (prefers-reduced-motion:reduce){.card.blocked{animation:none}}

.btn.off{opacity:.45;cursor:not-allowed}
.busy{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center}
.spin{width:12px;height:12px;border:2px solid #C7D2FE;border-top-color:var(--indigo);border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.atbl{overflow:auto;max-height:340px;border:1px solid var(--border);border-radius:10px}
#hdr h1 .by{font-size:12px}
#langsw{margin-left:6px}
@media (max-width:900px){#langsw{display:flex}}

#hdr h1 .demover{display:inline-block;margin-left:10px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.3px;color:#4338CA;background:#EEF2FF;border:1px solid #C7D2FE;vertical-align:middle}

#icons{left:14px!important;right:auto!important;direction:ltr!important}
@media (max-width:760px){#icons{right:12px!important}}

.kdlg{position:fixed;inset:0;background:rgba(15,23,42,.35);display:flex;align-items:center;justify-content:center;z-index:99999}
.kbox{background:#fff;border:1px solid #E2E8F0;border-radius:14px;padding:16px;width:min(360px,92vw);box-shadow:0 20px 50px rgba(15,23,42,.25)}
.kbox input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid #C7D2FE;border-radius:8px;font-size:14px;background:#F8FAFF}

/* v0.1b layout: no side panel, models on top, desktop full width */
#panel,#scrim,#burger{display:none!important}
#modelbar{flex-basis:100%;display:flex;align-items:center;gap:8px;margin-top:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
#modelbar .mlabel{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.4px;text-transform:uppercase;flex:0 0 auto}
#modelbar #models{flex-direction:row!important;gap:6px;flex:0 0 auto}
#modelbar .mrow{white-space:nowrap;padding:4px 10px;border-radius:999px;font-size:12px}
#modelbar .mcap{font-size:11.5px;color:var(--muted);white-space:nowrap;flex:0 0 auto}
#hdr{flex-wrap:wrap}
.tkill{border:0;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:800;color:#fff;background:#F43F5E;cursor:pointer;box-shadow:0 2px 8px rgba(244,63,94,.35)}
.tres{border:1px solid #C7D2FE;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:800;color:#4338CA;background:#EEF2FF;cursor:pointer}
#arch{position:absolute;right:16px;top:calc(var(--mb) + 14px);width:290px;background:rgba(255,255,255,.72);backdrop-filter:blur(10px);border:1px solid rgba(226,232,240,.9);border-radius:16px;padding:12px;box-shadow:0 10px 30px rgba(67,56,202,.12);z-index:1}
#arch .atitle{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px}
#arch .al{border-radius:10px;padding:8px 10px;margin-bottom:6px;font-size:13px;font-weight:800;color:#0F172A;border-left:5px solid}
#arch .al small{display:block;font-weight:600;color:var(--muted);font-size:11px;margin-top:2px}
#arch .a-apps{background:#E0E7FF;border-color:#6366F1}
#arch .a-os{background:#D1FAE5;border-color:#10B981}
#arch .a-hw{background:#EDE9FE;border-color:#7C3AED}
#arch .a-w{background:#FFE4E6;border-color:#F43F5E}
#arch .abar{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:4px;font-size:11px}
#arch .abar span{background:#fff;border:1px solid #E2E8F0;border-radius:999px;padding:2px 7px;font-weight:700;color:#4338CA}
#arch .abar b{color:#0F172A;font-size:11px}
@media (max-width:1100px){#arch{display:none}}

/* compact header: give height to the desktop */
#hdr{padding:6px 14px;gap:10px;row-gap:4px}
#hdr .ht{display:flex;align-items:baseline;gap:12px;flex-wrap:nowrap;min-width:0}
#hdr h1{font-size:15px;white-space:nowrap}
#hdr .hq{margin:0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
#hdr .hd{display:none}
#hdr #more,#hdr #langsw button{padding-top:4px;padding-bottom:4px;font-size:12px}
#modelbar{margin-top:0}
#modelbar .mrow{padding:2px 9px;font-size:11.5px}
