@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg: #ffffff;--bg-2: #f6f7f9;--surface: #ffffff;--surface-2: #f3f4f6;--border: #e6e8ec;--border-strong: #cfd3da;--text: #111418;--text-2: #3f4650;--muted: #6b7280;--muted-soft: #9aa1ab;--primary: #1062CE;--primary-hover: #0d55b4;--primary-soft: #eaf1fc;--primary-2: #3976F3;--accent: #F2B739;--accent-soft: #fdf3da;--ok: #1a8f57;--ok-soft: #e6f5ec;--warn: #a8690f;--warn-soft: #fdf3da;--danger: #c62f27;--danger-soft: #fdecea;--r: 10px;--r-lg: 14px;--ctl-h: 44px;--ctl-h-sm: 36px;--content-max: 1120px;--page-x: 32px;--tabbar-h: 60px;--dark-bar: #15171b;--dark-border: #2a2e35;--dark-text: #d9dde3;--dark-muted: #8a919c;--fs-h1: 26px;--fs-h2: 17px;--fs-body: 15px;--fs-sm: 14px;--fs-xs: 12.5px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--bg-2);color:var(--text);font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}a{color:var(--primary);text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.015em;color:var(--text)}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:16px}p{margin:0 0 10px}.muted{color:var(--muted);font-size:var(--fs-sm)}.err{color:var(--danger);font-size:var(--fs-sm);min-height:1.3em;margin:4px 0 0}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:var(--surface-2);padding:1px 5px;border-radius:5px}button,.btn{height:var(--ctl-h);display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:var(--fs-sm);font-weight:600;padding:0 18px;white-space:nowrap;border-radius:var(--r);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,color .12s}button.primary,.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.ghost,.btn.ghost{border-color:transparent;background:transparent;color:var(--primary)}button.danger{color:var(--danger)}button.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}button.sm,.btn.sm{height:var(--ctl-h-sm);padding:0 12px;font-size:var(--fs-xs)}button.block{width:100%}button:disabled{opacity:.45;cursor:default}@media (hover: hover){button:hover:not(:disabled),.btn:hover{border-color:#b8bec8;background:var(--surface-2)}button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button.ghost:hover:not(:disabled){background:var(--primary-soft);border-color:transparent}button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:#e9b1ac}}.chip{height:32px;padding:0 11px;font-size:var(--fs-xs);font-weight:500;border-radius:8px}.chip.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.chip-row{display:flex;gap:6px;flex-wrap:wrap}input,select,textarea{font:inherit;font-size:var(--fs-body);color:var(--text);background:transparent;border:0;border-bottom:1.5px solid var(--border-strong);border-radius:0;padding:0 2px;height:var(--ctl-h);width:100%;transition:border-color .12s}select{padding-right:26px;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="%236b7280" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>') no-repeat right 4px center}textarea{height:auto;min-height:110px;padding:10px 2px;resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--primary)}input[type=checkbox]{height:18px;width:18px;accent-color:var(--primary);cursor:pointer;padding:0;border:0}input[type=date]{max-width:220px}::placeholder{color:var(--muted-soft)}button:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}label.field{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-xs);font-weight:500;color:var(--muted);flex:0 0 auto;min-width:160px;max-width:320px}.row>label.field{flex:1 1 200px}.row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}.row>button{flex:0 0 auto}.filepick{position:relative;display:flex;align-items:center;gap:12px;height:var(--ctl-h)}.filepick input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;cursor:pointer;z-index:1}.filepick .btn{flex-shrink:0;pointer-events:none}.filepick .names{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topnav{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;padding-top:env(safe-area-inset-top,0px)}.topnav-inner{max-width:var(--content-max);margin:0 auto;padding:0 var(--page-x);height:64px;display:flex;align-items:center;gap:6px}.topnav .brand{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;letter-spacing:-.02em;margin-right:22px;color:var(--text)}.topnav .brand img{height:32px;width:auto}.topnav .brand .sub{font-weight:500;color:var(--muted);font-size:var(--fs-sm)}.topnav a.navlink{color:var(--muted);font-size:var(--fs-sm);font-weight:500;padding:9px 12px;border-radius:8px}.topnav a.navlink.active{color:var(--text);font-weight:600}@media (hover: hover){.topnav a.navlink:hover{background:var(--surface-2);color:var(--text)}}.topnav .spacer{flex:1}.topnav .avatar{width:34px;height:34px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:12.5px;display:inline-flex;align-items:center;justify-content:center;margin-left:6px}.topnav .avatar.active{box-shadow:0 0 0 2px var(--primary)}.topnav button.logout{margin-left:8px}.tabbar{display:none}.page-wrap{max-width:var(--content-max);margin:0 auto;padding:28px var(--page-x) 80px;display:flex;flex-direction:column;gap:24px}.page-wrap.narrow{max-width:760px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px 26px}.card>h2{margin-bottom:4px}.card>.muted{margin-bottom:16px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head a,.section-head button.ghost{font-size:var(--fs-sm);font-weight:600;display:inline-flex;align-items:center;gap:4px;height:auto;padding:0}table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}th{text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--border)}td{padding:12px;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:0}tr.clickable{cursor:pointer}@media (hover: hover){tr.clickable:hover td{background:var(--surface-2)}}td.actions{text-align:right;white-space:nowrap}td.actions>*+*{margin-left:6px}td.actions select{width:auto;display:inline-block}.table-scroll{overflow-x:auto;margin:0 -4px}tr.folder-row td{background:var(--surface-2)}.folder-name{font-weight:600}.book-title-cell{padding-left:28px}.badge{display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:6px;background:var(--surface-2);color:var(--muted);white-space:nowrap}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--primary-soft);color:var(--primary)}.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;font-size:var(--fs-sm);margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0}.linkbox{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--surface-2);border-radius:8px;padding:10px 12px;word-break:break-all}.invitebox{margin-top:10px}.invitebox .muted{margin:0 0 6px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border)}.tab{height:42px;padding:0 14px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-weight:500}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}@media (hover: hover){.tab:hover{background:transparent;color:var(--text)}}.tab .n{margin-left:6px;font-size:11px;background:var(--surface-2);border-radius:6px;padding:2px 6px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px}.stat .v{font-size:24px;font-weight:700;letter-spacing:-.02em}.stat .l{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}.stat.warn .v{color:var(--warn)}.notice{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.notice .nic{width:38px;height:38px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.notice.warn .nic{background:var(--warn-soft);color:var(--warn)}.notice.bad .nic{background:var(--danger-soft);color:var(--danger)}.notice>div:not(.nic):not(.acts){flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.notice b{font-size:var(--fs-body)}.notice span{font-size:var(--fs-sm);color:var(--text-2);line-height:1.5}.notice em{font-style:normal;font-size:var(--fs-xs);color:var(--muted-soft)}.notice .acts{display:flex;gap:6px;flex-shrink:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11141866;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--surface);border-radius:var(--r-lg);padding:24px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:12px}.modal-msg{color:var(--text-2);font-size:var(--fs-sm);margin:0;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:#15171b;color:#fff;padding:11px 16px 11px 14px;border-radius:12px;font-size:var(--fs-sm);z-index:220;display:flex;align-items:center;gap:10px;box-shadow:0 10px 30px #00000040;animation:toastIn .18s ease-out;max-width:calc(100vw - 32px)}.toast.ok svg{color:#6fcf97;flex-shrink:0}.toast.error svg{color:#ff8a80;flex-shrink:0}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11141866;z-index:90}.drawer{position:fixed;top:0;right:0;bottom:0;width:520px;max-width:100%;background:var(--surface);z-index:95;display:flex;flex-direction:column}.drawer-head{display:flex;align-items:center;gap:12px;padding:calc(18px + env(safe-area-inset-top,0px)) 22px 18px;border-bottom:1px solid var(--border)}.drawer-head h3{flex:1}.drawer-body{padding:18px 22px 40px;overflow-y:auto;display:flex;flex-direction:column;gap:22px}.drawer-body h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.ent{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px}.ent .t{flex:1 1 180px}.ent .acts{display:flex;gap:4px;flex-shrink:0}.ent .badge{flex-shrink:0}@media (max-width: 480px){.ent .acts{width:100%}}.ent .t{flex:1;min-width:0}.ent .t b{display:block;font-size:var(--fs-sm)}.ent .t span{font-size:var(--fs-xs);color:var(--muted)}.ent.revoked{opacity:.55}.iconbtn{width:40px;height:40px;padding:0;border-radius:10px}@keyframes sk{0%{background-position:100% 0}to{background-position:-100% 0}}.sk{display:block;background:linear-gradient(90deg,#eceef1 25%,#f5f6f8,#eceef1 55%);background-size:300% 100%;animation:sk 1.4s ease-in-out infinite;border-radius:8px}.sk.line{height:13px;margin:7px 0;width:100%}.sk.line.xl{height:26px;margin:10px 0}.sk.line.short{width:55%}.sk.block{width:100%;height:60px;border-radius:var(--r-lg)}.sk.fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:4px}.sk.row{height:44px;margin:6px 0}.sk.cover{aspect-ratio:1 / 1.414;width:100%;border-radius:8px}.auth{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--surface)}.auth-visual{position:relative;overflow:hidden;background:var(--primary)}.auth-visual img{width:100%;height:100%;object-fit:cover;display:block}.auth-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#1062ce00 35%,#1062ced1)}.auth-visual .caption{position:absolute;left:44px;right:44px;bottom:44px;z-index:1;color:#fff}.auth-visual .caption h2{color:#fff;font-size:26px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}.auth-visual .caption p{color:#ffffffd9;font-size:var(--fs-sm);margin:0;max-width:420px;line-height:1.55}.auth-form{display:flex;align-items:center;justify-content:center;padding:40px 32px calc(40px + env(safe-area-inset-bottom,0px))}.auth-form form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:18px}.auth-form .err{margin:-8px 0 -4px}.auth-form .logo{height:40px;width:auto;align-self:flex-start}.auth-form h1{font-size:24px;margin-top:8px}.auth-form .lead{color:var(--muted);font-size:var(--fs-sm);margin:-14px 0 0}.auth-form label.field{max-width:none}.auth-form .links{display:flex;justify-content:space-between;gap:12px;font-size:var(--fs-sm);flex-wrap:wrap}.auth-form .foot{font-size:var(--fs-xs);color:var(--muted-soft);margin-top:8px}.pwfield{position:relative}.pwfield input{padding-right:40px}.pwfield button{position:absolute;right:0;bottom:6px;width:32px;height:32px;padding:0;border:0;background:transparent;color:var(--muted)}@media (max-width: 860px){.auth{grid-template-columns:1fr;grid-template-rows:34vh 1fr}.auth-visual .caption{left:22px;right:22px;bottom:22px}.auth-visual .caption h2{font-size:20px}.auth-visual .caption p{display:none}.auth-form{align-items:flex-start;padding-top:28px}}.home{gap:28px}.home-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.home-hero h1{font-size:26px;margin:2px 0 4px}.home-hero .muted{margin:0}.eyebrow{margin:0;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.welcome{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-lg);padding:24px 26px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.welcome h2{margin-bottom:10px}.welcome ol{margin:0 0 16px;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);color:var(--text-2);line-height:1.5;max-width:620px}.welcome ol b{color:var(--text)}.welcome img{height:110px;width:auto}.cover-row{display:flex;gap:16px;overflow-x:auto;padding:2px 0 8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.cover-row::-webkit-scrollbar{height:6px}.cover-row::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.cover-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px 16px}.bookcard{display:flex;flex-direction:column;gap:8px;color:var(--text);min-width:0;scroll-snap-align:start;position:relative}.cover-row .bookcard{flex:0 0 150px}.bookcard .cover{position:relative;aspect-ratio:1 / 1.414;border-radius:8px;overflow:hidden;background:var(--surface-2);border:1px solid var(--border)}.bookcard .cover img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}.bookcard .bt{font-weight:600;font-size:var(--fs-sm);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bookcard .bm{font-size:var(--fs-xs);color:var(--muted)}.bookcard .prog{height:3px;background:var(--surface-2);border-radius:2px;overflow:hidden;margin-top:2px}.bookcard .prog span{display:block;height:100%;background:var(--primary)}.bookcard .hx{position:absolute;top:6px;right:6px;width:28px;height:28px;padding:0;border:0;border-radius:8px;background:#ffffffeb;color:var(--text-2);font-size:16px;line-height:1;opacity:0}.bookcard:focus-within .hx{opacity:1}@media (hover: hover){.bookcard:hover .hx{opacity:1}.bookcard:hover .cover{border-color:var(--border-strong)}}@media (hover: none){.bookcard .hx{opacity:1}}.lib-group{display:flex;flex-direction:column;gap:12px}.lib-toolbar input{max-width:360px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:48px 20px;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--r-lg)}.empty img{height:52px;width:auto;opacity:.5;filter:grayscale(1);margin-bottom:6px}.empty b{font-size:var(--fs-body)}.empty span{color:var(--muted);font-size:var(--fs-sm);max-width:380px;line-height:1.5}.book-page{display:grid;grid-template-columns:260px 1fr;gap:36px;align-items:start}.book-page>.cover{aspect-ratio:1 / 1.414;border-radius:10px;overflow:hidden;background:var(--surface-2);border:1px solid var(--border);position:sticky;top:90px}.book-page>.cover img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;pointer-events:none;-webkit-user-drag:none}.book-page h1{font-size:26px;line-height:1.2;margin:4px 0 6px}.book-page .meta{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--muted);font-size:var(--fs-sm);margin-bottom:20px}.book-page .meta b{color:var(--text);font-weight:600}.book-page .cta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}.book-page section{margin-bottom:26px}.book-page section h2{margin-bottom:8px}.toc{display:flex;flex-direction:column}.toc button{height:auto;min-height:44px;padding:10px 4px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;justify-content:space-between;font-weight:500;font-size:var(--fs-sm);text-align:left}.toc button:last-child{border-bottom:0}.toc button.lvl1{padding-left:22px;font-weight:400;color:var(--text-2)}.toc button.lvl2,.toc button.lvl3{padding-left:40px;font-weight:400;color:var(--text-2);font-size:var(--fs-xs)}.toc button .p{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:500}@media (hover: hover){.toc button:hover{background:var(--surface-2);border-color:var(--border)}}@media (max-width: 760px){.book-page{grid-template-columns:1fr;gap:20px}.book-page>.cover{width:160px;position:static}.book-page h1{font-size:22px}}.acct-head{display:flex;align-items:center;gap:16px}.acct-head .avatar{width:64px;height:64px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.acct-head h1{font-size:22px}.acct-head .muted{margin:0}.acct-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.acct-row{display:flex;align-items:center;gap:14px;padding:16px 20px;border:0;border-bottom:1px solid var(--border);background:transparent;border-radius:0;height:auto;font-weight:500;justify-content:flex-start;text-align:left;width:100%;color:var(--text);font-size:var(--fs-body)}.acct-list>:last-child{border-bottom:0}.acct-row .ic{width:38px;height:38px;border-radius:10px;background:var(--surface-2);color:var(--text-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.acct-row .t{flex:1;min-width:0}.acct-row .t small{display:block;font-weight:400;font-size:var(--fs-xs);color:var(--muted);margin-top:1px}.acct-row .chev{color:var(--muted-soft);transition:transform .15s}.acct-row.open .chev{transform:rotate(90deg)}@media (hover: hover){.acct-row:hover{background:var(--surface-2);border-color:var(--border)}}.acct-panel{padding:4px 20px 22px 72px;border-bottom:1px solid var(--border)}.acct-panel form{display:flex;flex-direction:column;gap:14px;max-width:380px}.devices{display:flex;flex-direction:column;gap:8px}.device{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r);font-size:var(--fs-sm)}.device .t{flex:1;min-width:0}.device .t small{display:block;color:var(--muted);font-size:var(--fs-xs)}.help section{margin-bottom:22px}.help h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px}.help-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);align-items:flex-start}.help-row:last-child{border-bottom:0}.help-row .ic{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--surface-2);flex-shrink:0;color:var(--text-2)}.help-row b{display:block;font-size:var(--fs-sm);margin-bottom:1px}.help-row span{font-size:var(--fs-sm);color:var(--text-2);line-height:1.5}.help-keys{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:var(--fs-sm);align-items:center}kbd{font:inherit;font-size:11.5px;padding:2px 6px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:6px;background:var(--surface-2)}.help-drawer{width:500px}.access-group{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:12px}.access-group-head{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:10px;height:46px;padding:0 16px;background:var(--surface-2);border:0;border-radius:0;cursor:pointer;text-align:left;font-weight:600;font-size:var(--fs-sm);color:var(--text)}.access-group-head .chev{transition:transform .15s;color:var(--muted-soft);font-size:10px}.access-group-head.open .chev{transform:rotate(90deg)}.access-group-head .count{color:var(--muted);font-weight:400;font-size:var(--fs-xs)}.access-group .table-scroll{margin:0}.access-group table tr:last-child td{border-bottom:0}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;display:flex;flex-direction:row;background:#e7e9ed}body.in-viewer{overflow:hidden;position:fixed;width:100%;height:100%;overscroll-behavior:none;touch-action:none}.pane-slot{min-width:0;height:100%;display:flex}.bookpane{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;container-type:inline-size;position:relative}.split-divider{flex:0 0 6px;background:#0f1114;cursor:col-resize}.vbar{display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top,0px) + 7px) 12px 7px;min-height:56px;background:var(--dark-bar);color:var(--dark-text);flex-shrink:0;position:relative;z-index:20}.vgroup{display:flex;align-items:center;gap:4px;min-width:0}.vgroup.left{flex:1 1 0}.vgroup.center{flex:0 0 auto;justify-content:center}.vgroup.right{flex:1 1 0;justify-content:flex-end;gap:6px}.vbar .vbtn{height:40px;padding:0 12px;font-size:var(--fs-sm);border-radius:10px;background:transparent;border:1px solid transparent;color:var(--dark-text);display:inline-flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0}@media (hover: hover){.vbar .vbtn:hover{background:#262a31;border-color:transparent}}.vbar .vbtn.icon{width:40px;padding:0}.vbar .vbtn.active{background:#2b3038;color:#fff}.vbar .vbtn.star{color:var(--accent)}.vbar .bookpick{background-color:transparent;border:0;color:#f2f4f7;font-size:15px;font-weight:600;height:40px;width:auto;min-width:60px;max-width:100%;padding:0 26px 0 6px;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a919c' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.vbar .bookpick option,.vbar .wspick option{color:#111}.vbar .wspick{background-color:#23272e;border:1px solid var(--dark-border);border-radius:10px;color:#fff;font-size:var(--fs-sm);height:40px;width:auto;max-width:180px;padding:0 28px 0 12px}.vbar .wspick.student{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.vbar .save{font-size:var(--fs-xs);color:var(--dark-muted);min-width:40px;text-align:right;flex-shrink:0}.vbar .save.ok{color:#6fcf97}.vbar .save.bad{color:#ef6a5e}.pager{display:inline-flex;align-items:center;gap:2px;background:#23272e;border-radius:12px;padding:0 4px;height:40px}.pager button{height:34px;width:34px;padding:0;margin:0;border:0;background:transparent;color:var(--dark-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (hover: hover){.pager button:not(:disabled):hover{background:#2f343c}}.pager button:disabled{opacity:.3;cursor:default}.pager input{width:44px;height:30px;padding:0;text-align:center;background:#15171b;border:0;border-radius:7px;color:#fff;font-size:var(--fs-sm);font-weight:600;font-variant-numeric:tabular-nums}.pager .of{font-size:var(--fs-xs);color:var(--dark-muted);padding:0 6px;white-space:nowrap;font-variant-numeric:tabular-nums}.pager button svg,.vbtn svg,.gtb svg,.vpanel-tabs button svg,.chip svg,.vmenu svg,.edgenav svg{flex-shrink:0;display:block}.vprogress{height:2px;background:#23272e;flex-shrink:0;position:relative;overflow:hidden;z-index:19}.vprogress span{display:block;height:100%;background:var(--primary-2);transition:width .25s}.vprogress.busy:after{content:"";position:absolute;top:0;bottom:0;width:30%;background:linear-gradient(90deg,transparent,#9cc0ff,transparent);animation:vbusy .9s linear infinite}@keyframes vbusy{0%{left:-30%}to{left:100%}}.menu-wrap{position:relative}.vmenu{position:absolute;right:0;top:48px;width:300px;max-width:calc(100vw - 24px);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 40px #10182838;padding:8px;z-index:40;display:flex;flex-direction:column;gap:2px}.vmenu-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface-2);border-radius:10px;padding:4px;margin-bottom:4px}.vmenu-seg button{height:58px;border:0;border-radius:8px;background:transparent;color:var(--text-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:var(--fs-xs);font-weight:500;padding:0}.vmenu-seg button.on{background:var(--surface);color:var(--primary);box-shadow:0 1px 3px #1018281f}.vmenu-row{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;height:auto;padding:8px 10px;border:0;border-radius:10px;background:transparent;text-align:left;color:var(--text);justify-content:flex-start}@media (hover: hover){.vmenu-row:hover{background:var(--surface-2);border:0}}.vmenu-row>svg{color:var(--text-2)}.vmenu-row .t{flex:1;min-width:0;display:flex;flex-direction:column}.vmenu-row .t b{font-size:var(--fs-sm);font-weight:500}.vmenu-row .t small{font-size:var(--fs-xs);color:var(--muted);line-height:1.35;white-space:normal}.switch{flex:0 0 auto;width:38px;height:22px;border-radius:11px;background:var(--border-strong);position:relative;transition:background .15s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform .15s}.switch.on{background:var(--primary)}.switch.on:after{transform:translate(16px)}.vmain{flex:1;display:flex;min-height:0;position:relative}.vcanvas{flex:1;min-width:0;position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.vcanvas img,.vthumb img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}.vstage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;touch-action:none}.vsheet{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.vcanvas .pagelayer,.vcanvas .vpeek{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.vcanvas .pagelayer{z-index:0}.vcanvas .vpeek{z-index:3;visibility:hidden;will-change:transform}.vcanvas .excalidraw{position:relative;z-index:1;background:transparent}.vcanvas.tool-hand .excalidraw__canvas.interactive{cursor:grab!important}.viewer.night .pagelayer{filter:brightness(.86)}.vloading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--muted);background:#e7e9ed;z-index:6}.vloading.over{background:#e7e9ed8c}.viewer.night .vloading{background:#1b1d22}.viewer.night .vloading.over{background:#1b1d2299}.vskel{width:min(58%,520px);aspect-ratio:1 / 1.414;max-height:82%;border-radius:4px}.vloaderr{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px 24px;max-width:360px;text-align:center;box-shadow:0 10px 30px #10182826}.vloaderr span{color:var(--muted);font-size:var(--fs-sm)}.vloaderr .row{margin-top:8px;justify-content:center}.edgenav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:64px;padding:0;border-radius:12px;border:1px solid rgba(0,0,0,.06);background:#ffffffb8;color:var(--text-2);box-shadow:0 2px 10px #1018281a;opacity:0;transition:opacity .15s;display:none;align-items:center;justify-content:center}.edgenav.prev{left:10px}.edgenav.next{right:10px}@media (hover: hover) and (pointer: fine){.edgenav{display:inline-flex}.vcanvas:hover .edgenav{opacity:.75}.vcanvas .edgenav:hover{opacity:1;background:#fff;border-color:var(--border)}}.viewer.night .edgenav{background:#23272ecc;color:var(--dark-text);border-color:#2a2e35}.pagepill{display:none;position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:5;height:40px;padding:0 3px;border-radius:20px;background:#15171bd1;color:#fff;align-items:center;gap:0;box-shadow:0 2px 10px #0000002e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.pagepill button{height:34px;border:0;background:transparent;color:#fff;padding:0;border-radius:17px}.pagepill .pp-arrow{width:36px}.pagepill .pp-arrow:disabled{opacity:.3}.pagepill .pp-num{padding:0 8px;font-size:var(--fs-xs);font-weight:600;font-variant-numeric:tabular-nums;gap:4px}.pagepill .pp-num span{color:#b9bfc8;font-weight:500}@media (hover: hover){.pagepill button:not(:disabled):hover{background:#ffffff1f;border:0}}.vcanvas.fingers .edgenav{display:inline-flex;opacity:.8;width:38px;height:56px}.vcanvas.fingers .edgenav.prev{left:6px}.vcanvas.fingers .edgenav.next{right:6px}.vpanel{width:290px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);min-height:0;z-index:8}.vpanel-tabs{display:flex;padding:6px 6px 0;gap:2px;border-bottom:1px solid var(--border)}.vpanel-tabs button{flex:1;height:50px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:500}.vpanel-tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.vpanel-close{display:none!important}.vpanel-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0c124d;z-index:7}.vpanel-body{flex:1;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch}.vjump{display:flex;gap:6px;padding:12px 12px 0}.vjump input{flex:1;height:38px;font-size:var(--fs-sm);min-width:0}.vjump button{height:38px}.vempty{color:var(--muted);font-size:var(--fs-sm);padding:14px 16px;margin:0;line-height:1.5}.vcount{color:var(--muted);font-size:var(--fs-xs);padding:2px 16px 6px;margin:0}.vlist{display:flex;flex-direction:column;padding:6px 8px 14px}.vrow{display:flex;align-items:center;gap:8px;width:100%;height:auto;min-height:42px;padding:8px 10px;border:0;border-radius:8px;background:transparent;text-align:left;font-size:var(--fs-sm);font-weight:450;color:var(--text);cursor:pointer;justify-content:flex-start}.vrow.current{background:var(--primary-soft);color:var(--primary);font-weight:600}@media (hover: hover){.vrow:hover{background:var(--surface-2);border:0}.vrow.current:hover{background:var(--primary-soft)}}.vrow .t{flex:1;min-width:0;white-space:normal;line-height:1.35}.vrow .p{color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;flex-shrink:0}.vrow.current .p{color:var(--primary)}.vrow.lvl1{padding-left:24px;font-weight:400}.vrow.lvl2,.vrow.lvl3{padding-left:38px;font-weight:400;font-size:var(--fs-xs)}.vrow.add{color:var(--primary);font-weight:500;margin-bottom:4px}.vrow .x{height:28px;width:28px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:16px;flex-shrink:0}.vrow.hit{align-items:flex-start}.vrow.hit .p{padding-top:2px;min-width:34px}.vrow.hit .s{flex:1;min-width:0;white-space:normal;font-size:var(--fs-xs);color:var(--text-2);line-height:1.4;font-weight:400}.vrow.hit mark{background:var(--accent-soft);color:var(--text);border-radius:3px;padding:0 1px;font-weight:600}.vsearch{display:flex;flex-direction:column}.vsearch>input{margin:12px 12px 4px;width:auto;height:40px;font-size:var(--fs-sm)}.vthumbs{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px}.vthumb{position:relative;border:2px solid transparent;border-radius:6px;cursor:pointer;background:#fff;aspect-ratio:1 / 1.414;overflow:hidden;box-shadow:0 1px 3px #00000024}.vthumb img,.vthumb canvas{display:block;width:100%;height:100%;object-fit:contain;background:#fff;border-radius:4px;pointer-events:none}.vthumb.current{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.vthumb .n{position:absolute;bottom:4px;right:5px;font-size:10.5px;color:#fff;background:#0009;border-radius:4px;padding:1px 5px}.vthumb .dot{position:absolute;top:5px;left:6px;width:8px;height:8px;border-radius:50%;background:var(--accent);display:none}.vthumb.annotated .dot{display:block}.vthumb .bm{position:absolute;top:-1px;right:8px;width:9px;height:14px;background:var(--primary);clip-path:polygon(0 0,100% 0,100% 100%,50% 70%,0 100%);display:none}.vthumb.marked .bm{display:block}.gtb{flex-shrink:0;position:relative;z-index:18;display:flex;flex-direction:column;background:var(--surface);border-bottom:1px solid var(--border);user-select:none;-webkit-user-select:none;touch-action:manipulation}.gtb.gtb-bottom{border-bottom:0;border-top:1px solid var(--border);flex-direction:column-reverse;padding-bottom:env(safe-area-inset-bottom,0px)}.gtb-main{display:flex;align-items:center;gap:4px;height:52px;padding:0 10px;min-width:0}.gtb-tools{display:flex;align-items:center;gap:2px;flex-shrink:0}.gtb-end{display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:auto;padding-left:6px}.gtb-ctx{display:flex;align-items:center;gap:2px;min-width:0;overflow:hidden}.gtb.gtb-row .gtb-ctx{flex:0 1 auto}.gtb.gtb-stack .gtb-ctx{height:46px;padding:0 10px;justify-content:center;border-top:1px solid var(--border);background:var(--surface-2)}.gtb.gtb-stack.gtb-bottom .gtb-ctx{border-top:0;border-bottom:1px solid var(--border)}.gtb .tb{width:42px;height:42px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--text-2);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.gtb .tb svg{display:block;flex-shrink:0}@media (hover: hover){.gtb .tb:hover{background:var(--surface-2);border:0}}.gtb .gtb-tools .tb.active,.gtb .tb.kind.active{background:var(--primary-soft);color:var(--primary)}.gtb .ib-sep{width:1px;height:24px;background:var(--border);margin:0 6px;flex-shrink:0}.gtb .ib-sep.tall{height:30px;margin:0 8px}.gtb .swatch:before{content:"";width:24px;height:24px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px #00000024}.gtb .swatch.active:before{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--c)}.gtb.gtb-stack .swatch.active:before{box-shadow:0 0 0 2px var(--surface-2),0 0 0 4px var(--c)}.gtb .size span{display:block;border-radius:50%}.gtb .size.hl span{border-radius:3px}.gtb .size.active,.gtb .esize.active{background:var(--primary-soft);box-shadow:inset 0 0 0 1.5px var(--primary)}.gtb .swatch.editing:before{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--primary)}.gtb .esize span{display:block;border-radius:50%;border:2px solid currentColor;box-sizing:border-box}.gtb .esize.active span{border-color:var(--primary)}.gtb .ctx-hint{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 10px;min-width:0}.gtb.gtb-small .gtb-main{padding:0 6px;gap:2px}.gtb.gtb-small .tb{width:40px}@media (max-width: 380px){.gtb.gtb-small .tb{width:37px}.gtb.gtb-small .gtb-end{padding-left:2px}}@media (max-height: 520px){.gtb-main{height:46px}.gtb .tb{height:38px}.gtb.gtb-stack .gtb-ctx{height:42px}}.slot-ed{position:fixed;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 14px 40px #10182838;padding:12px;display:flex;flex-direction:column;gap:10px}.se-title{display:flex;justify-content:space-between;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.se-title span{font-variant-numeric:tabular-nums;color:var(--text-2);letter-spacing:0}.se-colours{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.se-colours .swatch{height:34px;padding:0;border:0;background:transparent;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer}.se-colours .swatch:before{content:"";width:26px;height:26px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px #00000024}.se-colours .swatch.active:before{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--c)}.se-colours .swatch.custom:before{background:conic-gradient(#d0342c,#e8790c,#f2b739,#1d9a5b,#1062ce,#7c3aed,#d0342c)}.se-colours .swatch.custom input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;cursor:pointer;border:0;padding:0}.se-preview{width:100%;height:40px;display:block}.slot-ed input[type=range]{width:100%;height:28px;padding:0;margin:0;border:0;accent-color:var(--primary)}.viewer.night .gtb,.viewer.night .slot-ed{background:#1d2025;border-color:#2f343c}.viewer.night .gtb.gtb-stack .gtb-ctx{background:#23272e;border-color:#2f343c}.viewer.night .gtb .tb{color:var(--dark-text)}.viewer.night .gtb .gtb-tools .tb.active,.viewer.night .gtb .tb.kind.active,.viewer.night .gtb .size.active,.viewer.night .gtb .esize.active{background:#3976f338;color:#9cc0ff}.viewer.night .gtb .ib-sep{background:#3a3f48}.viewer.night .gtb .swatch:before,.viewer.night .se-colours .swatch:before{box-shadow:inset 0 0 0 1.5px #ffffff47}.viewer.night .gtb .swatch.active:before,.viewer.night .se-colours .swatch.active:before{box-shadow:inset 0 0 0 1.5px #ffffff47,0 0 0 2px #1d2025,0 0 0 4px #e6e9ee}.viewer.night .gtb.gtb-stack .swatch.active:before{box-shadow:inset 0 0 0 1.5px #ffffff47,0 0 0 2px #23272e,0 0 0 4px #e6e9ee}.viewer.night .gtb .size span{box-shadow:0 0 0 1px #ffffff59}@media (hover: hover){.viewer.night .gtb .tb:hover{background:#2b3038}}.cursor-ring{position:absolute;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);opacity:.45;z-index:4}.cursor-ring.eraser{border:1.5px solid rgba(20,23,28,.7);background:#14171c0f!important;opacity:1}.cursor-ring.eraser.on{background:#c62f271f!important;border-color:var(--danger)}.stroke-hint{position:absolute;transform:translate(-50%,-150%);background:#15171b;color:#fff;font-size:12px;font-weight:500;padding:4px 9px;border-radius:6px;pointer-events:none;z-index:6;white-space:nowrap}.tour-shade{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.tour-spot{position:fixed;border-radius:14px;box-shadow:0 0 0 3px var(--accent),0 0 0 9999px #0a0c128c;z-index:201;pointer-events:none;transition:all .2s}.tour-card{position:fixed;z-index:202;width:320px;background:var(--surface);color:var(--text);border-radius:14px;padding:16px 18px;box-shadow:0 14px 40px #00000059}.tour-card .step{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin-bottom:4px}.tour-card h3{margin-bottom:6px}.tour-card p{margin:0 0 14px;font-size:var(--fs-sm);color:var(--text-2);line-height:1.5}.tour-card .row{justify-content:space-between}@container (max-width: 760px){.vbar{padding-left:8px;padding-right:8px;gap:4px}.vgroup.center{display:none}.pagepill{display:inline-flex}.vbar .wspick{max-width:150px}.vpanel{position:absolute;left:0;top:0;bottom:0;width:min(300px,86%);box-shadow:8px 0 30px #0000002e}}@container (max-width: 560px){.vbar .mark{display:none}.vbar .wspick{max-width:120px;font-size:var(--fs-xs);padding-left:8px}.vbar .save{font-size:0;min-width:0;width:9px;height:9px;border-radius:50%;background:var(--dark-muted)}.vbar .save.ok{background:#6fcf97}.vbar .save.bad{background:#ef6a5e}.vbar .save:empty{display:none}}@media (max-width: 900px){:root{--page-x: 20px}body{background:var(--surface)}.topnav-inner{height:58px}.topnav a.navlink,.topnav button.logout{display:none}.topnav .brand{margin-right:auto}.topnav .brand .sub{display:none}.page-wrap{padding:20px var(--page-x) calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom,0px));gap:22px}.card{padding:18px 16px}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--border);padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));justify-content:space-around}.tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:500;color:var(--muted);padding:4px 10px;border-radius:10px;min-width:60px}.tabbar a.active{color:var(--primary)}.stats{grid-template-columns:1fr 1fr;gap:8px}.stat{padding:12px 14px}.stat .v{font-size:20px}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{padding:0 10px;white-space:nowrap}label.field{max-width:none;flex-basis:100%}.row>button{flex:1 1 auto}table{font-size:var(--fs-xs)}th,td{padding:9px 8px}.welcome{grid-template-columns:1fr}.welcome img{display:none}.drawer,.help-drawer{width:100%}.account-grid{grid-template-columns:1fr}.cover-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px 12px}.cover-row .bookcard{flex:0 0 130px}.home-hero h1{font-size:22px}.acct-panel{padding-left:20px}}@media (max-width: 480px){.cover-grid{grid-template-columns:repeat(2,1fr)}.kv{grid-template-columns:1fr;gap:2px}}.vcanvas .default-sidebar-trigger,.vcanvas [data-testid=toolbar-frame],.vcanvas [data-testid=toolbar-embeddable],.vcanvas .help-icon,.vcanvas .layer-ui__wrapper__footer,.vcanvas [data-testid=main-menu-trigger],.vcanvas .HintViewer,.vcanvas .context-menu,.vcanvas .excalidraw-contextMenuContainer,.vcanvas .App-toolbar-container,.vcanvas .App-toolbar,.vcanvas .excalidraw--mobile .App-bottom-bar,.vcanvas .App-menu__left,.vcanvas .ToolIcon__penMode,.vcanvas .excalidraw--mobile .mobile-misc-tools-container,.vcanvas .excalidraw--mobile .App-bottom-bar .undo-redo-buttons,.vcanvas .excalidraw--mobile .App-bottom-bar [data-testid=button-undo],.vcanvas .excalidraw--mobile .App-bottom-bar [data-testid=button-redo]{display:none!important}.vcanvas .excalidraw--mobile .App-bottom-bar{left:12px;right:auto;bottom:12px;width:auto}.vcanvas .excalidraw--mobile .App-bottom-bar .Island{width:auto;padding:4px}.vcanvas .excalidraw--mobile .App-bottom-bar .App-toolbar-content{justify-content:flex-start}.viewer.night .excalidraw{--button-destructive-bg-color: #5a0000;--button-destructive-color: #ffa8a8;--button-gray-1: #363636;--button-gray-2: #272727;--button-gray-3: #222;--button-special-active-bg-color: #204624;--dialog-border-color: var(--color-gray-80);--dropdown-icon: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="292.4" height="292.4" viewBox="0 0 292 292"><path fill="%23ced4da" d="M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z"/></svg>');--focus-highlight-color: #228be6;--icon-green-fill-color: #69db7c;--default-bg-color: #121212;--input-bg-color: #121212;--input-border-color: #2e2e2e;--input-hover-bg-color: #181818;--input-label-color: #e9ecef;--island-bg-color: #232329;--keybinding-color: var(--color-gray-60);--link-color: #4dabf7;--overlay-bg-color: rgba(52, 58, 64, .12);--popup-secondary-bg-color: #222;--popup-text-color: #ced4da;--popup-text-inverted-color: #2c2c2c;--select-highlight-color: #4dabf7;--shadow-island: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);--modal-shadow: 0px 100px 80px rgba(0, 0, 0, .07), 0px 41.7776px 33.4221px rgba(0, 0, 0, .0503198), 0px 22.3363px 17.869px rgba(0, 0, 0, .0417275), 0px 12.5216px 10.0172px rgba(0, 0, 0, .035), 0px 6.6501px 5.32008px rgba(0, 0, 0, .0282725), 0px 2.76726px 2.21381px rgba(0, 0, 0, .0196802);--avatar-border-color: var(--color-gray-85);--scrollbar-thumb: #343a40;--scrollbar-thumb-hover: #495057;--color-slider-track: hsl(244, 23%, 39%);--color-selection: #3530c4;--color-icon-white: var(--color-gray-90);--color-primary: #a8a5ff;--color-primary-darker: #b2aeff;--color-primary-darkest: #beb9ff;--color-primary-light: #4f4d6f;--color-primary-light-darker: #43415e;--color-primary-hover: #bbb8ff;--color-disabled: var(--color-gray-70);--color-text-warning: var(--color-gray-80);--color-danger: #ffa8a5;--color-danger-dark: #672120;--color-danger-darker: #8f2625;--color-danger-darkest: #ac2b29;--color-danger-text: #fbcbcc;--color-danger-background: #fbcbcc;--color-danger-icon-background: #672120;--color-danger-color: #261919;--color-danger-icon-color: #fbcbcc;--color-warning-background: var(--color-warning);--color-warning-icon-background: var(--color-warning-dark);--color-warning-color: var(--color-gray-80);--color-warning-icon-color: var(--color-gray-80);--color-muted: var(--color-gray-80);--color-muted-darker: var(--color-gray-60);--color-muted-darkest: var(--color-gray-20);--color-muted-background: var(--color-gray-40);--color-muted-background-darker: var(--color-gray-20);--color-logo-text: #e2dfff;--color-surface-high: hsl(245, 10%, 21%);--color-surface-low: hsl(240, 8%, 15%);--color-surface-mid: hsl(240 6% 10%);--color-surface-lowest: hsl(0, 0%, 7%);--color-on-surface: #e3e3e8;--color-brand-hover: #bbb8ff;--color-on-primary-container: #e0dfff;--color-brand-active: #d0ccff;--color-border-outline: #8e8d9c;--color-border-outline-variant: #46464f;--color-surface-primary-container: #403e6a}.viewer.night .excalidraw canvas,.viewer.night .vpeek{filter:brightness(.86)}.searchbar{display:flex;align-items:center;gap:10px;max-width:420px;color:var(--muted)}.searchbar input{flex:1}.backlink{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-sm);color:var(--muted)}.topnav .brand .sub:before{content:"";display:inline-block;width:1px;height:16px;background:var(--border-strong);margin:0 10px 0 2px;vertical-align:-3px}.home-hero .btn{flex-shrink:0}@media (max-width: 480px){.notice{flex-wrap:wrap}.notice .acts{width:100%;justify-content:flex-end}.home-hero .btn{display:none}}.guide{margin:12px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:var(--fs-sm);color:var(--text-2);line-height:1.5;max-width:720px}.table-scroll{-webkit-overflow-scrolling:touch}@media (max-width: 640px){.table-scroll{margin:0 -16px;padding:0 16px}.table-scroll table{min-width:560px}table.rows thead{display:none}table.rows,table.rows tbody{display:block}table.rows tr{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;padding:12px 0;border-bottom:1px solid var(--border)}table.rows tr:last-child{border-bottom:0}table.rows td{display:inline;padding:0;border:0;font-size:var(--fs-sm);color:var(--text-2)}table.rows td:first-child{width:100%;font-weight:600;color:var(--text)}table.rows td[data-l]:before{content:attr(data-l) " ";color:var(--muted)}table.rows td.actions{width:100%;display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;text-align:left}table.rows td.actions>*+*{margin-left:0}tr.archived td{opacity:.6}}@media (max-width: 860px){.auth{grid-template-rows:minmax(150px,30dvh) 1fr}.auth-form{padding:22px 24px calc(20px + env(safe-area-inset-bottom,0px))}.auth-form form{gap:12px}.auth-form .logo{height:32px}.auth-form h1{margin-top:4px;font-size:22px}.auth-form .lead{margin-top:-6px}.auth-form .links{flex-direction:column;gap:6px}.auth-form .foot{display:none}}@media (max-width: 860px) and (max-height: 760px){.auth{grid-template-rows:minmax(120px,26dvh) 1fr}.auth-form .lead{display:none}}.tutor-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r);margin-top:8px}.tutor-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;flex-wrap:wrap}.tutor-row+.tutor-row{border-top:1px solid var(--border)}.tutor-row .who{display:flex;flex-direction:column;min-width:0}.tutor-row .who .muted{font-size:var(--fs-xs);overflow-wrap:anywhere}.tutor-row.off .who b{color:var(--muted)}.spinner{display:inline-block;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;flex-shrink:0;opacity:.85}@keyframes spin{to{transform:rotate(360deg)}}button.busy{cursor:progress}button.busy:disabled{opacity:.75}.iconbtn{display:inline-flex;align-items:center;justify-content:center;color:var(--text-2)}.menu-btn{width:34px;height:34px;border-color:transparent;background:transparent;border-radius:8px}@media (hover: hover){.menu-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border)}}.menu-btn[aria-expanded=true]{background:var(--surface-2);border-color:var(--border)}.menu-pop{position:fixed;z-index:150;min-width:210px;max-width:300px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 36px #1018282e;padding:6px;display:flex;flex-direction:column;animation:popIn .12s ease-out}@keyframes popIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.menu-pop button{height:auto;min-height:38px;padding:8px 10px;border:0;border-radius:8px;background:transparent;justify-content:flex-start;font-weight:500;font-size:var(--fs-sm);color:var(--text);flex-direction:column;align-items:flex-start;gap:1px;text-align:left;white-space:normal}.menu-pop button small{font-size:var(--fs-xs);color:var(--muted);font-weight:400}.menu-pop button.danger{color:var(--danger)}.menu-pop button:focus-visible{outline:none;background:var(--surface-2)}@media (hover: hover){.menu-pop button:hover:not(:disabled){background:var(--surface-2);border:0}.menu-pop button.danger:hover:not(:disabled){background:var(--danger-soft)}}.menu-sep{height:1px;background:var(--border);margin:5px 4px}.menu-head{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 10px 4px}body.modal-open{overflow:hidden}.modal.form{max-width:520px;gap:0;padding:0;max-height:calc(100dvh - 40px);display:flex;flex-direction:column;box-shadow:0 24px 60px #10182840}.modal.form.wide{max-width:720px}.modal-head{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 14px;border-bottom:1px solid var(--border)}.modal-head>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.modal-body{padding:18px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.modal.form .modal-actions{padding:14px 22px;border-top:1px solid var(--border);margin:0;background:var(--bg-2);border-radius:0 0 var(--r-lg) var(--r-lg)}.modal .iconbtn{width:34px;height:34px;border-color:transparent}.modal-body label.field{max-width:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.form-grid .full{grid-column:1 / -1}@media (max-width: 560px){.form-grid{grid-template-columns:1fr}}.form-section{display:flex;flex-direction:column;gap:10px;padding-top:4px}.form-section>.label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.hint{font-size:var(--fs-xs);color:var(--muted);line-height:1.45;margin:0}.drawer{box-shadow:-20px 0 50px #1018282e;animation:drawerIn .18s ease-out}@keyframes drawerIn{0%{transform:translate(24px);opacity:.6}to{transform:none;opacity:1}}.drawer-head{align-items:flex-start}.drawer-head .dh-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.drawer-head .dh-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.drawer-head .dh-title h3{flex:0 1 auto;font-size:18px}.drawer-head .dh-sub{font-size:var(--fs-sm);overflow-wrap:anywhere}.drawer-head .iconbtn{width:36px;height:36px;border-color:transparent;flex-shrink:0}.drawer-head .menu-btn{width:36px;height:36px;border:1px solid var(--border)}.dsec{display:flex;flex-direction:column;gap:10px}.dsec-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.dsec-head h4{margin:0!important}.dsec-head button{height:32px;padding:0 12px;font-size:var(--fs-xs)}.filter-chips{display:flex;gap:6px;flex-wrap:wrap}.fchip{height:34px;padding:0 12px;border-radius:17px;font-size:var(--fs-xs);font-weight:500;color:var(--text-2);background:var(--surface);border:1px solid var(--border);gap:6px}.fchip .n{font-size:11px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}.fchip.on{background:var(--text);border-color:var(--text);color:#fff}.fchip.on .n{color:#ffffffbf}.fchip.warn .n{color:var(--warn)}.fchip.bad .n{color:var(--danger)}.fchip.on.warn .n,.fchip.on.bad .n{color:#fffc}@media (hover: hover){.fchip:hover:not(.on){background:var(--surface-2);border-color:var(--border-strong)}}.search-input{position:relative;display:flex;align-items:center;gap:8px;height:40px;padding:0 10px 0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted);min-width:0;flex:1 1 220px;max-width:360px;transition:border-color .12s,box-shadow .12s}.search-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.search-input input{border:0;height:38px;padding:0;font-size:var(--fs-sm);flex:1;min-width:0}.search-input .clear{width:24px;height:24px;padding:0;border:0;border-radius:6px;background:var(--surface-2);color:var(--muted)}.segmented{display:inline-flex;padding:3px;background:var(--surface-2);border-radius:10px;gap:2px;flex-shrink:0}.segmented button{height:32px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:500;font-size:var(--fs-xs);gap:6px}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #1018281f}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar .grow{flex:1}.empty-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 16px;text-align:center;color:var(--muted);font-size:var(--fs-sm)}.empty-state b{color:var(--text);font-size:var(--fs-body)}.empty-state button{margin-top:8px}.lib-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.lib-head h1{margin:4px 0 2px}.lib-head .muted{margin:0}.lib-tools{display:flex;flex-direction:column;gap:10px;position:sticky;top:calc(64px + env(safe-area-inset-top,0px));z-index:15;background:var(--bg-2);margin:-12px calc(-1 * var(--page-x)) -8px;padding:12px var(--page-x) 12px;border-bottom:1px solid transparent}.lib-tools.stuck{border-bottom-color:var(--border)}.lib-search{display:flex;align-items:center;gap:10px}.lib-search .search-input{max-width:520px;height:44px;border-radius:12px;background:var(--surface);box-shadow:0 1px 2px #1018280a}.lib-search .search-input input{height:42px;font-size:15px}.lib-search .segmented{margin-left:auto}.lib-search .segmented button{height:36px;width:40px;padding:0}.lib-filters{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--page-x));padding:0 var(--page-x)}.lib-filters::-webkit-scrollbar{display:none}.kind-row{display:inline-flex;gap:2px;padding:3px;background:var(--surface-2);border-radius:12px;flex-shrink:0}.kchip{height:32px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--text-2);font-size:var(--fs-xs);font-weight:500;gap:6px}.kchip .n{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.kchip.on{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #1018281f}@media (hover: hover){.kchip:not(.on):hover{color:var(--text);background:#fff9;border:0}}.menu-trigger.dchip{height:38px;padding:0 10px 0 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);gap:6px;font-size:var(--fs-xs);font-weight:500;flex-shrink:0;color:var(--text-2)}.dchip .dchip-k{color:var(--muted)}.dchip .dchip-v{color:var(--text);font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis}.dchip svg{color:var(--muted)}.menu-trigger.dchip.on{border-color:var(--text);background:var(--text)}.dchip.on .dchip-k,.dchip.on svg{color:#ffffffb3}.dchip.on .dchip-v{color:#fff}.clear-all{height:38px;padding:0 10px;border:0;background:transparent;color:var(--primary);font-size:var(--fs-xs);font-weight:600;flex-shrink:0}.menu-pop button.radio .mi-row{display:flex;align-items:center;gap:8px;width:100%}.mi-check{width:16px;height:16px;color:var(--primary);display:inline-flex;flex-shrink:0}.mi-label{flex:1}.mi-count{font-style:normal;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.menu-pop button.checked{color:var(--primary)}.sort-select{width:auto;height:40px;border:1px solid var(--border);border-radius:10px;padding:0 30px 0 12px;background-color:var(--surface);font-size:var(--fs-sm);background-position:right 10px center}.shelves{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}.shelf{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 16px 14px;display:flex;flex-direction:column;gap:12px;height:100%}.shelf-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.shelf-head h3{font-size:16px}.shelf-head .muted{font-size:var(--fs-xs)}.shelf-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.shelf-row .bookcard .bt{font-size:var(--fs-xs)}.shelf-row .bookcard .bm{font-size:11.5px}.lib-folder{display:flex;flex-direction:column;gap:4px}.brows{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.brow{display:grid;grid-template-columns:40px 1fr 190px 18px;align-items:center;gap:14px;padding:10px 16px;color:var(--text);border-bottom:1px solid var(--border)}.brow:last-child{border-bottom:0}@media (hover: hover){.brow:hover{background:var(--surface-2)}}.brow svg{color:var(--muted-soft)}.cover.mini{width:40px;flex:0 0 40px;aspect-ratio:1 / 1.414;border-radius:4px;overflow:hidden;position:relative;background:var(--surface-2);border:1px solid var(--border)}.cover.mini img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;pointer-events:none}.brow-main{display:flex;flex-direction:column;min-width:0}.brow-main b{font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brow-main .muted{font-size:var(--fs-xs)}.brow-prog{display:flex;flex-direction:column;gap:5px;font-size:var(--fs-xs)}.prog{height:4px;background:var(--surface-2);border-radius:2px;overflow:hidden}.prog span{display:block;height:100%;background:var(--primary);border-radius:2px}@media (max-width: 640px){.brow{grid-template-columns:36px 1fr 18px;gap:12px;padding:10px 12px}.brow-prog{grid-column:2;grid-row:2;margin-top:-4px}.shelves{grid-template-columns:1fr}}.folder-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.folder-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;overflow:hidden}.fc-main{display:flex;align-items:center;gap:18px;padding:18px;color:var(--text)}@media (hover: hover){.fc-main:hover{background:var(--surface-2)}}.fc-main>svg{color:var(--muted-soft);flex-shrink:0}.fc-stack{position:relative;width:78px;height:92px;flex-shrink:0}.fc-stack .cover{position:absolute;width:58px;aspect-ratio:1 / 1.414;border-radius:5px;overflow:hidden;background:var(--surface-2);border:1px solid var(--border);box-shadow:0 2px 6px #1018281a}.fc-stack .cover img{width:100%;height:100%;object-fit:cover;object-position:top;pointer-events:none}.fc-stack .s0{left:20px;top:0;z-index:3}.fc-stack .s1{left:10px;top:4px;z-index:2;transform:rotate(-4deg)}.fc-stack .s2{left:0;top:8px;z-index:1;transform:rotate(-8deg)}.fc-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.fc-text h3{font-size:17px}.fc-chapters{display:flex;gap:6px;flex-wrap:wrap;padding:12px 18px 16px;border-top:1px solid var(--border)}.fc-chapters .fchip{height:30px;text-decoration:none;display:inline-flex;align-items:center}.sibs{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.sib{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--text)}@media (hover: hover){.sib:hover{border-color:var(--border-strong);background:var(--surface-2)}}.sib>div:not(.cover){display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.sib b{font-size:var(--fs-sm)}.sib .muted{font-size:var(--fs-xs)}.sib .prog{margin-top:3px}a.backlink{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:var(--fs-sm)}.console-head h1{margin-top:2px}.stack{display:flex;flex-direction:column;gap:18px}button.stat{height:auto;display:block;text-align:left;font-weight:inherit;padding:16px 18px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);white-space:normal;transition:border-color .12s,box-shadow .12s}@media (hover: hover){button.stat:hover{border-color:var(--border-strong);background:var(--surface);box-shadow:0 4px 14px #1018280f}}.stat.bad .v{color:var(--danger)}.tabs a.tab{display:inline-flex;align-items:center;color:var(--muted);font-weight:500;font-size:var(--fs-sm);text-decoration:none}.tabs a.tab.active{color:var(--primary)}.tab .n.warn{background:var(--warn-soft);color:var(--warn)}.card.flush{padding:0;overflow:hidden}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 14px;flex-wrap:wrap}.card-head>div:first-child{min-width:0;flex:1 1 260px}.card-head h2{margin-bottom:3px}.card-head .muted{margin:0}.card-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.card-actions .menu-btn{width:var(--ctl-h);height:var(--ctl-h);border:1px solid var(--border-strong)}.card-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 22px 14px}.card-tools .invitebox{width:100%;margin:0}.card-pad{padding:0 22px 18px}.card-foot{display:flex;align-items:center;gap:12px;padding:12px 22px 16px;border-top:1px solid var(--border)}.card.flush>.empty-state{border-top:1px solid var(--border)}table.data{border-top:1px solid var(--border)}table.data th{background:var(--bg-2);padding-top:10px;padding-bottom:10px}table.data th:first-child,table.data td:first-child{padding-left:22px}table.data th:last-child,table.data td:last-child{padding-right:16px}table.data td{vertical-align:middle}table.data tr.clickable{cursor:pointer}table.data tr.clickable:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}table.data tr.picked td{background:var(--primary-soft)}table.data .act{width:1%;text-align:right;white-space:nowrap}table.data .cb{width:1%;padding-right:0}.who{display:flex;flex-direction:column;min-width:0;gap:1px}.who b{font-weight:600}.who b a{color:var(--text)}.who span{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere}.clip{display:inline-block;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.nowrap{white-space:nowrap}.tagrow{display:inline-flex;gap:4px;flex-wrap:wrap}.tag{font-size:11.5px;font-weight:500;padding:2px 8px;border-radius:6px;background:var(--primary-soft);color:var(--primary);white-space:nowrap}.linkbtn{height:auto;padding:0;border:0;background:transparent;color:var(--primary);font-size:var(--fs-sm);font-weight:600;align-self:flex-start}@media (hover: hover){.linkbtn:hover:not(:disabled){background:transparent;border:0;text-decoration:underline}}.empty-mini{font-size:var(--fs-sm);color:var(--muted);padding:14px 16px;border:1px dashed var(--border-strong);border-radius:var(--r);line-height:1.5}.lic-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r)}.lic{display:flex;align-items:center;gap:10px;padding:10px 8px 10px 14px;min-height:56px}.lic+.lic{border-top:1px solid var(--border)}.lic.dim .lic-main b{color:var(--muted)}.lic-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lic-main b{font-size:var(--fs-sm)}.lic-main span{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere}.act-list{display:flex;flex-direction:column;gap:0;font-size:var(--fs-xs)}.actv{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:6px 0;border-bottom:1px solid var(--surface-2);color:var(--text-2)}.actv .when{color:var(--muted);font-variant-numeric:tabular-nums}.actv.warn span:last-child{color:var(--warn);font-weight:500}.act-list .linkbtn{margin-top:8px;font-size:var(--fs-xs)}.field-note{display:flex;align-items:flex-end;padding-bottom:12px}.modal-actions .grow{flex:1}.checkrow{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);cursor:pointer}.checkrow input{margin-top:2px;flex-shrink:0}.checkrow span{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}.checkrow small{font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.bulkbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 22px 12px;padding:8px 10px 8px 14px;background:var(--text);color:#fff;border-radius:12px;position:sticky;top:72px;z-index:5;animation:popIn .12s ease-out}.bulkbar b{font-size:var(--fs-sm);margin-right:6px}.bulkbar button.sm{background:#ffffff1a;border-color:#fff3;color:#fff}.bulkbar button.sm.danger{color:#ffb4ad}.bulkbar button.ghost{background:transparent;border-color:transparent;color:#cfd6e0}@media (hover: hover){.bulkbar button.sm:hover:not(:disabled){background:#fff3;border-color:#ffffff4d}}.bulkbar .grow{flex:1}.libcon{display:grid;grid-template-columns:240px 1fr}.lib-side{border-right:1px solid var(--border);padding:16px 10px;display:flex;flex-direction:column;gap:2px;background:var(--bg-2)}.side-head{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.side-head .linkbtn{font-size:var(--fs-xs);text-transform:none;letter-spacing:0}.side-item{display:flex;align-items:center;gap:4px;border-radius:9px;width:100%;height:auto;padding:0;border:0;background:transparent;font-weight:500;color:var(--text-2)}button.side-item,.side-main{display:flex;align-items:center;gap:10px;padding:9px 10px;min-height:40px;height:auto;border:0;border-radius:9px;background:transparent;font-size:var(--fs-sm);font-weight:500;color:var(--text-2);text-align:left;justify-content:flex-start;white-space:normal}.side-main{flex:1;min-width:0}.side-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.side-item em{font-style:normal;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.side-item.on,.side-item.on .side-main{background:var(--surface);color:var(--primary)}.side-item.on{box-shadow:0 1px 3px #10182814}@media (hover: hover){.side-item:not(.on):hover,.side-item:not(.on) .side-main:hover{background:var(--surface-2)}}.side-item .menu-btn{width:30px;height:30px;opacity:0;flex-shrink:0}.side-item:hover .menu-btn,.side-item.on .menu-btn,.side-item .menu-btn[aria-expanded=true],.side-item .menu-btn:focus-visible{opacity:1}@media (hover: none){.side-item .menu-btn{opacity:1}}.lib-side-select{display:none}.lib-main{min-width:0}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--r-lg);padding:30px 16px;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted);cursor:pointer;text-align:center;transition:border-color .12s,background .12s}.dropzone b{color:var(--text)}.dropzone span{font-size:var(--fs-sm)}.dropzone.over,.dropzone:focus-visible{border-color:var(--primary);background:var(--primary-soft);outline:none}@media (hover: hover){.dropzone:hover{border-color:var(--primary)}}.uplist{border:1px solid var(--border);border-radius:var(--r)}.uphead{display:flex;justify-content:space-between;padding:8px 12px;font-size:var(--fs-xs);color:var(--muted);border-bottom:1px solid var(--border);background:var(--bg-2);border-radius:var(--r) var(--r) 0 0}.upitem{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 12px;align-items:center}.upitem+.upitem{border-top:1px solid var(--border)}.upname{display:flex;flex-direction:column;min-width:0}.upname b{font-size:var(--fs-sm);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upname span{font-size:var(--fs-xs);color:var(--muted)}.upitem.failed .upname span{color:var(--danger)}.upstate{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.upstate .proc{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-weight:500}.upstate .x{width:26px;height:26px;border:0;font-size:18px;color:var(--muted)}.upbar{grid-column:1 / -1;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden}.upbar span{display:block;height:100%;background:var(--primary);transition:width .15s}.upbar.processing span{background:linear-gradient(90deg,var(--primary) 0%,#9cc0ff 50%,var(--primary) 100%);background-size:200% 100%;animation:sk 1.1s linear infinite}.statusline{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);font-size:var(--fs-sm);color:var(--text-2);flex-wrap:wrap}.statusline>span:not(.dot){flex:1 1 300px}.statusline .dot{width:9px;height:9px;border-radius:50%;background:var(--ok);flex-shrink:0}.statusline.warn .dot{background:var(--accent)}.notice-list{border-top:1px solid var(--border)}.nrow{display:flex;align-items:center;gap:12px;padding:14px 16px 14px 22px}.nrow+.nrow{border-top:1px solid var(--border)}.nrow.dim .nmain b{color:var(--muted)}.nmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.nmain .nbody{font-size:var(--fs-sm);color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nmain .muted{font-size:var(--fs-xs)}@media (max-width: 900px){.libcon{grid-template-columns:1fr}.lib-side{display:none}.lib-side-select{display:block;margin:16px 22px 0;width:calc(100% - 44px);border:1px solid var(--border);border-radius:10px;height:42px;padding:0 32px 0 12px;background-color:var(--surface);background-position:right 10px center;font-weight:600}.bulkbar{top:64px}}@media (max-width: 640px){.card-head{padding:16px 16px 12px}.card-tools{padding:0 16px 12px}.card-tools .search-input{max-width:none}.card-actions{width:100%}.card-actions .primary{flex:1}.bulkbar{margin:0 16px 12px}table.data tr{padding:12px 16px!important}table.data.books tr{position:relative;padding-left:46px!important;padding-right:50px!important}table.data.books td.cb{position:absolute;left:16px;top:14px;width:auto!important;padding:0!important}table.data td.act{position:absolute;right:10px;top:10px;width:auto!important;margin:0!important}table.data tr{position:relative}table.data:not(.books) tr:has(td.act){padding-right:52px!important}table.data td.cb+td{width:100%}.lib-side-select{margin:12px 16px 0;width:calc(100% - 32px)}.actv{grid-template-columns:1fr;gap:0}.nrow{padding:12px 10px 12px 16px;flex-wrap:wrap}.shelf-row{gap:8px}}.lic-toggle{height:auto;padding:0;border:0;background:transparent;text-align:left;align-items:flex-start;justify-content:flex-start;white-space:normal;font-weight:inherit}@media (hover: hover){.lic-toggle:hover:not(:disabled){background:transparent;border:0}.lic-toggle:hover b{color:var(--primary)}}.lic-toggle .chev{display:inline-block;width:14px;color:var(--muted);transition:transform .15s}.lic-toggle .chev.open{transform:rotate(90deg)}.lic-sub{background:var(--bg-2);border-top:1px solid var(--border);padding-left:16px;max-height:360px;overflow-y:auto}.lic-sub .lic{min-height:48px}.lic-sub .lic+.lic{border-top:1px solid var(--border)}@media (max-width: 640px){.stats{display:flex;overflow-x:auto;gap:8px;margin:0 calc(-1 * var(--page-x));padding:0 var(--page-x) 4px;scroll-snap-type:x mandatory}.stats .stat{flex:0 0 136px;scroll-snap-align:start;padding:12px 14px}table.data.books td[data-l=folder]{display:none}}@media (max-width: 640px){table.data td:first-child,table.data th:first-child{padding-left:0}}@media (max-width: 640px){table.rows td:empty{display:none}}@media (max-width: 900px){.lib-tools{position:static;background:transparent;margin:0 calc(-1 * var(--page-x));padding:0 var(--page-x);border:0;overflow:hidden}.lib-search .search-input{max-width:none}.lib-filters{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);padding-right:28px}}a.btn{text-decoration:none}.btn.block{width:100%}.small{font-size:var(--fs-xs)}.plan-price{border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;background:var(--surface-2)}.plan-price>div{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.plan-price b{font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.plan-price>div span{color:var(--muted);font-size:var(--fs-sm)}.plan-price p{margin:0;font-size:var(--fs-sm);color:var(--text-2);line-height:1.5}.plan-price p.trial{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);color:var(--ok)}.sub-note{margin:0;padding:10px 12px;border-radius:var(--r);background:var(--warn-soft);color:var(--text);font-size:var(--fs-sm);line-height:1.5}.check-row{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-sm);line-height:1.5;color:var(--text-2);cursor:pointer}.check-row input{margin-top:2px;flex-shrink:0}.field small{display:block;margin-top:6px;font-weight:400}.sub-card{display:flex;flex-direction:column;gap:10px}.sub-card .sub-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.sub-card .sub-top b{font-size:var(--fs-body)}.sub-card dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;font-size:var(--fs-sm)}.sub-card dt{color:var(--muted)}.sub-card dd{margin:0}.sub-card+.sub-card{border-top:1px solid var(--border);padding-top:14px;margin-top:4px}pre.raw{width:100%;margin:8px 0 0;padding:10px 12px;background:var(--surface-2);border-radius:var(--r);font-size:11.5px;line-height:1.45;white-space:pre-wrap;word-break:break-all;max-height:260px;overflow:auto;cursor:text}.sub-card .row>*{flex:0 0 auto}.gtb .tsize span{font-weight:600;line-height:1;font-family:Georgia,Times New Roman,serif}.gtb .tb.del{color:var(--danger)}.gtb-cluster{display:flex;align-items:center;min-width:0}.gtb.gtb-stack .gtb-cluster{flex:1}.gtb.gtb-center .gtb-main{display:grid;grid-template-columns:1fr auto 1fr}.gtb.gtb-center .gtb-cluster{grid-column:2}.gtb.gtb-center .gtb-ctx{width:330px}.gtb.gtb-center .gtb-end{grid-column:3;justify-self:end}
