:root{--bg: #0b0d10;--panel:#141820;--muted:#8b95a7;--text:#e5e7eb;--accent:#60a5fa;--danger:#ef4444;--ok:#22c55e;--warn:#f59e0b;--card:#171b23;--card2:#0f1218;--border:#232837;--shadow:0 10px 30px rgba(0,0,0,.35);--board-alpha: .55;--card-alpha: .55;--vignette-alpha: .25;--header-mask-alpha: .25;--showcase-width: 28vw}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font:14px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:var(--text);background:var(--bg) fixed center/cover no-repeat;overflow:hidden}body.contrast .brand{text-shadow:0 2px 6px rgba(0,0,0,.35)}body.contrast .link-card a{text-shadow:0 1px 3px rgba(0,0,0,.35)}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(60% 60% at center,rgba(0,0,0,0) 40%,rgba(0,0,0,var(--vignette-alpha)) 100%);z-index:0}.app{min-height:100%;position:relative;z-index:1}header{padding:32px 20px 12px;text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;gap:6px}.header-mask{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,calc(var(--header-mask-alpha))) 0%,rgba(0,0,0,calc(var(--header-mask-alpha)*.6)) 45%,rgba(0,0,0,0) 100%);opacity:1;z-index:0}.header>*{position:relative;z-index:1}.brand{font-weight:800;font-size:28px;letter-spacing:.4px}.subtitle{margin-top:0;color:#000}body:not(.contrast) .subtitle{color:#000}body.contrast .subtitle{color:#fffc}.editable{position:relative;display:inline-flex;align-items:center;gap:10px;justify-content:center}.editable .text{pointer-events:none}.editable .edit-btn{border:1px solid var(--border);background:rgba(15,20,32,.75);color:var(--muted);border-radius:999px;padding:6px 14px;font-size:12px;cursor:pointer;opacity:0;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease}.editable:hover .edit-btn,.editable.editing .edit-btn,.editable:focus-within .edit-btn{opacity:1;transform:translateY(0)}.editable .edit-panel{position:absolute;left:50%;top:calc(100% + 12px);transform:translate(-50%);background:rgba(13,18,28,.92);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:var(--shadow);display:grid;gap:12px;min-width:min(360px,calc(100vw - 48px));z-index:40}.editable .edit-panel[hidden]{display:none}.editable input[type=text]{width:100%;background:rgba(12,17,26,.7);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:12px;outline:none}.editable input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 2px #60a5fa26}.editable .edit-actions{display:flex;justify-content:flex-end;gap:10px}.board{max-width:1180px;margin:0 auto 56px;padding:18px;border-radius:18px;box-shadow:var(--shadow);height:calc(100vh - 180px);overflow:auto}.grid{display:grid;grid-template-columns:minmax(260px,1fr) var(--showcase-width) minmax(260px,1fr);gap:18px;align-items:start}.col{max-height:100%;overflow:auto}.board,.col{scrollbar-width:none;-ms-overflow-style:none}.board::-webkit-scrollbar,.col::-webkit-scrollbar{display:none}.panel{background:rgba(20,24,32,var(--board-alpha));border:1px solid var(--border);border-radius:16px;-webkit-backdrop-filter:saturate(1.1) blur(6px);backdrop-filter:saturate(1.1) blur(6px);padding:16px}.col{display:grid;grid-template-columns:1fr;gap:8px}.link-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 10px;border:1px solid var(--border);border-radius:12px;background:rgba(15,20,32,var(--card-alpha));-webkit-backdrop-filter:saturate(1.2) blur(4px);backdrop-filter:saturate(1.2) blur(4px);height:var(--card-height, auto);min-height:var(--card-min-height, auto);width:100%;max-width:100%;box-sizing:border-box}.link-card>div:first-child{flex:1 1 auto;min-width:0;max-width:100%}.link-card a{color:#dbeafe;text-decoration:none;font-weight:600;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;line-height:1.3;font-size:var(--card-font,14px);flex:1 1 auto;min-width:0}.link-card a:hover{text-decoration:underline}.link-card small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.link-card{position:relative}.link-actions{display:flex;gap:8px;opacity:0;pointer-events:none;transition:opacity .15s ease;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.link-actions .btn .icon{width:16px;height:16px;display:block}.link-card:hover .link-actions{opacity:1;pointer-events:auto}@media (hover: none){.link-card:hover .link-actions{opacity:0;pointer-events:none}}.link-card.open .link-actions{opacity:1;pointer-events:auto}.link-card .link-actions{flex:none}.btn{padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:#141a29;color:var(--text);cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.btn:hover{filter:brightness(1.1)}.btn.icon-btn{width:36px;height:36px;min-width:36px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.btn.icon-btn .icon{width:18px;height:18px;display:block}.btn.danger{border-color:#2b0f14;background:#1b0d10;color:#fecaca}.btn.ghost{background:rgba(20,27,39,.7);color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.link{background:transparent;border:0;color:var(--accent);padding:0;font-size:12px;line-height:1;cursor:pointer}.btn.link:hover{text-decoration:underline}#btnOpenRegister{display:none!important}.tag{display:inline-block;padding:4px 8px;border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--muted);background:rgba(20,27,39,.7)}dialog{border:0;border-radius:14px;padding:0;background:rgba(14,18,26,.96);color:var(--text);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dlg-head{font-weight:700;padding:14px 16px;border-bottom:1px solid var(--border)}.dlg-body{padding:14px 16px;color:var(--text)}.dlg-foot{display:flex;gap:10px;justify-content:flex-end;padding:14px 16px;border-top:1px solid var(--border)}.dlg-foot .save{padding:8px 10px;border-radius:10px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}#btnSetBPass.icon-btn{width:36px;height:36px;min-width:36px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%)}#btnSetBPass.icon-btn .icon{width:18px;height:18px;display:block}#btnSetBPass.hidden{visibility:hidden}#btnSetBPass.lock-set{background:rgba(96,165,250,.14);border-color:#60a5fa80}.sw-update{position:fixed;left:20px;bottom:20px;z-index:60}.sw-update[hidden]{display:none}.sw-update__body{display:flex;align-items:center;gap:16px;padding:14px 20px;border-radius:14px;border:1px solid var(--border);background:rgba(14,18,26,.92);box-shadow:var(--shadow);-webkit-backdrop-filter:saturate(1.1) blur(6px);backdrop-filter:saturate(1.1) blur(6px)}.sw-update .msg{font-size:13px;color:var(--text)}.sw-update .actions{display:flex;align-items:center;gap:10px}dialog{border:1px solid var(--border);border-radius:18px;padding:0;background:rgba(15,20,32,var(--card-alpha));-webkit-backdrop-filter:saturate(1.2) blur(10px);backdrop-filter:saturate(1.2) blur(10px);color:var(--text);width:min(440px,calc(100vw - 56px));max-width:calc(100vw - 56px);max-height:calc(100vh - 80px);box-shadow:var(--shadow);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;display:none;flex-direction:column;overflow:hidden}dialog[open]{display:flex}dialog::backdrop{background:rgba(5,8,14,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}dialog .dlg-head{padding:20px 24px 16px;font-size:18px;font-weight:600;letter-spacing:.3px;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(13,18,28,.55)}dialog .dlg-body{padding:24px;display:grid;gap:14px;overflow-y:auto;max-height:calc(100vh - 220px)}dialog .dlg-foot{padding:16px 24px 24px;display:flex;justify-content:flex-end;gap:12px;border-top:1px solid rgba(255,255,255,.05);background:rgba(12,17,26,.5)}.dlg-row{display:flex;align-items:center;gap:12px}.dlg-row label{width:78px;color:var(--muted);text-align:right;font-size:13px}.dlg-row input{flex:1;background:rgba(12,17,26,.6);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;outline:none}.dlg-row input:disabled{opacity:.6;cursor:not-allowed}.dlg-row input.invalid{border-color:var(--danger);box-shadow:0 0 0 2px #ef444426}.pwd-wrap{position:relative;flex:1;display:flex;align-items:center}.pwd-wrap input{flex:1;padding-right:36px}.eye-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:transparent;width:28px;height:28px;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.eye-btn .icon{width:18px;height:18px;display:block}.eye-btn:focus{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.dlg-row input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #60a5fa26}dialog .hint{font-size:12px;color:var(--muted);line-height:1.5;padding:0 12px}dialog .hint.error{color:var(--danger)}dialog button.save,dialog button.btn{padding:10px 18px;border-radius:12px;border:0;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}dialog button.save:hover{filter:brightness(1.08)}dialog button.btn{display:inline-flex;align-items:center;justify-content:center;background:rgba(20,27,39,.85)}.showcase{display:flex;align-items:center;justify-content:center;min-height:520px}.showcase .badge{padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-weight:700}footer{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(12,17,26,0),rgba(12,17,26,.9));padding:16px}.footer-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:12px}.ab{display:flex;align-items:center;gap:12px;position:relative}.ab a{color:#93c5fd;text-decoration:none;font-weight:700}.ab .sep{opacity:.4}.tools{display:none}.ab a.active{color:#fff;position:relative}.ab a.active:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:#93c5fd;border-radius:2px}.top-actions{position:absolute;right:16px;top:12px;display:flex;gap:10px;align-items:center}.avatar{cursor:pointer;width:36px;height:36px;border-radius:999px;background:#1f2937;border:1px solid var(--border);display:none;align-items:center;justify-content:center;font-weight:700}.avatar.show{display:flex}.avatar{position:relative}.avatar[data-name]:hover:after{content:attr(data-name);position:absolute;right:0;top:calc(100% + 8px);max-width:150px;white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.4;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:rgba(14,18,26,.95);color:var(--text);box-shadow:var(--shadow);z-index:50}.avatar[data-name]:hover:before{content:"";position:absolute;right:10px;top:calc(100% + 2px);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid rgba(14,18,26,.95);filter:drop-shadow(0 -1px 0 var(--border));z-index:49}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.25);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:.2s opacity;z-index:30}.drawer{position:fixed;right:0;top:0;bottom:0;width:420px;max-width:92vw;background:rgba(20,24,32,.95);border-left:1px solid var(--border);transform:translate(100%);transition:transform .25s ease;z-index:31;display:flex;flex-direction:column;overflow:hidden}.drawer.open{transform:translate(0)}.drawer-mask.show{opacity:1;pointer-events:auto}.drawer .hd{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.drawer .bd{padding:14px 16px;display:grid;gap:14px;overflow-y:auto;overflow-x:hidden}.drawer .row{display:flex;align-items:center;gap:8px}.drawer .row label{width:120px;color:var(--muted);text-align:right}.drawer input[type=range]{flex:1}.preset-skins{display:flex;gap:10px;flex-wrap:wrap}.preset-thumb{width:72px;height:48px;border-radius:8px;border:1px solid var(--border);background-size:cover;background-position:center;cursor:pointer;position:relative;overflow:hidden}.preset-thumb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 0 2px #ffffff14;transition:box-shadow .15s ease}.preset-thumb:hover:after{box-shadow:inset 0 0 0 2px #60a5fa8c}.preset-thumb.active:after{box-shadow:inset 0 0 0 2px var(--accent)}.preset-thumb .thumb-delete{position:absolute;top:4px;right:4px;width:22px;height:22px;border:none;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-weight:700;line-height:22px;text-align:center;display:none;cursor:pointer;z-index:1}.preset-thumb:hover .thumb-delete{display:block}@media (hover: none) and (pointer: coarse){.preset-thumb .thumb-delete{display:block;background:rgba(0,0,0,.35)}}@media (hover: none){.editable .edit-btn{opacity:0;transform:translateY(4px);pointer-events:none}.sw-update{left:12px;bottom:12px;right:12px}.sw-update__body{flex-direction:column;align-items:flex-start;gap:12px}}@media (max-width: 980px){.grid{grid-template-columns:1fr}.showcase{display:none}}@media (max-width: 600px){.editable .edit-btn{display:none!important}.drawer{width:100vw;max-width:100vw}.sw-update{left:12px;right:12px}.sw-update__body{flex-direction:column;align-items:flex-start;gap:12px}}
