.tabs a{text-decoration:none}
input[type=checkbox]{accent-color:var(--ac);width:16px;height:16px}
.fbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}
.crumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font:14px 'Spline Sans Mono',monospace;color:var(--mu)}
.crumbs a{cursor:pointer;color:var(--tx)}.crumbs a:hover{color:var(--ac)}
.ftab{background:var(--sf);border:1px solid var(--bd);border-radius:14px;overflow:hidden}
.frow{display:grid;grid-template-columns:28px minmax(0,1fr) 90px 160px auto;align-items:center;gap:12px;padding:8px 16px;border-top:1px solid var(--bd)}
.frow.hd{border-top:0;color:var(--mu);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.frow:not(.hd):hover{background:color-mix(in srgb,var(--ac) 6%,transparent)}
.fname{display:flex;align-items:center;gap:10px;cursor:pointer;min-width:0}
.fname span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fname .ic{color:var(--ac)}.fname.file .ic{color:var(--mu)}
.facts{display:flex;gap:2px;justify-content:flex-end}
.ib{width:32px;height:32px;display:inline-grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--mu);cursor:pointer}
.ib:hover{background:var(--bd);color:var(--tx)}.ib.del:hover{color:var(--er)}
.fm.drop .ftab{outline:2px dashed var(--ac);outline-offset:-2px}
.prog{display:none;height:6px;border-radius:99px;background:var(--bd);overflow:hidden;margin-bottom:12px}
.prog i{display:block;height:100%;width:0;background:var(--ac);transition:width .2s}
.edbar{display:flex;align-items:center;gap:12px;margin:14px 0}.edbar .sp{flex:1}
.edbar .pth{font:14px 'Spline Sans Mono',monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed{height:calc(100vh - 290px);min-height:360px;border:1px solid var(--bd);border-radius:14px;overflow:hidden}
.dlg{background:var(--sf);color:var(--tx);border:1px solid var(--bd);border-radius:14px;padding:24px;width:min(420px,calc(100% - 32px))}
.dlg::backdrop{background:#0009}.dlg h2{margin:0 0 12px;font-size:18px}
.dlg .inp{width:100%;margin:8px 0;padding:10px 12px;background:var(--bg);color:var(--tx);border:1px solid var(--bd);border-radius:10px;font:inherit}
.acts{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
@media(max-width:700px){.frow{grid-template-columns:28px minmax(0,1fr) auto}.frow .sz,.frow .mt{display:none}}
.inp{width:100%;padding:10px 12px;background:var(--bg);color:var(--tx);border:1px solid var(--bd);border-radius:10px;font:inherit}
.inp:focus{outline:2px solid var(--ac);outline-offset:1px}
.mono{font-family:'Spline Sans Mono',monospace;font-size:14px}
.sgrid{display:grid;grid-template-columns:220px 1fr;gap:16px}
.lbl{display:block;margin:14px 0 6px;color:var(--mu);font-size:14px}
.env{display:grid;grid-template-columns:1fr 1.6fr auto;gap:8px;margin-bottom:8px}
.okmsg{color:var(--ac);margin:12px 0 0}.okmsg:empty{display:none}
@media(max-width:700px){.sgrid,.env{grid-template-columns:1fr}}
.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.ro{margin:0;padding:14px 16px;background:var(--tm);border:1px solid var(--bd);border-radius:10px;color:var(--tt);font:13px/1.7 'Spline Sans Mono',monospace;white-space:pre-wrap;word-break:break-all}
.warn{margin:16px 0 0;padding:12px 14px;border:1px solid #e5b84b;border-radius:10px;color:#e5b84b;font-size:14px}
.log:empty::before{content:'Konsola jest pusta. Kliknij Start, aby uruchomić serwer.';color:#8fa39a}
.log .c-r{color:#ff7b7b}.log .c-g{color:#3ddc97}.log .c-y{color:#e5b84b}.log .c-b{color:#6aa9ff}
.log .c-m{color:#d28bff}.log .c-c{color:#4fd1d9}.log .c-w{color:#e9f0ed}.log .c-x{color:#8fa39a}.log .c-k{color:#6b7a73}.log .b1{font-weight:700}
.seg{justify-content:flex-start;margin:0 0 16px}.seg a{cursor:pointer;padding:6px 14px}
.chart svg{max-width:100%}
.tbl{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}
.tbl th{color:var(--mu);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:500}
.tbl th,.tbl td{text-align:left;padding:9px 10px;border-top:1px solid var(--bd)}.tbl thead th{border-top:0}
.tbl td{font-family:'Spline Sans Mono',monospace;font-size:13px}
.view>.card,.view>.g3{margin-bottom:20px}.g3 .card{margin:0}
.dlg.wide{width:min(560px,calc(100% - 32px));max-height:90vh;overflow:auto}
.chk{display:grid;gap:6px;max-height:170px;overflow:auto;padding:8px 12px;margin:4px 0 8px;border:1px solid var(--bd);border-radius:10px}
.chk1{display:flex;align-items:center;gap:10px;cursor:pointer;margin:4px 0}
.rrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:10px 0;border-top:1px solid var(--bd)}
.rf{display:flex;align-items:center;gap:6px;color:var(--mu);font-size:14px;white-space:nowrap}.rf .inp{width:84px;padding:6px 8px}
.c-bad{color:var(--er)}
.row .facts{flex:none}
.op{display:none;margin-bottom:12px}.op .prog{display:block;margin-top:6px}
.prog.ind i{width:35%;animation:indet 1.1s ease-in-out infinite}
@keyframes indet{0%{margin-left:-35%}100%{margin-left:100%}}
@media(prefers-reduced-motion:reduce){.prog.ind i{animation:none;width:100%;opacity:.5}}
.st-starting,.st-installing{color:#e5b84b}
.st-starting::before,.st-installing::before{animation:pulse 1s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.st-starting::before,.st-installing::before{animation:none}}

/* ---------- Admin: serwery, wygasanie, ekran blokady ---------- */
:root{--wa:#ff9f43;--yl:#e5b84b}:root[data-theme=light]{--wa:#b85f00;--yl:#8a6a00}
.btn.sm{padding:6px 12px;font-size:14px}
.subtabs{margin-bottom:16px}
.subtabs a{text-decoration:none}
.subtabs .cnt{min-width:22px;padding:0 7px;border-radius:99px;background:var(--bd);color:var(--tx);font-size:12px;line-height:20px;text-align:center}
.subtabs a.hot-orange .cnt{background:var(--wa);color:#1b1000}.subtabs a.hot-red .cnt{background:var(--er);color:#fff}
.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.toolbar .sp{flex:1}
.sbox{position:relative;flex:1 1 240px;max-width:340px}
.sbox .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--mu);pointer-events:none}
.sbox .inp{padding-left:38px}
.scard{padding:18px 20px;margin-bottom:14px;border-width:1px;transition:border-color .2s}
.scard.s-soon{border-color:color-mix(in srgb,var(--yl) 55%,var(--bd))}
.scard.s-expired,.card.srv.s-expired{border-color:var(--wa);box-shadow:0 0 0 1px var(--wa) inset}
.scard.s-overdue,.card.srv.s-overdue{border-color:var(--er);box-shadow:0 0 0 1px var(--er) inset}
.shead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.stitle{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:17px}
.sacts{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sacts .btn{padding:6px 12px;font-size:14px}
.smeta{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:10px;font-size:14px}
.smeta i{font-style:normal}
.snote{margin:10px 0 0;font-size:14px;padding-top:10px;border-top:1px dashed var(--bd)}
.tl.orange{color:var(--wa)}.tl.red{color:var(--er)}.tl.yellow{color:var(--yl)}
.tag.stg-soon{color:var(--yl);border-color:var(--yl)}.tag.stg-expired{color:var(--wa);border-color:var(--wa)}.tag.stg-overdue{color:var(--er);border-color:var(--er)}
.legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;color:var(--mu);font-size:14px}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.orange{background:var(--wa)}.dot.red{background:var(--er)}.legend .dot+*{margin-right:8px}
.qk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.sform .g2,.sform .g3{margin-bottom:2px}
.hint{color:var(--mu);font-size:12px}
.dlg.xl{width:min(780px,calc(100% - 32px))}
.dlg .acts .btn{padding:10px 18px}
/* ekran blokady wygasłego serwera */
.xwrap{position:relative;min-height:calc(100vh - 220px);border-radius:14px;overflow:hidden}
.xblur{filter:blur(7px) saturate(.6);opacity:.75;pointer-events:none;user-select:none;-webkit-user-select:none}
.xov{position:absolute;inset:0;z-index:5;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 24px;background:color-mix(in srgb,var(--bg) 55%,transparent);cursor:not-allowed}
.xbox{cursor:default;width:min(520px,100%);text-align:center;background:var(--sf);border:1px solid var(--wa);border-radius:16px;padding:32px 28px;box-shadow:0 20px 60px #0007}
.xbox h2{margin:12px 0 8px;font-size:24px}.xbox p{margin:8px 0}
.xico{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--wa) 18%,transparent);color:var(--wa)}
.xico svg{width:28px;height:28px}
.xtime{font:700 22px 'Spline Sans Mono',monospace;color:var(--wa)}
.xdate{color:var(--mu)}
.xbox a{color:var(--ac)}
.xadm{justify-content:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--bd);flex-wrap:wrap}
.xadm a.btn{text-decoration:none}
@media(prefers-reduced-motion:reduce){.scard{transition:none}}

.xacts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:18px 0 6px}
.xbox.sus{border-color:var(--er)}.xbox.sus .xico{background:color-mix(in srgb,var(--er) 18%,transparent);color:var(--er)}
