:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f4f4f5;--border: #e4e4e7;--border-strong: #d4d4d8;--text: #18181b;--text-2: #52525b;--text-3: #71717a;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-soft: #e8efff;--danger: #b91c1c;--danger-soft: #fef2f2;--ok: #15803d;--ok-soft: #ecfdf3;--warn: #b45309;--warn-soft: #fffbeb;--radius: 10px;--shadow-1: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--shadow-2: 0 4px 16px rgba(16, 24, 40, .12), 0 1px 3px rgba(16, 24, 40, .08);font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);font-size:14px}h1,h2,h3{margin:0;letter-spacing:-.01em}h2{font-size:22px}h3{font-size:15px;margin-bottom:12px}a{color:var(--accent)}code{background:var(--surface-2);padding:1px 5px;border-radius:4px}button{font:inherit;color:var(--text);cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;padding:7px 12px;line-height:1.2;transition:background .12s,border-color .12s,color .12s}button:hover{background:var(--surface-2)}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}button.primary:hover{background:var(--accent-strong)}button.danger{color:var(--danger)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font:inherit;color:var(--text);padding:9px 11px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface)}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.muted{color:var(--text-3);font-size:13px}.error{color:var(--danger);background:var(--danger-soft);padding:8px 12px;border-radius:8px;font-size:13px}.info{color:var(--text-2);background:var(--accent-soft);padding:8px 12px;border-radius:8px;font-size:13px;margin:0 0 12px}.badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong)}.pill{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-2)}.pill.registriert{background:var(--ok-soft);color:var(--ok)}.pill.offen{background:var(--warn-soft);color:var(--warn)}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:var(--shadow-1)}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.row input{flex:1;min-width:220px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:600;color:var(--text-3);font-size:12px;text-transform:uppercase;letter-spacing:.03em}th,td{padding:9px 8px;border-bottom:1px solid var(--border)}tr:last-child td{border-bottom:none}.linkbox{display:flex;gap:8px;margin:0 0 12px}.linkbox input{flex:1;font-size:12px;background:var(--surface-2)}.linkbtn{border:none;background:none;padding:0;color:var(--accent);text-align:left}.linkbtn:hover{text-decoration:underline;background:none}.brand{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:15px;border:none;background:none;padding:4px 6px}button.brand:hover{background:var(--surface-2)}.logo{width:24px;height:24px;border-radius:7px;flex:none;background:linear-gradient(135deg,transparent 50%,rgba(0,0,0,.12) 50%) right bottom / 9px 9px no-repeat,linear-gradient(135deg,#fde047,#f59e0b);box-shadow:inset 0 0 0 1px #0000000f}.appframe{display:flex;flex-direction:column;height:100%}.nav{display:flex;align-items:center;gap:18px;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex:none}.navlinks{display:flex;gap:4px}.navlinks a{text-decoration:none;color:var(--text-2);padding:7px 12px;border-radius:8px;font-weight:500}.navlinks a:hover{background:var(--surface-2);color:var(--text)}.navlinks a[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong)}.userbar{margin-left:auto;display:flex;align-items:center;gap:10px}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px}.username{font-weight:500}.page{flex:1;overflow:auto;width:100%;max-width:1080px;margin:0 auto;padding:28px 20px 40px}.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}.pagehead p{margin:4px 0 0}.pagehead .row{margin:0}.boardpage{flex:1;min-height:0}.boardpage .shell{height:100%}.auth{max-width:400px;margin:9vh auto;padding:0 16px}.auth h1{font-size:20px;text-align:center;margin-bottom:18px;display:flex;justify-content:center;align-items:center;gap:10px}.auth h1:before{content:"";width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#fde047,#f59e0b)}.auth h2{margin-bottom:16px;font-size:18px}.field{display:block;margin-bottom:14px}.field span{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:var(--text-2)}.field input{width:100%}.auth button.primary{width:100%;padding:10px;margin-top:4px}.boardgrid{list-style:none;margin:0;padding:0;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.boardcard{display:flex;flex-direction:column;gap:4px;padding:12px 12px 14px;text-decoration:none;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-1);transition:transform .12s,box-shadow .12s}.boardcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.boardthumb{height:110px;border-radius:10px;margin-bottom:8px;position:relative;background:radial-gradient(circle,#d4d4d8 1px,transparent 1px) 0 0 / 14px 14px,var(--bg);overflow:hidden}.boardthumb i{position:absolute;width:38px;height:38px;box-shadow:0 2px 4px #0000001f}.boardthumb i:nth-child(1){left:22%;top:22%;transform:rotate(-4deg)}.boardthumb i:nth-child(2){left:48%;top:36%;transform:rotate(3deg)}.boardthumb i:nth-child(3){left:70%;top:18%}.empty{text-align:center;padding:40px 20px}.dashboard .row h2{margin-right:12px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px}.tile ol{margin:0;padding:0;list-style:none}.tile li{display:flex;align-items:baseline;gap:8px;padding:8px 0;border-bottom:1px solid var(--surface-2)}.tile li:last-child{border-bottom:none}.tile .rank{color:var(--text-3);width:22px;font-variant-numeric:tabular-nums}.tile .score{margin-left:auto;color:var(--text-2);font-size:12px;white-space:nowrap}.shell{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.hint{font-size:12px;color:var(--text-3);margin-left:auto}.notice{margin:0;padding:8px 16px;background:var(--warn-soft);color:#78350f;border-bottom:1px solid #fde68a;font-size:13px;display:flex;align-items:center;gap:12px}.notice button{padding:3px 10px;font-size:12px}.stage{position:relative;flex:1;min-height:0;overflow:hidden}.canvas-host{position:absolute;top:0;right:0;bottom:0;left:0}.loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;background:var(--surface);padding:10px 16px;border-radius:var(--radius);box-shadow:var(--shadow-2)}.boardname{position:absolute;left:16px;top:12px;z-index:2;background:var(--surface);padding:7px 14px;border-radius:var(--radius);box-shadow:var(--shadow-2);font-weight:600}.toolbar{position:absolute;left:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;padding:6px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2);z-index:2}.toolwrap{display:contents}.toolsep{width:24px;height:1px;background:var(--border);margin:5px 0}.toolbar .tool{width:40px;height:40px;padding:0;display:grid;place-items:center;border:none;background:transparent;color:#3f3f46;border-radius:8px}.toolbar .tool:hover{background:var(--surface-2)}.toolbar .tool[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong)}.toolbar .tool[draggable=true]{cursor:grab}.colorbar{position:absolute;left:50%;top:12px;transform:translate(-50%);display:flex;gap:6px;padding:7px 12px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2);z-index:2;align-items:center;font-size:12px;color:var(--text-2)}.swatch{width:22px;height:22px;padding:0;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--border-strong)}.swatch:hover{transform:scale(1.1)}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--accent)}.contextbar{position:absolute;transform:translate(-50%);z-index:3;display:flex;align-items:center;gap:2px;padding:4px;background:#18181b;border-radius:10px;box-shadow:var(--shadow-2)}.contextbar>button{border:none;background:transparent;color:#f4f4f5;width:34px;height:34px;padding:0;display:grid;place-items:center;border-radius:7px}.contextbar>button:hover{background:#3f3f46}.contextbar>button.danger{color:#fca5a5}.contextbar .divider{width:1px;height:20px;background:#3f3f46;margin:0 3px}.contextbar .dot{width:18px;height:18px;border-radius:50%;box-shadow:0 0 0 2px #52525b}.contextbar .swatches{position:absolute;top:calc(100% + 6px);left:0;display:flex;gap:6px;padding:8px;background:var(--surface);border-radius:10px;box-shadow:var(--shadow-2)}.bottombar{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;gap:2px;padding:4px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2);z-index:2;font-size:13px}.bottombar button{border:none;background:transparent;min-width:32px;height:32px;padding:0 8px;display:grid;place-items:center;border-radius:7px;color:#3f3f46}.bottombar button:hover{background:var(--surface-2)}.bottombar .zoomlevel{min-width:56px;font-variant-numeric:tabular-nums}.bottombar .divider{width:1px;height:18px;background:var(--border);margin:0 4px}.stats{color:var(--text-3);padding:0 8px;font-variant-numeric:tabular-nums;font-size:12px}.emptyhint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;max-width:380px;text-align:center;display:flex;flex-direction:column;gap:6px;color:var(--text-2);pointer-events:none}.emptyhint strong{color:var(--text);font-size:16px}.ratingpanel{position:absolute;right:16px;top:12px;z-index:2;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2);padding:12px 14px;width:250px}.ratingpanel p{margin:6px 0 0}.stars{display:flex;gap:2px;margin-top:6px}.star{font-size:24px;line-height:1;padding:2px 4px;border:none;background:none;color:var(--border-strong)}.star.on{color:#f59e0b}.star:hover:not(:disabled){color:#f59e0b;background:none}.helppanel{position:absolute;right:16px;bottom:68px;z-index:4;width:380px;max-height:70%;overflow:auto;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2);padding:14px 16px}.helphead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.helphead button{border:none;font-size:18px;padding:0 6px}.helppanel dl{margin:0}.helppanel dl div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid var(--surface-2)}.helppanel dt{font-family:ui-monospace,Cascadia Code,monospace;font-size:12px;color:var(--text)}.helppanel dd{margin:0;color:var(--text-2);text-align:right}@media (max-width: 720px){.nav{gap:8px;flex-wrap:wrap}.username,.hint{display:none}.colorbar{left:72px;transform:none}}.pill.eingeladen{background:var(--accent-soft);color:var(--accent-strong)}td.actions{white-space:nowrap;text-align:right}td.actions button{padding:4px 10px;font-size:12px;margin-left:4px}tr.removed td{color:var(--text-3)}.templatepanel{position:absolute;left:72px;top:12px;bottom:76px;width:280px;z-index:3;display:flex;flex-direction:column;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2)}.templatehead{display:flex;justify-content:space-between;align-items:flex-start;padding:14px 14px 10px;border-bottom:1px solid var(--border)}.templatehead div{display:flex;flex-direction:column;gap:2px}.templatehead button{border:none;font-size:18px;padding:0 6px}.templatelist{list-style:none;margin:0;padding:10px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.templatecard{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:grab}.templatecard:hover{border-color:var(--accent);background:var(--surface);box-shadow:var(--shadow-1)}.templatecard:active{cursor:grabbing}.templatepreview{width:100%;height:110px;border-radius:7px;background:radial-gradient(circle,#d4d4d8 1px,transparent 1px) 0 0 / 12px 12px,var(--bg);margin-bottom:4px}.templatepreview svg{width:100%;height:100%;display:block}.templatecard .muted{font-size:12px}.contextbar .ownerlabel{display:inline-flex;align-items:center;gap:5px;color:#d4d4d8;font-size:12px;padding:0 6px 0 4px;white-space:nowrap}.contextbar>button.textbtn{width:auto;padding:0 10px;font-size:12px;font-weight:600;white-space:nowrap}.navlinks a{display:inline-flex;align-items:center;gap:6px}.navcount{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;display:inline-grid;place-items:center}.reqlist{list-style:none;margin:8px 0 0;padding:0}.reqitem{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.reqitem:last-child{border-bottom:none}.reqlist.compact .reqitem{padding:6px 0;font-size:13px}.reqmain{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.reqmain .linkbtn{font-weight:600;font-size:14px}.reqreason{font-size:13px;color:var(--text-2);font-style:italic}.reqside{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tally{font-size:13px;color:var(--text-2)}.tally .yes{color:var(--danger)}.tally .no{color:var(--ok)}.votebtns{display:inline-flex;gap:6px}.votebtns button[aria-pressed=true]{outline:2px solid currentColor;outline-offset:1px;font-weight:700}.card h4{margin:16px 0 4px;font-size:13px;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em}.presencebar{position:absolute;right:16px;top:12px;z-index:3;display:flex;align-items:center;gap:8px;padding:5px 6px 5px 10px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2)}.livedot{width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.livedot.on{background:#16a34a;box-shadow:0 0 0 3px #16a34a2e}.avatars{display:flex}.avatars .avatar{width:28px;height:28px;font-size:11px;border:2px solid var(--surface);margin-left:-6px}.avatars .avatar:first-child{margin-left:0}.avatars .avatar.more{background:var(--surface-2);color:var(--text-2)}.onlinecount{font-size:12px;color:var(--text-2);white-space:nowrap}.presencebar button{border:none;background:var(--surface-2);padding:6px 10px;font-size:12px;font-weight:600}.presencebar button.on{background:var(--accent-soft);color:var(--accent-strong)}.ratingpanel{top:64px}.activitypanel{position:absolute;right:16px;top:64px;bottom:76px;width:320px;z-index:3;display:flex;flex-direction:column;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2)}.activitylist{list-style:none;margin:0;padding:6px 14px 12px;overflow-y:auto}.activitylist li{padding:8px 0;border-bottom:1px solid var(--surface-2);font-size:13px;line-height:1.4}.activitylist .who{font-weight:600}.activitylist .what{color:var(--text-2)}.activitylist .when{display:block;font-size:11px;color:var(--text-3);margin-top:2px}.activityempty{padding:14px}.searchpanel,.tageditor{position:absolute;right:16px;top:64px;bottom:76px;width:340px;z-index:4;display:flex;flex-direction:column;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2)}.tageditor{bottom:auto;max-height:calc(100% - 140px)}.searchform{display:flex;flex-direction:column;gap:8px;padding:12px 14px;overflow-y:auto}.searchform input[type=search],.searchform select{width:100%}.searchform .check{font-size:13px;color:var(--text-2);display:flex;gap:6px;align-items:center}.labelfilter summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--text-2);padding:4px 0}.labelgroup{margin-top:6px}.labelgroup .groupname{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.chip{padding:3px 9px;font-size:12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border)}.chip[aria-pressed=true]{color:#fff}.searchresults{flex:1;overflow-y:auto;padding:0 14px 12px;border-top:1px solid var(--border)}.searchresults ul{list-style:none;margin:0;padding:0}.searchresults .hit{width:100%;text-align:left;border:none;border-bottom:1px solid var(--surface-2);border-radius:0;padding:8px 2px;display:flex;flex-direction:column;gap:2px;background:none}.searchresults .hit:hover:not(:disabled){background:var(--surface-2)}.hittitle{font-weight:600;font-size:13px}.hitmeta{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:5px}.catdot{width:8px;height:8px;border-radius:50%;display:inline-block}.bottombar button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong)}.filters{display:flex;flex-wrap:wrap;gap:12px;padding:14px 16px}.filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--text-2)}.filters select{min-width:180px}.sectiontitle{margin:22px 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}.idealist{display:flex;flex-direction:column;gap:10px}.idealist-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.idealist-head input{flex:1;min-width:180px}.idealist-head .muted{margin-left:auto;font-size:12px}.idealist ol{margin:0;padding:0;list-style:none}.idealist ol.scroll{max-height:740px;overflow-y:auto;padding-right:4px}.idealist li{display:flex;align-items:baseline;gap:8px;padding:8px 0;border-bottom:1px solid var(--surface-2);min-width:0}.idealist li:last-child{border-bottom:none}.idealist li .linkbtn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.idealist li .score{margin-left:auto;color:var(--text-2);font-size:12px;white-space:nowrap}.idealist .small{font-size:11px}.catbadge{font-size:10px;font-weight:700;color:#fff;padding:1px 7px;border-radius:999px;white-space:nowrap}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;padding:8px 12px;font-weight:600;color:var(--text-2)}.tabs button[aria-selected=true]{color:var(--accent-strong);border-bottom-color:var(--accent)}.taxonomy .reclass{display:flex;justify-content:space-between;align-items:center;gap:16px}.taxonomy .reclass.dirty{background:var(--warn-soft);border-color:#fde68a}.taxonomy .reclass h3{margin-bottom:4px}.taxonomy .reclass p{margin:0}.previewresult p{margin:4px 0 8px}.cathead{display:flex;align-items:center;gap:8px;margin-bottom:10px}.cathead input[type=color]{width:36px;height:32px;padding:2px}.cathead .catname{font-weight:700;font-size:15px;min-width:220px}.cathead .spacer{flex:1}.labellist{list-style:none;margin:0 0 10px;padding:0}.labellist li{padding:10px 0;border-bottom:1px solid var(--surface-2)}.labelhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.labelhead .labelname{font-weight:600;min-width:180px}.labelhead .weight{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-2)}.labelhead .weight input{width:70px;padding:5px 7px}.labelhead select{padding:5px 8px;font-size:13px}button.small{padding:4px 9px;font-size:12px}.chip.keyword{display:inline-flex;align-items:center;gap:4px;padding-right:4px}.chip.keyword button{border:none;background:none;padding:0 3px;font-size:13px;line-height:1;color:var(--text-3)}.chip.keyword button:hover{color:var(--danger)}.kwinput{padding:3px 9px;font-size:12px;border-radius:999px;min-width:230px}.contextbar .aa{font-weight:700;font-size:14px;letter-spacing:-.02em}.formatpanel{position:absolute;top:calc(100% + 6px);left:0;z-index:5;display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--surface);border-radius:10px;box-shadow:var(--shadow-2);min-width:330px;color:var(--text)}.fmtrow{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.fmtrow select{padding:5px 8px;font-size:13px}.fmtrow button{min-width:32px;height:32px;padding:0 8px;display:inline-grid;place-items:center;font-size:13px}.fmtrow button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.fmtrow button.wide{flex:1}.fmtrow label{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);margin-right:8px}.fmtsep{width:1px;height:22px;background:var(--border);margin:0 4px}.fmthint{margin:0;font-size:11px}@media (max-width: 720px){.formatpanel{position:fixed;left:12px;right:12px;top:auto;bottom:76px;min-width:0;max-height:60vh;overflow-y:auto}.contextbar{max-width:calc(100vw - 24px);overflow-x:auto}.searchpanel,.tageditor,.activitypanel,.templatepanel{left:12px;right:12px;width:auto}}.shapesearch{padding:10px 12px 4px}.shapesearch input{width:100%}.shapegroups{overflow-y:auto;padding:4px 8px 12px}.shapegrouphead{width:100%;display:flex;justify-content:space-between;align-items:center;border:none;background:none;padding:10px 6px;font-weight:700;font-size:13px;border-radius:8px}.shapegrouphead:hover{background:var(--surface-2)}.shapegrid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:2px 4px 8px}.shapegrid+.muted{padding:8px}.shapebtn{display:grid;place-items:center;height:46px;padding:0;border:1px solid transparent;border-radius:8px;background:none;cursor:grab}.shapebtn:hover{background:var(--surface-2);border-color:var(--border)}.shapebtn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.framemenu{position:absolute;left:68px;top:50%;transform:translateY(-50%);z-index:4;width:252px;padding:8px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:4px}.framegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding-bottom:6px;border-bottom:1px solid var(--border)}.framegrid button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border:1px solid transparent;border-radius:8px;background:none;font-size:11px;color:#3f3f46}.framegrid button:hover{background:var(--surface-2)}.framegrid button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.framepresent{margin-top:4px;padding:8px 10px;border-radius:8px;font-weight:600;font-size:13px;text-align:left}.presenting .toolbar,.presenting .bottombar,.presenting .boardname,.presenting .presencebar,.presenting .contextbar,.presenting .templatepanel,.presenting .framemenu,.presenting .colorbar,.presenting .emptyhint,.presenting .ratingpanel,.presenting .reactionbar{display:none!important}.presentation{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;cursor:pointer}.presentbar{position:absolute;left:50%;bottom:18px;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:4px;background:#18181bd9;color:#fafafa;border-radius:12px;cursor:default;opacity:.35;transition:opacity .2s}.presentbar:hover,.presentbar:focus-within{opacity:1}.presentbar button{border:none;background:transparent;color:inherit;min-width:34px;height:32px;font-size:20px;line-height:1;border-radius:8px}.presentbar button:hover:not(:disabled){background:#ffffff1f}.presentbar button:disabled{opacity:.35}.presentpos{font-size:13px;padding:0 8px;white-space:nowrap;max-width:50vw;overflow:hidden;text-overflow:ellipsis}.presenting .searchpanel,.presenting .activitypanel,.presenting .helppanel,.presenting .tageditor,.presenting .notice,.presenting .topbar{display:none!important}.ctxmenu{position:fixed;z-index:30;min-width:250px;padding:6px;background:var(--surface);border-radius:10px;box-shadow:var(--shadow-2);border:1px solid var(--border);display:flex;flex-direction:column}.ctxmenu button{display:flex;align-items:center;gap:8px;width:100%;border:none;background:none;padding:7px 10px;border-radius:6px;font-size:13px;text-align:left;color:var(--text)}.ctxmenu button:hover:not(:disabled),.ctxmenu button:focus-visible{background:var(--surface-2);outline:none}.ctxmenu button:disabled{color:var(--text-3)}.ctxmenu button.danger{color:var(--danger)}.ctxmenu .ctxlabel{flex:1}.ctxmenu kbd{font:inherit;font-size:12px;color:var(--text-3)}.ctxmenu hr{border:none;border-top:1px solid var(--border);margin:4px 2px}.ctxmenu .ctxemojis{display:flex;justify-content:space-between;gap:2px;padding:2px 2px 6px;border-bottom:1px solid var(--border);margin-bottom:4px}.ctxmenu .ctxemojis button{width:34px;height:34px;padding:0;justify-content:center;font-size:20px}.reactionbar{position:absolute;right:16px;bottom:64px;z-index:3;display:flex;gap:2px;padding:6px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-2)}.reactionbar button{width:40px;height:40px;padding:0;border:none;background:none;border-radius:10px;font-size:24px;line-height:1;transition:transform .1s}.reactionbar button:hover{background:var(--surface-2);transform:scale(1.12)}.reactionbar button:active{transform:scale(.92)}.contextbar .emojirow button{width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:8px;background:none;font-size:18px;line-height:1}.contextbar .emojirow button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.ctxmenu .ctxemojis button[aria-pressed=true]{background:var(--accent-soft)}.flylayer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40;overflow:hidden}.fly{position:absolute;transform:translate(-50%,-50%);font-size:34px;line-height:1;display:flex;flex-direction:column;align-items:center;animation:flyup 2.2s ease-out forwards}.fly small{font-size:11px;font-weight:600;color:#fff;background:#18181bbf;border-radius:6px;padding:1px 6px;margin-top:2px;white-space:nowrap}@keyframes flyup{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}12%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}to{opacity:0;transform:translate(calc(-50% + 18px),-260%) scale(1)}}@media (prefers-reduced-motion: reduce){.fly{animation-duration:1.2s}}.framelistitems{list-style:none;margin:0;padding:8px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.framelistitems li{display:flex;align-items:stretch;gap:4px}.framejump{flex:1;min-width:0;display:grid;grid-template-columns:26px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;text-align:left;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.framejump:hover{border-color:var(--accent)}.framenum{grid-row:span 2;width:26px;height:26px;display:grid;place-items:center;border-radius:6px;background:var(--surface-2);font-weight:700;font-size:12px}.frametitle{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.framejump .muted{font-size:11px}.frameplay{width:34px;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:12px;color:var(--accent)}.frameplay:hover{background:var(--accent-soft);border-color:var(--accent)}.framelisthint{font-size:11px;padding:0 12px 12px;margin:0}.ctxmenu .ctxrow{display:flex;align-items:center;gap:1px;padding:2px 4px 2px 10px}.ctxmenu .ctxrowtitle{flex:1;font-size:13px}.ctxmenu .ctxrow button{width:30px;height:30px;padding:0;justify-content:center;color:#3f3f46}.aiwarn{background:var(--warn-soft);border:1px solid #fde68a;border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:13px;color:#78350f}.aiwarn ul{margin:6px 0 8px;padding-left:18px}label.check{display:inline-flex;gap:6px;align-items:center;font-size:13px}.notice.warn{border-radius:10px;border:1px solid #fde68a;margin-bottom:12px}.freshtoken{margin-top:8px;padding:12px;border:2px solid var(--accent);border-radius:10px;background:var(--accent-soft);display:flex;flex-direction:column;gap:8px;align-items:flex-start}.freshtoken .copyblock{width:100%}.copyblock{border:1px solid var(--border);border-radius:8px;margin:8px 0;overflow:hidden;background:var(--surface)}.copyhead{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--surface-2);font-size:12px;font-weight:600;color:var(--text-2)}.copyblock pre{margin:0;padding:10px;font-size:12px;white-space:pre-wrap;word-break:break-all}.tokentable{width:100%;border-collapse:collapse;font-size:13px}.tokentable th,.tokentable td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.tokentable td.actions{text-align:right}.tokentable tr.removed td{color:var(--text-3)}.card .tokentable{display:block;overflow-x:auto}
