: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}