[data-rwp-wrapper] ul{margin:0;padding:0;list-style:none}[data-rwp-wrapper] li{margin:0;padding:0}[data-rwp-wrapper]{position:relative;overflow:hidden;display:flex;width:100%;align-items:stretch;justify-content:space-between;perspective:2000px;-webkit-user-select:none;-moz-user-select:none;user-select:none}[data-rwp]{position:relative;overflow:hidden;flex:1;cursor:default;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 20%,black 80%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,black 20%,black 80%,transparent 100%)}[data-rwp]:focus-visible{outline:none}[data-rwp-highlight-wrapper]{position:absolute;overflow:hidden;top:50%;width:100%;transform:translateY(-50%);font-size:1rem;font-weight:500}[data-rwp-highlight-list]{position:absolute;width:100%}[data-rwp-options]{position:absolute;top:50%;left:0;display:block;width:100%;height:0;margin:0 auto;-webkit-font-smoothing:subpixel-antialiased;will-change:transform;backface-visibility:hidden;transform-style:preserve-3d}[data-rwp-option]{position:absolute;top:0;left:0;width:100%;-webkit-font-smoothing:subpixel-antialiased;will-change:visibility;font-size:.875rem}[data-rwp-option],[data-rwp-highlight-item]{display:flex;align-items:center;justify-content:center}[data-rwp-option][data-disabled],[data-rwp-highlight-item][data-disabled]{pointer-events:none}/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-content:"";--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:"Geist Variable", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-xs:20rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--radius-md:calc(var(--radius) * .8);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Geist Variable", sans-serif;--default-mono-font-family:var(--font-mono);--color-border:var(--border);--color-accent:var(--accent)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}html{font-family:Geist Variable,sans-serif}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.z-\[300\]{z-index:300}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-auto{width:auto;height:auto}.h-\(--cell-size\){height:var(--cell-size)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-\[38px\]{height:38px}.h-full{height:100%}.h-px{height:1px}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.w-\(--cell-size\){width:var(--cell-size)}.w-72{width:calc(var(--spacing) * 72)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-xs{max-width:var(--container-xs)}.min-w-\(--cell-size\){min-width:var(--cell-size)}.min-w-36{min-width:calc(var(--spacing) * 36)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-text{cursor:text}.resize{resize:both}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\(--cell-radius\){border-radius:var(--cell-radius)}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-none{border-radius:0}.rounded-l-\(--cell-radius\){border-top-left-radius:var(--cell-radius);border-bottom-left-radius:var(--cell-radius)}.rounded-r-\(--cell-radius\){border-top-right-radius:var(--cell-radius);border-bottom-right-radius:var(--cell-radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-border{border-color:var(--border)}.border-destructive{border-color:var(--destructive)}.border-input{border-color:var(--input)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--background)}.bg-border{background-color:var(--border)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.px-\(--cell-size\){padding-inline:var(--cell-size)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:Geist Variable,sans-serif}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-background{color:var(--background)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.ring-ring{--tw-ring-color:var(--ring)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-offset-2{outline-offset:2px}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[--cell-radius\:var\(--radius-md\)\]{--cell-radius:var(--radius-md)}.\[--cell-size\:--spacing\(7\)\]{--cell-size:calc(var(--spacing) * 7)}.group-data-\[focused\=true\]\/day\:relative:is(:where(.group\/day)[data-focused=true] *){position:relative}.group-data-\[focused\=true\]\/day\:z-10:is(:where(.group\/day)[data-focused=true] *){z-index:10}.group-data-\[focused\=true\]\/day\:border-ring:is(:where(.group\/day)[data-focused=true] *){border-color:var(--ring)}.group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.group\/day)[data-focused=true] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:right-0:after{content:var(--tw-content);right:calc(var(--spacing) * 0)}.after\:left-0:after{content:var(--tw-content);left:calc(var(--spacing) * 0)}.after\:w-4:after{content:var(--tw-content);width:calc(var(--spacing) * 4)}.after\:bg-muted:after{content:var(--tw-content);background-color:var(--muted)}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus,:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}:where([data-slot=card-content]) .in-data-\[slot\=card-content\]\:bg-transparent,:where([data-slot=popover-content]) .in-data-\[slot\=popover-content\]\:bg-transparent{background-color:#0000}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.aria-selected\:text-muted-foreground[aria-selected=true],.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-side-bottom\:slide-in-from-top-2[data-side-bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-side-left\:slide-in-from-right-2[data-side-left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-side-right\:slide-in-from-left-2[data-side-right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-side-top\:slide-in-from-bottom-2[data-side-top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[position\=popper\]\:h-\(--radix-select-trigger-height\)[data-position=popper]{height:var(--radix-select-trigger-height)}.data-\[position\=popper\]\:w-full[data-position=popper]{width:100%}.data-\[position\=popper\]\:min-w-\(--radix-select-trigger-width\)[data-position=popper]{min-width:var(--radix-select-trigger-width)}.data-\[range-end\=true\]\:rounded-\(--cell-radius\)[data-range-end=true]{border-radius:var(--cell-radius)}.data-\[range-end\=true\]\:rounded-r-\(--cell-radius\)[data-range-end=true]{border-top-right-radius:var(--cell-radius);border-bottom-right-radius:var(--cell-radius)}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:var(--primary)}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:var(--primary-foreground)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-middle\=true\]\:bg-muted[data-range-middle=true]{background-color:var(--muted)}.data-\[range-middle\=true\]\:text-foreground[data-range-middle=true]{color:var(--foreground)}.data-\[range-start\=true\]\:rounded-\(--cell-radius\)[data-range-start=true]{border-radius:var(--cell-radius)}.data-\[range-start\=true\]\:rounded-l-\(--cell-radius\)[data-range-start=true]{border-top-left-radius:var(--cell-radius);border-bottom-left-radius:var(--cell-radius)}.data-\[range-start\=true\]\:bg-primary[data-range-start=true]{background-color:var(--primary)}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true]{color:var(--primary-foreground)}.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:var(--primary)}.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:var(--primary-foreground)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md),10px)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing) * 1.5)}@media (min-width:48rem){.md\:flex-row{flex-direction:row}}.dark\:border-input:is([data-theme=dark] *){border-color:var(--input)}.dark\:bg-destructive\/20:is([data-theme=dark] *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/20:is([data-theme=dark] *){background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.dark\:bg-input\/30:is([data-theme=dark] *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is([data-theme=dark] *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is([data-theme=dark] *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-destructive\/30:is([data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.dark\:hover\:bg-input\/50:is([data-theme=dark] *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is([data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}.dark\:hover\:bg-muted\/50:is([data-theme=dark] *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-muted\/50:is([data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.dark\:hover\:text-foreground:is([data-theme=dark] *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is([data-theme=dark] *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is([data-theme=dark] *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:border-destructive\/50:is([data-theme=dark] *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:border-destructive\/50:is([data-theme=dark] *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is([data-theme=dark] *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is([data-theme=dark] *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-disabled\:pointer-events-none:where([data-disabled=true]),.data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.data-disabled\:opacity-50:where([data-disabled=true]),.data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-\(--cell-radius\):first-child[data-selected=true] button{border-top-left-radius:var(--cell-radius);border-bottom-left-radius:var(--cell-radius)}:is(.rtl\:\*\*\:\[\.rdp-button\\_next\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_next>svg),:is(.rtl\:\*\*\:\[\.rdp-button\\_previous\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_previous>svg){rotate:180deg}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-\(--cell-radius\):last-child[data-selected=true] button{border-top-right-radius:var(--cell-radius);border-bottom-right-radius:var(--cell-radius)}.\[\&\:nth-child\(2\)\[data-selected\=true\]_button\]\:rounded-l-\(--cell-radius\):nth-child(2)[data-selected=true] button{border-top-left-radius:var(--cell-radius);border-bottom-left-radius:var(--cell-radius)}.\[\&\>span\]\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}}:root{--font-mono:"Maple Mono CN", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:light;color:#18201d;--app-bg:#fbfbfa;--app-text:#18201d;--app-muted:#68736d;--app-subtle:#87918b;--surface:#fff;--surface-raised:#fff;--surface-soft:#f4f5f2;--panel:#f6f7f5;--line:#e1e4df;--line-strong:#cdd4cc;--field-bg:#fff;--field-focus:#2f6f62;--accent:#2f6f62;--accent-strong:#24584f;--accent-soft:#e8f1ed;--accent-text:#fff;--brand-accent:#2f6f62;--brand-accent-strong:#24584f;--brand-accent-soft:#e8f1ed;--brand-accent-text:#fff;--link:#286783;--danger:#b24b3f;--info:#286783;--success:#2d8a4e;--star-bg:#fff1c2;--star:#a76d00;--shadow:0 14px 36px #2a3a3117;--shadow-soft:0 8px 22px #2a3a3112;--overlay:#0f17147a;background:#f7f8f4;font-family:Exo Local,Evo,冬青黑体简体中文,Source Han Sans SC,思源黑体,微软雅黑,ui-sans-serif,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}:root[data-theme=dark]{color-scheme:dark;color:#edf6f0;--app-bg:#090d10;--app-text:#edf6f0;--app-muted:#8da19a;--app-subtle:#6f817b;--surface:#11181b;--surface-raised:#151f22;--surface-soft:#0e1518;--panel:#0f171b;--line:#223236;--line-strong:#31464b;--field-bg:#0b1114;--field-focus:#8ee6b2;--accent:#8ee6b2;--accent-strong:#aaf0c8;--accent-soft:#12251d;--accent-text:#07110c;--brand-accent:#8ee6b2;--brand-accent-strong:#aaf0c8;--brand-accent-soft:#12251d;--brand-accent-text:#07110c;--link:#86d7ff;--danger:#ff887f;--info:#86d7ff;--success:#6dd595;--star-bg:#222a18;--star:#d8ff85;--shadow:0 16px 34px #00000057;--shadow-soft:0 10px 26px #0000004d;--overlay:#0000009e;background:#090d10}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Exo Local;src:url(/fonts/Exo.woff2)format("woff2");font-display:swap}@font-face{font-family:"Jersey 10 Local";src:url(/fonts/Jersey10.woff2)format("woff2");font-display:swap}*{box-sizing:border-box}html{scrollbar-gutter:stable}body[data-scroll-locked][data-scroll-locked]{margin-right:0!important;padding-right:0!important}body{background:radial-gradient(circle at 8% 0%,var(--brand-accent),transparent 30%),var(--app-bg);margin:0}@supports (color:color-mix(in lab,red,red)){body{background:radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--brand-accent) 4%,transparent),transparent 30%),var(--app-bg)}}body,body *{cursor:default}button,input,select{font:inherit}button,button *,a,a *,[role=button],[role=button] *{cursor:pointer}input,textarea{cursor:text}input[type=button],input[type=checkbox],input[type=color],input[type=file],input[type=radio],input[type=range],input[type=reset],input[type=submit],select,.checkbox-row,.checkbox-row *{cursor:pointer}.font-mono{font-family:var(--font-mono)}a{color:var(--link);font-weight:650;text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;color:var(--app-text)}.top-nav{z-index:100;border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:18px;display:flex;position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.top-nav{background:color-mix(in srgb,var(--surface) 88%,transparent)}}.top-nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);will-change:transform;padding:12px 32px;transition:transform .3s}.top-nav h1{font-family:"Jersey 10 Local",var(--font-mono);letter-spacing:0;text-transform:uppercase;text-shadow:1px 0 0 var(--brand-accent),0 1px 0 var(--brand-accent);margin:0;font-size:31px;font-weight:400;line-height:.9}@supports (color:color-mix(in lab,red,red)){.top-nav h1{text-shadow:1px 0 0 color-mix(in srgb,var(--brand-accent) 38%,transparent),0 1px 0 color-mix(in srgb,var(--brand-accent) 24%,transparent)}}.brand-mark{flex:none;align-items:center;gap:10px;min-width:0;display:inline-flex}.brand-logo-wrap{flex:none;width:30px;height:30px;display:block;position:relative}.brand-logo{width:30px;height:30px;display:block}.top-nav nav{border:1px solid var(--line);background:var(--surface-soft);border-radius:999px;gap:6px;padding:4px;display:flex}.top-nav-actions{align-items:center;gap:12px;display:flex}.theme-toggle{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--app-text);cursor:pointer;border-radius:999px;place-items:center;transition:background-color .16s,border-color .16s;display:grid}.theme-toggle:hover{border-color:var(--line-strong);background:var(--surface-soft)}.nav-button,.primary-button,.secondary-button,.icon-button{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--app-text);border-radius:8px;font-weight:680;transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s,transform .16s}.nav-button{min-height:34px;color:var(--app-muted);border-color:#0000;border-radius:999px;padding:0 14px}.nav-button.active,.primary-button{border-color:var(--brand-accent);background:var(--brand-accent);color:var(--brand-accent-text);box-shadow:0 8px 18px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.nav-button.active,.primary-button{box-shadow:0 8px 18px color-mix(in srgb,var(--brand-accent) 22%,transparent)}}.primary-button,.secondary-button{padding:0 14px}.danger-button,.danger-button:hover{border-color:var(--danger);color:var(--danger)}.secondary-button:hover,.icon-button:hover,.nav-button:not(.active):hover{border-color:var(--line-strong);background:var(--surface-raised);color:var(--app-text)}.primary-button:hover:not(:disabled){background:var(--brand-accent-strong);border-color:var(--brand-accent-strong);transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.content-panel{width:min(1120px,100% - 32px);margin:0 auto;padding:26px 0 44px}@media (max-width:768px){.brand-logo-wrap{display:none}.top-nav-hidden{transform:translateY(-100%)}}@media (max-width:720px){.brand-mark{display:none}}.toolbar{border:1px solid var(--line);background:var(--panel);border-radius:12px;grid-template-columns:minmax(150px,220px) minmax(0,1fr) auto;gap:10px;margin-bottom:18px;padding:12px;transition:grid-template-columns .18s;display:grid}.toolbar:has(.toolbar-search:focus-within),.toolbar.search-expanded{grid-template-columns:minmax(280px,1fr) 0 auto}.toolbar-search{border:1px solid var(--line);background:var(--field-bg);min-width:0;min-height:38px;color:var(--app-muted);border-radius:8px;outline:none;align-items:center;gap:8px;padding:0 8px 0 10px;transition:border-color .16s,box-shadow .16s,background-color .16s;display:flex}.toolbar-search:focus-within{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.toolbar-search:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.toolbar-search>svg{color:var(--app-subtle);flex:none}.toolbar-search input,.form-grid label>input:not([type=checkbox]):not([type=file]):not([type=hidden]){border:1px solid var(--line);background:var(--field-bg);width:100%;min-height:38px;color:var(--app-text);border-radius:8px;outline:none;padding:0 12px;transition:border-color .16s,box-shadow .16s,background-color .16s}.toolbar-search input{min-width:0;box-shadow:none;background:0 0;border:0;flex:1;padding:0}.toolbar-search input:focus{box-shadow:none;border:0}.toolbar-search-clear{width:26px;height:26px;color:var(--app-muted);background:0 0;border:0;border-radius:999px;flex:none;place-items:center;padding:0;transition:background-color .14s,color .14s;display:grid}.toolbar-search-clear:hover,.toolbar-search-clear:focus-visible{background:var(--surface-soft);color:var(--app-text);outline:none}.toolbar-actions{grid-column:3;grid-template-columns:auto 160px 42px;justify-content:end;gap:10px;display:grid}.toolbar-actions.no-add{grid-template-columns:auto 160px}.toolbar-add-button{place-items:center;min-width:42px;padding:0;display:grid}.toolbar-add-button svg{flex:none}.toolbar-search input::placeholder,.form-grid input::placeholder{color:var(--app-subtle)}.form-grid label>input:not([type=checkbox]):not([type=file]):not([type=hidden]):focus{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.form-grid label>input:not([type=checkbox]):not([type=file]):not([type=hidden]):focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.tag-filter-button{border:1px solid var(--line);background:linear-gradient(180deg,var(--surface-raised),transparent),var(--field-bg);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:38px;display:flex}@supports (color:color-mix(in lab,red,red)){.tag-filter-button{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-raised) 55%,transparent),transparent),var(--field-bg)}}.tag-filter-button{color:var(--app-text);cursor:pointer;outline:none;padding:0 10px 0 12px;font-weight:650;transition:border-color .16s,box-shadow .16s,background-color .16s}.tag-filter-button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sort-indicator{color:var(--brand-accent-strong);flex:none;font-size:12px;font-weight:700}.sort-option-arrow{text-align:center;width:14px;color:var(--brand-accent-strong);flex:none;font-size:12px;font-weight:700;display:inline-block}.tag-filter-option.sort-active{background:var(--brand-accent-soft);color:var(--brand-accent-strong)}.tag-filter-button svg{color:var(--app-muted);flex:none;transition:transform .16s}.tag-filter-button[data-state=open] svg{transform:rotate(180deg)}.tag-filter-button:hover{border-color:var(--line-strong);background:var(--surface-raised)}.tag-filter-button:focus-visible,.tag-filter-button[data-state=open]{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.tag-filter-button:focus-visible,.tag-filter-button[data-state=open]{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.tag-filter-menu{z-index:20;width:var(--radix-select-trigger-width);border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:160px;max-height:240px;padding:4px;display:grid;overflow:auto;box-shadow:0 18px 46px #0000002e}.tag-filter-option{min-height:34px;color:var(--app-text);cursor:pointer;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:0 10px;font-weight:650;transition:background-color .14s,box-shadow .14s,color .14s;overflow:hidden}.tag-filter-option:hover,.tag-filter-option:focus-visible,.tag-filter-option[data-highlighted]{background:var(--surface-raised);outline:none}.tag-filter-option[data-state=checked]{background:var(--brand-accent-soft);color:var(--brand-accent-strong)}.tag-filter-option[data-state=checked]:hover,.tag-filter-option[data-state=checked]:focus-visible,.tag-filter-option[data-state=checked][data-highlighted]{background:var(--brand-accent-soft)}@supports (color:color-mix(in lab,red,red)){.tag-filter-option[data-state=checked]:hover,.tag-filter-option[data-state=checked]:focus-visible,.tag-filter-option[data-state=checked][data-highlighted]{background:color-mix(in srgb,var(--brand-accent-soft) 72%,var(--surface-raised))}}.tag-filter-option[data-state=checked]:hover,.tag-filter-option[data-state=checked]:focus-visible,.tag-filter-option[data-state=checked][data-highlighted]{box-shadow:inset 0 0 0 1px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.tag-filter-option[data-state=checked]:hover,.tag-filter-option[data-state=checked]:focus-visible,.tag-filter-option[data-state=checked][data-highlighted]{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-accent) 28%,transparent)}}:root:not([data-theme=dark]) .tag-filter-option:hover,:root:not([data-theme=dark]) .tag-filter-option:focus-visible,:root:not([data-theme=dark]) .tag-filter-option[data-highlighted]{background:#edf3ee}:root:not([data-theme=dark]) .tag-filter-option[data-state=checked]:hover,:root:not([data-theme=dark]) .tag-filter-option[data-state=checked]:focus-visible,:root:not([data-theme=dark]) .tag-filter-option[data-state=checked][data-highlighted]{background:#dbe9e2;box-shadow:inset 0 0 0 1px #2f6f623d}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;display:grid}.card-grid>*{min-width:0}.book-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:10px;display:grid}.book-grid>*{min-width:0}.paginated-list{position:relative}.paginated-list-overlay{z-index:20;background:var(--surface);place-items:center;min-height:120px;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.paginated-list-overlay{background:color-mix(in srgb,var(--surface) 62%,transparent)}}.paginated-list-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto}.paginated-list-overlay:before{content:"";background:var(--surface-soft);position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.paginated-list-overlay:before{background:color-mix(in srgb,var(--surface-soft) 28%,transparent)}}.paginated-list-loading-pill{z-index:1;border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:8px;min-height:36px;padding:0 14px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.paginated-list-loading-pill{background:color-mix(in srgb,var(--surface) 94%,transparent)}}.paginated-list-loading-pill{color:var(--app-text);box-shadow:0 8px 20px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.paginated-list-loading-pill{box-shadow:0 8px 20px color-mix(in srgb,var(--brand-accent) 12%,transparent)}}.paginated-list-loading-pill{font-size:13px;font-weight:680}@media (max-width:720px){.paginated-list-overlay{display:none}}.card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:12px;padding:12px}.card-heading,.card-actions{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.card-heading>*,.card-actions>*{min-width:0}.card h3{overflow-wrap:anywhere;min-width:0;margin:0 0 6px;font-size:17px;line-height:1.25}.project-card h3{font-family:var(--font-mono);margin-bottom:0}.project-card{gap:6px}.book-card{flex-direction:column;align-items:center;gap:0;padding:6px;display:flex}.project-card{cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;flex-direction:column;transition:border-color .16s,box-shadow .16s;display:flex}.book-card{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;outline:none;transition:border-color .16s,box-shadow .16s}.book-card h3{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;max-width:100%;margin:0 0 2px;font-size:14px;font-weight:600;line-height:1.3;overflow:hidden}.project-card:focus-visible,.book-card:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}.project-card:hover,.book-card:hover{border-color:var(--line-strong);box-shadow:0 4px 14px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.project-card:hover,.book-card:hover{box-shadow:0 4px 14px color-mix(in srgb,var(--brand-accent) 10%,transparent)}}.project-title{align-items:center;gap:6px;display:inline-flex}.card-heading h3 a{color:inherit;text-decoration:none}.card-heading h3 a:hover{text-decoration:underline}.project-description{min-height:40.6px;color:var(--app-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.45;display:-webkit-box;overflow:hidden}.project-remark{background:var(--brand-accent-soft);margin:0;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.project-remark{background:color-mix(in srgb,var(--brand-accent-soft) 72%,transparent)}}.project-remark{color:var(--brand-accent-strong);text-overflow:ellipsis;white-space:nowrap;padding:5px 8px 5px 11px;font-size:12px;font-weight:690;line-height:1.35}.project-remark:before{content:"";background:var(--brand-accent);width:3px;position:absolute;top:0;bottom:0;left:0}.project-remark-placeholder{visibility:hidden}.project-meta-row{min-height:22px;color:var(--app-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.8rem;display:flex}.project-meta-item{white-space:nowrap;font-family:var(--font-mono);align-items:center;gap:.35rem;display:inline-flex}.language-dot{border-radius:999px;flex:none;width:.625rem;height:.625rem}.book-cover{aspect-ratio:2/3;border:1px solid var(--line);background:var(--surface-soft);width:60%;color:var(--app-muted);border-radius:6px;place-items:center;margin-bottom:5px;font-size:11px;display:grid;overflow:hidden}.book-cover img{object-fit:cover;width:100%;height:100%}.book-card-info{flex-direction:column;align-items:center;width:100%;min-width:0;display:flex}.book-card-author{color:var(--app-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;margin:0 0 1px;font-size:11px;line-height:1.3;overflow:hidden}.book-card-publisher{color:var(--app-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;margin:0 0 4px;font-size:10px;line-height:1.3;overflow:hidden}.book-card-read-status{justify-content:center;align-items:center;gap:4px;width:100%;margin-bottom:2px;display:flex}.book-read-badge{color:var(--success,#10b981);font-size:10px;font-weight:600}.book-note-icon{background:var(--surface-soft);width:16px;height:16px;color:var(--app-muted);cursor:default;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;font-weight:600;display:inline-flex}.book-note-tooltip{white-space:pre-wrap;word-break:break-all;max-width:200px;font-size:12px}.book-card-note{color:var(--app-muted);text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;margin:0 0 2px;font-size:10px;line-height:1.3;overflow:hidden}.book-card-tags{flex-wrap:wrap;justify-content:center;align-items:center;gap:3px;width:100%;margin-top:3px;display:flex}.book-card-category{background:var(--info);border:1px solid #0000;border-radius:3px;min-height:16px;display:inline-block}@supports (color:color-mix(in lab,red,red)){.book-card-category{background:color-mix(in srgb,var(--info) 12%,var(--surface-soft))}}.book-card-category{color:var(--info);font-size:9px;line-height:16px;font-family:var(--font-mono);padding:0 4px}.book-card-tag{background:var(--brand-accent-soft);min-height:16px;color:var(--brand-accent-strong);font-size:9px;line-height:16px;font-family:var(--font-mono);border:1px solid #0000;border-radius:3px;padding:0 4px;display:inline-block}.star-rating-input{align-items:center;gap:2px;display:inline-flex}.star-btn{width:30px;height:30px;color:var(--line);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;line-height:0;transition:color .12s,background-color .12s;display:inline-flex}.star-btn svg{width:20px;height:20px;display:block;transform:translateY(1px)}.star-btn:hover{background:var(--hover-bg)}.star-btn-filled{color:#f59e0b}.book-card-overlay{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0003;animation:.3s cubic-bezier(.22,1,.36,1) overlay-fade-in;position:fixed;top:0;right:0;bottom:0;left:0}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.book-card-expanded{z-index:50;border:1px solid var(--line-strong);padding:16px;position:fixed;display:block!important}@supports (color:color-mix(in lab,red,red)){.book-card-expanded{border:1px solid color-mix(in srgb,var(--line-strong) 50%,transparent)}}.book-card-expanded{background:var(--surface)}@supports (color:color-mix(in lab,red,red)){.book-card-expanded{background:color-mix(in srgb,var(--surface) 98%,var(--brand-accent-soft))}}.book-card-expanded{cursor:default;animation:.35s cubic-bezier(.22,1,.36,1) card-float-up;box-shadow:0 1px 2px #0000000a,0 4px 8px #0000000f,0 12px 24px #0000001a,0 24px 48px #00000024}.book-card-drawer-handle,.book-card-drawer-close{display:none}@keyframes card-float-up{0%{opacity:0;transform:scale(.9)translateY(20px);box-shadow:0 2px 4px #0000000a}60%{opacity:1;transform:scale(1.01)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.book-card-expand-inner{grid-template-columns:150px minmax(0,1fr);align-items:start;gap:8px 24px;width:100%;display:grid}.book-detail-media{align-content:start;justify-items:stretch;gap:10px;min-width:0;display:grid}.book-detail-cover{min-height:0}.book-detail-cover .book-cover{aspect-ratio:2/3;width:100%;max-width:none;height:auto;margin-bottom:0}.book-detail-main{flex-direction:column;min-width:0;display:flex}.book-detail-header{align-items:flex-start;padding-right:44px;display:flex;position:relative}.book-detail-title-group{flex:1;min-width:0}.book-detail-title-row{align-items:baseline;gap:4px;min-width:0;display:flex}.book-detail-title-row h3{min-width:0;margin:0;font-size:20px;font-weight:800;line-height:1.25}.book-detail-subtitle{min-width:0;color:var(--app-muted);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;line-height:1.35;overflow:hidden}.book-douban-link{border:1px solid var(--line);background:var(--link);border-radius:8px;justify-content:center;align-items:center;gap:4px;min-height:34px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.book-douban-link{background:color-mix(in srgb,var(--link) 12%,var(--surface-soft))}}.book-douban-link{color:var(--link);white-space:nowrap;width:100%;padding:0 10px;font-size:12px;font-weight:700;text-decoration:none}.book-douban-link svg{width:12px;height:12px}.book-douban-icon{flex:0 0 16px;width:16px;height:16px;display:block}.book-detail-meta{color:var(--app-muted);margin:4px 0 0;font-size:13px;line-height:1.4}.book-detail-meta-placeholder{color:var(--app-subtle,var(--app-muted))}.book-detail-tags{justify-content:flex-start;margin-top:0}.book-detail-tags-row{margin-top:8px;line-height:16px;display:block}.book-read-section{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.book-read-section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.book-read-section-header h4{margin:0;font-size:14px}.book-read-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.book-read-card{border:1px solid var(--line);background:var(--surface-soft);border-radius:6px;min-width:0;padding:8px 10px}.book-read-card-label{color:var(--app-muted);font-size:11px;line-height:1.2;display:block}.book-read-card-value{margin-top:3px;font-size:13px;line-height:1.3;display:block}.book-read-status-badge{color:var(--success,#10b981)}.book-read-note{background:var(--surface-soft);color:var(--app-text);overflow-wrap:anywhere;-webkit-line-clamp:2;border-radius:6px;-webkit-box-orient:vertical;margin:10px 0 0;padding:8px 10px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.book-read-empty-hint{background:var(--surface-soft);color:var(--app-muted);border-radius:6px;margin:10px 0 0;padding:8px 10px;font-size:12px;line-height:1.5}.book-read-editor{gap:12px;display:grid}.book-read-editor-inline{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.book-read-toggle{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.book-read-toggle button{min-height:40px;color:var(--app-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:13px;font-weight:700}.book-read-toggle button.active{background:var(--surface);color:var(--brand-accent-strong);box-shadow:0 1px 4px #0000001f}.book-read-rating-editor{flex-wrap:wrap;align-items:center;gap:10px;min-height:38px;display:flex}.book-read-rating-editor .star-rating-input{min-height:38px;margin-left:-5px}.book-read-rating-editor>span{color:var(--app-muted);font-size:12px;font-weight:700}.book-note-textarea{border:1px solid var(--line);background:var(--field-bg);width:100%;min-height:88px;color:var(--app-text);font:inherit;resize:none;border-radius:8px;outline:none;padding:6px 10px;font-size:13px;transition:border-color .16s,box-shadow .16s}.book-read-editor-helper{color:var(--app-subtle,var(--app-muted));margin:0;font-size:12px;line-height:1.5}.book-note-textarea:focus{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.book-note-textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.book-expand-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.book-expand-actions .danger-button{grid-column:1/-1}.book-expand-actions .primary-button,.book-expand-actions .secondary-button{min-height:32px;padding:0 12px;font-size:12px}.book-detail-actions{background:0 0;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:10px;margin:0 -16px -16px;padding:8px 16px 12px;display:grid}.book-detail-header-actions{align-items:flex-start;gap:6px;display:flex;position:absolute;top:0;right:0}.book-edit-book-btn,.book-edit-read-btn{min-height:40px;padding:0 12px;font-size:13px}.book-rating{align-items:center;gap:0;font-size:12px;line-height:1;display:inline-flex}.book-rating span{line-height:1;display:inline-block}.star-filled{color:#f59e0b}.star-empty{color:var(--line)}.book-inline-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.book-inline-fields>*{min-width:0}.book-inline-fields .book-douban-url-field,.book-inline-fields .book-tags-field{grid-column:1/-1}.book-locked-isbn-input{border-style:dashed!important;border-color:var(--line-strong)!important}@supports (color:color-mix(in lab,red,red)){.book-locked-isbn-input{border-color:color-mix(in srgb,var(--line-strong) 70%,transparent)!important}}.book-locked-isbn-input{background:repeating-linear-gradient(135deg,var(--surface-soft) 0,var(--surface-soft) 8px,var(--surface-raised) 8px,var(--surface-raised) 16px)!important}@supports (color:color-mix(in lab,red,red)){.book-locked-isbn-input{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--surface-soft) 88%,transparent) 0,color-mix(in srgb,var(--surface-soft) 88%,transparent) 8px,color-mix(in srgb,var(--surface-raised) 74%,transparent) 8px,color-mix(in srgb,var(--surface-raised) 74%,transparent) 16px)!important}}.book-locked-isbn-input{cursor:not-allowed;opacity:1;color:var(--app-muted)!important}.book-lookup-gate{align-content:center;min-height:280px;transition:min-height .18s;display:grid}.book-lookup-gate.compact{align-content:start;min-height:0}.book-lookup-field{justify-items:center;gap:16px;display:grid}.book-lookup-field.compact{justify-items:stretch;gap:5px}.book-lookup-title{color:var(--app-text);text-align:center;font-size:18px;font-weight:600}.book-lookup-field.compact .book-lookup-title{display:none}.book-isbn-search-control{border:1px solid var(--line);background:var(--field-bg);border-radius:10px;align-items:center;width:100%;min-height:44px;transition:border-color .16s,box-shadow .16s,background-color .16s;display:flex;overflow:hidden}.book-isbn-search-control:focus-within{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.book-isbn-search-control:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.book-isbn-search-control.is-searching{border-color:var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.book-isbn-search-control.is-searching{border-color:color-mix(in srgb,var(--brand-accent) 45%,var(--line))}}.book-isbn-search-control.is-searching{background:var(--brand-accent-soft)}@supports (color:color-mix(in lab,red,red)){.book-isbn-search-control.is-searching{background:color-mix(in srgb,var(--brand-accent-soft) 42%,var(--field-bg))}}.book-isbn-search-control.is-searching{box-shadow:0 0 0 3px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.book-isbn-search-control.is-searching{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-accent) 12%,transparent)}}.book-isbn-search-control.is-searching{cursor:wait}.book-isbn-search-control input{width:100%;min-width:0;min-height:42px;color:var(--app-text);background:0 0;border:0;outline:none;padding:0 12px}.book-isbn-search-control input:disabled{color:var(--app-muted);cursor:wait;opacity:1}.book-isbn-search-control input:disabled::placeholder{color:var(--brand-accent-strong);opacity:1;font-weight:600}.book-isbn-search-control input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.book-isbn-search-button{border:0;border-left:1px solid var(--line);background:var(--brand-accent-soft);place-items:center;width:44px;height:44px;display:grid}@supports (color:color-mix(in lab,red,red)){.book-isbn-search-button{background:color-mix(in srgb,var(--brand-accent-soft) 70%,transparent)}}.book-isbn-search-button{color:var(--brand-accent-strong);cursor:pointer;padding:0;transition:background-color .16s,color .16s}.book-isbn-search-button:hover,.book-isbn-search-button:focus-visible{background:var(--brand-accent-soft);color:var(--brand-accent);outline:none}.book-isbn-search-button:disabled{background:var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.book-isbn-search-button:disabled{background:color-mix(in srgb,var(--brand-accent) 18%,var(--surface-soft))}}.book-isbn-search-button:disabled{color:var(--brand-accent-strong);cursor:wait}.book-isbn-search-button .is-spinning{animation:.9s linear infinite book-cover-spin}.book-lookup-type-badge{white-space:nowrap;background:var(--brand-accent-soft);border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:12px;font-weight:500;line-height:1.4}@supports (color:color-mix(in lab,red,red)){.book-lookup-type-badge{background:color-mix(in srgb,var(--brand-accent-soft) 60%,transparent)}}.book-lookup-type-badge{color:var(--brand-accent-strong)}.tag-input,.form-grid{gap:10px;display:grid}.tag-input-field{border:1px solid var(--line);background:var(--field-bg);cursor:text;border-radius:8px;outline:none;flex-wrap:wrap;align-items:center;gap:6px;min-height:38px;padding:0 12px;transition:border-color .16s,box-shadow .16s,background-color .16s;display:flex}.tag-input-field:focus-within{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.tag-input-field:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.tag-input-field input{min-width:80px;min-height:36px;color:var(--app-text);box-shadow:none;font-family:var(--font-mono);background:0 0;border:none;outline:none;flex:80px;padding:0}.tag-input-field input:focus{box-shadow:none;border:none}.date-input-wrapper{border:1px solid var(--line);background:var(--field-bg);border-radius:8px;outline:none;align-items:center;width:100%;min-width:0;min-height:38px;transition:border-color .16s,box-shadow .16s,background-color .16s;display:flex;position:relative}.date-input-wrapper:focus-within{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.date-input-wrapper:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.date-input-field{min-width:0;min-height:36px;color:var(--app-text);box-shadow:none;font-size:inherit;background:0 0;border:none;outline:none;flex:1;padding:0 12px}.date-input-field:focus{box-shadow:none;border:none}.date-input-field::placeholder{color:var(--app-subtle)}.date-input-calendar-btn{width:36px;height:36px;color:var(--app-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-right:2px;transition:background-color .16s,color .16s;display:inline-flex}.date-input-calendar-btn:hover{background:var(--hover-bg);color:var(--app-text)}.edit-danger-actions{margin-top:12px;display:grid}.edit-danger-actions .secondary-button{width:100%}.tag-list{scrollbar-width:none;flex-wrap:nowrap;align-content:flex-start;align-items:flex-start;gap:6px;display:flex;overflow-x:auto}.tag-list::-webkit-scrollbar{display:none}.tag-chip{border:1px solid var(--line);background:var(--brand-accent-soft);min-height:24px;color:var(--brand-accent-strong);font-size:12px;line-height:22px;font-family:var(--font-mono);border-radius:999px;flex-shrink:0;padding:0 8px}.book-meta-tags{margin-top:6px}.book-category-chip{background:var(--info)}@supports (color:color-mix(in lab,red,red)){.book-category-chip{background:color-mix(in srgb,var(--info) 12%,var(--surface-soft))}}.book-category-chip{color:var(--info)}.tag-suggestions{margin-top:8px}.tag-suggestions-label{text-transform:uppercase;letter-spacing:.5px;opacity:.45;margin-bottom:6px;font-size:11px;display:block}.tag-suggestions-list{flex-wrap:wrap;gap:6px;display:flex}.tag-suggestion-chip{border:1px dashed var(--line);min-height:24px;color:var(--app-text);font-size:12px;line-height:22px;font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:3px;padding:0 6px 0 8px;transition:border-color .12s,background-color .12s,opacity .12s;display:inline-flex}.tag-suggestion-chip:hover{border-color:var(--brand-accent);background:var(--brand-accent-soft)}.tag-suggestion-chip:active{opacity:.7}.icon-button{place-items:center;min-width:38px;padding:0;display:grid}.icon-button svg{color:var(--star)}.empty-state{border:1px dashed var(--line);background:var(--surface);border-radius:12px;place-items:center;min-height:260px;display:grid}@supports (color:color-mix(in lab,red,red)){.empty-state{background:color-mix(in srgb,var(--surface) 72%,transparent)}}.empty-state{color:var(--app-muted);text-align:center}.empty-state p{color:var(--app-text);margin:0;font-weight:720}.scroll-date-picker-overlay{z-index:1000;background:#0006;place-items:flex-end;animation:.2s scroll-date-picker-fade-in;display:grid;position:fixed;top:0;right:0;bottom:0;left:0}@keyframes scroll-date-picker-fade-in{0%{opacity:0}to{opacity:1}}.scroll-date-picker{box-sizing:border-box;background:var(--surface);width:100%;max-height:calc(100dvh - 16px);padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:.28s cubic-bezier(.16,1,.3,1) scroll-date-picker-slide-up;overflow:hidden;box-shadow:0 -8px 32px #00000029}@keyframes scroll-date-picker-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.scroll-date-picker-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.scroll-date-picker-header h3{color:var(--app-text);margin:0;font-size:16px;font-weight:700}.scroll-date-picker-close{width:32px;height:32px;color:var(--app-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;transition:background-color .12s;display:grid}.scroll-date-picker-close:hover{background:var(--surface-soft)}.scroll-date-picker-wheels{height:244px;margin:12px 0;padding:0 4px}[data-rwp-wrapper]{align-items:center;gap:8px;height:100%}[data-rwp-highlight-wrapper]{z-index:1;background:var(--surface);color:var(--app-text);font-size:18px;font-weight:700}[data-rwp-option]{color:var(--app-subtle);font-size:16px;font-weight:500}[data-rwp-highlight-item]{color:var(--app-text);font-size:20px;font-weight:700}.scroll-date-picker-actions{padding-bottom:max(4px,env(safe-area-inset-bottom));grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;display:grid}.scroll-date-picker-btn{border-radius:10px;min-height:44px;padding:0 16px;font-size:15px;font-weight:700}@media (min-width:721px){.scroll-date-picker-overlay{display:none}}@media (max-height:560px) and (max-width:720px){.scroll-date-picker-wheels{height:220px}}.modal-backdrop{z-index:200;background:var(--overlay);justify-content:flex-end;padding:20px;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.modal{border:1px solid var(--line);background:var(--surface);border-radius:16px;width:min(520px,100%);height:100%;padding:20px;animation:.18s ease-out drawer-enter;overflow:auto;box-shadow:0 26px 80px #0000003d}.modal-header{z-index:1;border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;margin:-20px -20px 16px;display:flex;position:sticky;top:-20px}@supports (color:color-mix(in lab,red,red)){.modal-header{background:color-mix(in srgb,var(--surface) 92%,transparent)}}.modal-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:18px 20px}.modal-header h2{margin:0;font-size:18px}.cover-upload-backdrop{justify-content:center;align-items:center;padding:20px}.cover-upload-modal{border:1px solid var(--line);background:var(--surface);border-radius:16px;width:min(360px,100% - 40px);max-height:min(420px,100vh - 40px);padding:16px;animation:.2s ease-out modal-enter;overflow:auto;box-shadow:0 26px 80px #0000003d}.cover-upload-modal-header{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;margin:-16px -16px 12px;display:flex}@supports (color:color-mix(in lab,red,red)){.cover-upload-modal-header{background:color-mix(in srgb,var(--surface) 92%,transparent)}}.cover-upload-modal-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px 16px 0 0;padding:14px 16px}.cover-upload-modal-header h3{margin:0;font-size:16px}.cover-upload-modal-body{gap:10px;display:grid}.cover-upload-paste-area{border:2px dashed var(--line);background:var(--surface-soft);width:100%;min-height:100px;color:var(--app-muted);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:14px;transition:border-color .16s,background-color .16s;display:flex}.cover-upload-paste-area.drag-active,.cover-upload-paste-area:hover{border-color:var(--brand-accent);background:var(--brand-accent-soft)}@supports (color:color-mix(in lab,red,red)){.cover-upload-paste-area.drag-active,.cover-upload-paste-area:hover{background:color-mix(in srgb,var(--brand-accent-soft) 32%,var(--surface-soft))}}.cover-upload-paste-area svg{color:var(--brand-accent)}.cover-upload-paste-area p{margin:0;font-size:14px;font-weight:650}.cover-upload-hint{opacity:.6;font-size:12px!important}.cover-upload-divider{color:var(--app-muted);align-items:center;gap:10px;font-size:12px;font-weight:650;display:flex}.cover-upload-divider:before,.cover-upload-divider:after{content:"";background:var(--line);flex:1;height:1px}@keyframes modal-enter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.confirm-dialog-overlay{z-index:400;background:var(--overlay);animation:.16s ease-out confirm-overlay-enter;position:fixed;top:0;right:0;bottom:0;left:0}.confirm-dialog-content{z-index:401;border:1px solid var(--line);background:var(--surface);border-radius:16px;width:min(360px,100% - 32px);padding:22px;animation:.18s ease-out confirm-dialog-enter;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 26px 80px #00000047}.confirm-dialog-header{text-align:center;flex-direction:column;align-items:center;gap:0;display:flex}.confirm-dialog-icon{border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:14px;display:inline-flex}.confirm-dialog-icon-default{background:var(--brand-accent-soft);color:var(--brand-accent)}.confirm-dialog-icon-danger{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.confirm-dialog-icon-danger{background:color-mix(in srgb,var(--danger) 12%,transparent)}}.confirm-dialog-icon-danger{color:var(--danger)}.confirm-dialog-title{color:var(--app-text);margin:0 0 6px;font-size:17px;font-weight:760;line-height:1.35}.confirm-dialog-description{max-width:30ch;color:var(--app-muted);margin:0;font-size:14px;line-height:1.6}.confirm-dialog-footer{justify-content:center;gap:10px;margin-top:20px;display:flex}.confirm-dialog-footer button{min-width:82px}.confirm-dialog-footer button:focus-visible{outline:3px solid var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.confirm-dialog-footer button:focus-visible{outline:3px solid color-mix(in srgb,var(--field-focus) 35%,transparent)}}.confirm-dialog-footer button:focus-visible{outline-offset:2px}.confirm-dialog-footer button:disabled{cursor:not-allowed;opacity:.55;transform:none}.confirm-dialog-danger-button{border:1px solid var(--danger);background:var(--danger);min-height:38px;color:var(--surface);border-radius:8px;padding:0 14px;font-weight:680;transition:filter .16s,transform .16s}.confirm-dialog-danger-button:hover{filter:brightness(.92);transform:translateY(-1px)}@keyframes confirm-overlay-enter{0%{opacity:0}to{opacity:1}}@keyframes confirm-dialog-enter{0%{opacity:0;transform:translate(-50%,-48%)scale(.97)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (max-width:720px){.confirm-dialog-content{padding:20px}.confirm-dialog-footer{grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.confirm-dialog-footer button{min-height:44px}}@media (prefers-reduced-motion:reduce){.confirm-dialog-overlay,.confirm-dialog-content{animation:none}}[data-sonner-toaster]{--width:min(360px, calc(100vw - 32px) );pointer-events:auto!important;z-index:1000!important}.app-toast[data-styled=true]{--toast-background:var(--app-text)}@supports (color:color-mix(in lab,red,red)){.app-toast[data-styled=true]{--toast-background:color-mix(in srgb, var(--app-text) 88%, transparent)}}.app-toast[data-styled=true]{--toast-border:var(--app-muted)}@supports (color:color-mix(in lab,red,red)){.app-toast[data-styled=true]{--toast-border:color-mix(in srgb, var(--app-muted) 72%, transparent)}}.app-toast[data-styled=true]{--toast-foreground:#fff;box-sizing:border-box!important;border:2px solid var(--toast-border)!important;background:var(--toast-background)!important;width:fit-content!important;max-width:360px!important;min-height:52px!important;color:var(--toast-foreground)!important;border-radius:999px!important;gap:10px!important;margin-inline:auto!important;padding:10px 46px 10px 16px!important;font-family:inherit!important;position:relative!important;box-shadow:0 16px 34px #0003!important}.app-toast[data-type=error]{--toast-background:#5c1111eb;--toast-border:#a72a26}.app-toast[data-type=success]{--toast-background:#123f26eb;--toast-border:#287d4d}.app-toast[data-type=info]{--toast-background:#12354beb;--toast-border:#367da3}.app-toast[data-type=warning]{--toast-background:#523812eb;--toast-border:#9a6b28}.app-toast-icon{width:22px!important;height:22px!important;color:var(--toast-foreground)!important;flex:0 0 22px!important}.app-toast-icon svg{stroke-width:2.25px!important;width:22px!important;height:22px!important}.app-toast-content{min-width:0;gap:2px!important}.app-toast-title{letter-spacing:.01em;color:var(--toast-foreground)!important;font-size:14px!important;font-weight:720!important;line-height:1.45!important}.app-toast-description{color:var(--toast-foreground)!important}@supports (color:color-mix(in lab,red,red)){.app-toast-description{color:color-mix(in srgb,var(--toast-foreground) 76%,transparent)!important}}.app-toast-description{font-size:12px!important;line-height:1.45!important}.app-toast-close{width:38px!important;height:38px!important;color:var(--toast-foreground)!important;background:0 0!important;border:0!important;border-radius:50%!important;justify-content:center!important;align-items:center!important;margin:0!important;display:flex!important;position:absolute!important;inset:50% 5px auto auto!important;transform:translateY(-50%)!important}@supports (color:color-mix(in lab,red,red)){.app-toast-close{color:color-mix(in srgb,var(--toast-foreground) 58%,transparent)!important}}.app-toast-close{cursor:pointer;transition:background-color .16s,color .16s!important}.app-toast-close:hover{background:var(--toast-foreground)!important}@supports (color:color-mix(in lab,red,red)){.app-toast-close:hover{background:color-mix(in srgb,var(--toast-foreground) 10%,transparent)!important}}.app-toast-close:hover{color:var(--toast-foreground)!important}.app-toast-close:focus-visible{outline:2px solid var(--toast-foreground)!important;outline-offset:-4px!important}.app-toast-close svg{stroke-width:2px!important;width:16px!important;height:16px!important}@media (max-width:520px){[data-sonner-toaster]{--mobile-offset:12px;--width: calc(100vw - 24px) ;width:auto!important;left:12px!important;right:12px!important}.app-toast[data-styled=true]{gap:9px!important;width:fit-content!important;max-width:calc(100vw - 24px)!important;min-height:50px!important;padding:9px 44px 9px 14px!important}.app-toast-title{font-size:14px!important}}@media (prefers-reduced-motion:reduce){.app-toast-close{transition:none!important}}.form-grid label,.form-field{color:var(--app-muted);gap:6px;font-size:14px;font-weight:650;display:grid}.book-primary-fields{grid-template-columns:minmax(0,1fr) 125px;align-items:stretch;gap:12px;display:grid}.book-main-fields{grid-template-rows:repeat(3,minmax(0,1fr));gap:10px;min-width:0;display:grid}.book-main-fields label{align-content:stretch}.book-cover-upload-field{grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid}.book-cover-field-label{justify-content:space-between;align-items:flex-start;gap:8px;min-height:0;padding-right:32px;line-height:normal;display:flex;position:relative}.book-cover-import-button{width:28px;height:28px;color:var(--app-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;transition:background-color .16s,border-color .16s,color .16s;display:inline-grid;position:absolute;top:-4px;right:0}.book-cover-import-button:hover,.book-cover-import-button:focus-visible{border-color:var(--line);background:var(--surface-soft);color:var(--brand-accent)}.book-cover-import-button:disabled{color:var(--app-subtle);cursor:wait}.book-cover-import-button .is-spinning{animation:.9s linear infinite book-cover-spin}@keyframes book-cover-spin{to{transform:rotate(360deg)}}.book-cover-preview{aspect-ratio:2/3;border:1px solid var(--line);background:linear-gradient(180deg,var(--surface-raised),transparent),var(--surface-soft);border-radius:8px;place-items:center;width:100%;height:100%;display:grid;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.book-cover-preview{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-raised) 55%,transparent),transparent),var(--surface-soft)}}.book-cover-preview{color:var(--app-subtle);font-size:13px}.book-cover-preview img{object-fit:cover;width:100%;height:100%}.book-cover-preview{cursor:pointer;position:relative}.book-cover-upload-overlay{background:var(--surface);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.book-cover-upload-overlay{background:color-mix(in srgb,var(--surface) 72%,transparent)}}.book-cover-upload-overlay{color:var(--app-text);opacity:0;pointer-events:none;font-size:12px;font-weight:650;transition:opacity .16s}.book-cover-preview:hover .book-cover-upload-overlay,.book-cover-preview:focus-visible .book-cover-upload-overlay{opacity:1}.book-cover-upload-overlay svg{color:var(--brand-accent)}.book-cover-upload-field .file-upload-control,.form-grid .book-cover-upload-field .file-upload-control{min-height:38px;padding:0 10px}.book-cover-upload-field .file-upload-control span{white-space:nowrap}.file-upload-input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.form-grid .file-upload-control{border:1px solid var(--line);background:linear-gradient(180deg,var(--surface-raised),transparent),var(--field-bg);border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:42px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.form-grid .file-upload-control{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-raised) 70%,transparent),transparent),var(--field-bg)}}.form-grid .file-upload-control{color:var(--app-text);cursor:pointer;padding:0 14px;transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s,transform .16s}.form-grid .file-upload-control svg{color:var(--brand-accent);flex:none}.form-grid .file-upload-control:hover{border-color:var(--line-strong);background:var(--surface-raised);transform:translateY(-1px)}.file-upload-input:focus-visible+.file-upload-control{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.file-upload-input:focus-visible+.file-upload-control{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.file-upload-input:disabled+.file-upload-control,.form-grid .file-upload-control[data-uploading=true]{color:var(--app-muted);cursor:wait;transform:none}.file-upload-meta{min-height:18px;color:var(--app-subtle);overflow-wrap:anywhere;font-size:12px;font-weight:560}.checkbox-row{color:var(--app-text);grid-template-columns:auto 1fr;align-items:center;gap:8px}.checkbox-row input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1.5px solid var(--line-strong);background:var(--field-bg);cursor:pointer;border-radius:4px;outline:none;width:14px;height:14px;transition:background-color .14s,border-color .14s}.checkbox-row input[type=checkbox]:checked{background:var(--brand-accent);border-color:var(--brand-accent)}.checkbox-row input[type=checkbox]:checked:after{content:"";border:solid var(--brand-accent-text);border-width:0 1.5px 1.5px 0;width:4px;height:7px;margin:0 auto;display:block;transform:rotate(45deg)}.category-select{position:relative}.category-select-trigger{border:1px solid var(--line);background:var(--field-bg);width:100%;min-height:38px;color:var(--app-text);cursor:pointer;font-weight:inherit;border-radius:8px;outline:none;justify-content:space-between;align-items:center;gap:8px;padding:0 10px 0 12px;transition:border-color .16s,box-shadow .16s,background-color .16s;display:flex}.category-select-trigger:hover{border-color:var(--line-strong)}.category-select-trigger:focus-visible,.category-select-trigger[data-state=open]{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.category-select-trigger:focus-visible,.category-select-trigger[data-state=open]{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.category-select-trigger .placeholder{color:var(--app-subtle)}.category-select-trigger svg{color:var(--app-muted);flex:none;transition:transform .16s}.category-select-trigger[data-state=open] svg{transform:rotate(180deg)}.category-select-trigger span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.category-select-menu{z-index:20;border:1px solid var(--line);background:var(--surface);border-radius:8px;width:100%;min-width:160px;max-height:220px;padding:4px;display:grid;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 18px 46px #0000002e}.category-select-menu-top{top:auto;bottom:calc(100% + 4px)}.category-select-menu::-webkit-scrollbar{width:6px}.category-select-menu::-webkit-scrollbar-track{background:0 0}.category-select-menu::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.category-select-menu::-webkit-scrollbar-thumb:hover{background:var(--line-strong)}.category-select-option{min-height:34px;color:var(--app-text);cursor:pointer;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:6px;align-items:center;padding:0 6px 0 10px;font-weight:650;transition:background-color .14s,color .14s;display:flex;overflow:hidden}.category-select-option:hover,.category-select-option:focus-visible{background:var(--surface-soft);outline:none}.category-select-option.active{background:var(--brand-accent-soft);color:var(--brand-accent-strong)}.category-select-option.active:hover,.category-select-option.active:focus-visible{background:var(--brand-accent-soft)}@supports (color:color-mix(in lab,red,red)){.category-select-option.active:hover,.category-select-option.active:focus-visible{background:color-mix(in srgb,var(--brand-accent-soft) 72%,var(--surface-raised))}}.form-error{color:var(--danger);font-weight:650}.info-message{color:var(--info)}.form-button-loading{justify-content:center;align-items:center;gap:8px;display:inline-flex}.segmented-control{border:1px solid var(--line);border-radius:10px;gap:0;display:flex;overflow:hidden}.segmented-control button{background:var(--surface-soft);min-height:40px;color:var(--app-muted);border:none;border-radius:0;flex:1;padding:0 16px;font-weight:650;transition:background-color .16s,color .16s}.segmented-control button.active{background:var(--brand-accent);color:var(--brand-accent-text)}.segmented-control button:hover:not(.active){background:var(--surface-raised)}.input-field{gap:6px;display:grid}.input-label{color:var(--app-muted);font-size:14px;font-weight:650}.input-control{border:1px solid var(--line);background:var(--field-bg);width:100%;min-height:44px;color:var(--app-text);border-radius:10px;outline:none;padding:0 14px;font-size:15px;transition:border-color .16s,box-shadow .16s,background-color .16s}.input-control::placeholder{color:var(--app-muted);opacity:.6}.input-control:focus{border-color:var(--brand-accent);box-shadow:0 0 0 3px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.input-control:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-accent) 16%,transparent)}}.input-control:disabled{opacity:.5;cursor:not-allowed}.input-error{border-color:var(--danger)}.input-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger)}@supports (color:color-mix(in lab,red,red)){.input-error:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 16%,transparent)}}.input-error-text{color:var(--danger);margin:0;font-size:13px;font-weight:500}.input-helper-text{color:var(--app-muted);margin:0;font-size:13px}.github-result-list{gap:6px;display:grid}.github-search-gate{align-content:center;min-height:280px;transition:min-height .18s;display:grid}.github-search-gate.compact{align-content:start;min-height:0}.github-search-field{border:1px solid var(--line);background:linear-gradient(180deg,var(--surface-raised),transparent),var(--field-bg);border-radius:8px;align-items:center;gap:9px;min-height:42px;display:flex}@supports (color:color-mix(in lab,red,red)){.github-search-field{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-raised) 62%,transparent),transparent),var(--field-bg)}}.github-search-field{color:var(--app-muted);padding:0 8px 0 12px;transition:border-color .16s,box-shadow .16s,background-color .16s}.github-search-field:focus-within{border-color:var(--field-focus);box-shadow:0 0 0 3px var(--field-focus)}@supports (color:color-mix(in lab,red,red)){.github-search-field:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 16%,transparent)}}.github-search-field.selected{border-color:var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.github-search-field.selected{border-color:color-mix(in srgb,var(--brand-accent) 46%,var(--line))}}.github-search-field.selected{background:linear-gradient(180deg,var(--brand-accent-soft),transparent),var(--field-bg)}@supports (color:color-mix(in lab,red,red)){.github-search-field.selected{background:linear-gradient(180deg,color-mix(in srgb,var(--brand-accent-soft) 68%,transparent),transparent),var(--field-bg)}}.github-search-field svg{color:var(--app-subtle);flex:none}.github-search-field input{min-width:0;min-height:40px;color:var(--app-text);box-shadow:none;font-family:var(--font-mono);background:0 0;border:0;outline:none;flex:1;padding:0}.github-search-field input::placeholder{color:var(--app-subtle);font-family:inherit}.github-search-clear{width:26px;height:26px;color:var(--app-muted);background:0 0;border:0;border-radius:999px;flex:none;place-items:center;padding:0;font-size:18px;line-height:1;transition:background-color .14s,color .14s;display:grid}.github-search-clear:hover,.github-search-clear:focus-visible{background:var(--surface-soft);color:var(--app-text);outline:none}.github-detail-card{border:1px solid var(--line);gap:10px;display:grid}@supports (color:color-mix(in lab,red,red)){.github-detail-card{border:1px solid color-mix(in srgb,var(--line) 86%,transparent)}}.github-detail-card{background:var(--surface);border-radius:10px}@supports (color:color-mix(in lab,red,red)){.github-detail-card{background:color-mix(in srgb,var(--surface) 84%,var(--info) 6%)}}.github-detail-card{padding:10px}.github-detail-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.github-detail-header strong{min-width:0;color:var(--app-text);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.github-detail-source{color:var(--app-muted);flex:none;place-items:center;display:inline-grid}.github-detail-list{gap:7px;display:grid}.github-detail-row{align-items:center;gap:8px;min-width:0;min-height:26px;display:inline-flex}.github-detail-row>svg{color:var(--link);flex:none}.github-detail-row a{min-width:0;color:var(--link);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:720;text-decoration:none;overflow:hidden}.github-detail-row a:hover{text-decoration:underline}.github-license-chip{border:1px solid var(--link);justify-self:start;align-items:center;min-height:24px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.github-license-chip{border:1px solid color-mix(in srgb,var(--link) 30%,var(--line))}}.github-license-chip{background:var(--link);border-radius:999px}@supports (color:color-mix(in lab,red,red)){.github-license-chip{background:color-mix(in srgb,var(--link) 8%,transparent)}}.github-license-chip{color:var(--link);font-family:var(--font-mono);padding:0 8px;font-size:12px;font-weight:760;line-height:22px}:root:not([data-theme=dark]) .github-license-chip.license-permissive{border-color:#2f6f62}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]) .github-license-chip.license-permissive{border-color:color-mix(in srgb,#2f6f62 30%,var(--line))}}:root:not([data-theme=dark]) .github-license-chip.license-permissive{color:#24584f;background:#2f6f6214}:root[data-theme=dark] .github-license-chip.license-permissive{border-color:#8ee6b2}@supports (color:color-mix(in lab,red,red)){:root[data-theme=dark] .github-license-chip.license-permissive{border-color:color-mix(in srgb,#8ee6b2 30%,var(--line))}}:root[data-theme=dark] .github-license-chip.license-permissive{color:#8ee6b2;background:#8ee6b21a}:root:not([data-theme=dark]) .github-license-chip.license-copyleft{border-color:#b24b3f}@supports (color:color-mix(in lab,red,red)){:root:not([data-theme=dark]) .github-license-chip.license-copyleft{border-color:color-mix(in srgb,#b24b3f 30%,var(--line))}}:root:not([data-theme=dark]) .github-license-chip.license-copyleft{color:#982e23;background:#b24b3f14}:root[data-theme=dark] .github-license-chip.license-copyleft{border-color:#ff887f}@supports (color:color-mix(in lab,red,red)){:root[data-theme=dark] .github-license-chip.license-copyleft{border-color:color-mix(in srgb,#ff887f 30%,var(--line))}}:root[data-theme=dark] .github-license-chip.license-copyleft{color:#ff887f;background:#ff887f1a}.github-detail-meta{min-height:18px;color:var(--app-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.8rem;display:flex;overflow:hidden}.github-result-item{text-align:left;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;grid-template-rows:18px 36.4px 18px;gap:2px;height:90px;padding:10px 12px;font-weight:400;display:grid;overflow:hidden}.github-result-item:hover{border-color:var(--line-strong);background:var(--surface-raised)}.github-result-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.github-result-item.selected{border-color:var(--brand-accent);background:linear-gradient(180deg,var(--brand-accent-soft),transparent),var(--surface)}@supports (color:color-mix(in lab,red,red)){.github-result-item.selected{background:linear-gradient(180deg,color-mix(in srgb,var(--brand-accent-soft) 68%,transparent),transparent),var(--surface)}}.github-result-item.selected{box-shadow:inset 0 0 0 1px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.github-result-item.selected{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-accent) 36%,transparent)}}.github-result-item .github-result-title{min-width:0;color:inherit;font-weight:700;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;line-height:18px;text-decoration:none;overflow:hidden}.github-result-item .github-result-title:hover{color:var(--brand-accent);text-decoration:underline}.github-result-item .github-result-desc{min-height:36.4px;color:var(--app-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.github-result-item .github-result-meta{min-height:18px;color:var(--app-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.8rem;display:flex;overflow:hidden}.github-result-item .github-result-meta .project-meta-item{white-space:nowrap;font-family:var(--font-mono);align-items:center;gap:.35rem;display:inline-flex}.muted-text{color:var(--app-muted)}@keyframes drawer-enter{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@media (max-width:720px){.top-nav{flex-direction:row;align-items:center;padding:12px 16px}.top-nav h1{display:none}.top-nav-actions{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%;display:grid}.top-nav nav{justify-self:center;width:auto}.content-panel{width:min(100% - 24px,1120px);padding-top:16px}.toolbar,.toolbar:has(.toolbar-search:focus-within),.toolbar.search-expanded{grid-template-columns:1fr}.toolbar-actions{grid-column:auto;grid-template-columns:1fr 1fr 42px}.toolbar-actions.no-add{grid-template-columns:1fr 1fr}.card-grid{grid-template-columns:1fr}.book-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.book-card-overlay{z-index:140;background:#1614115c}.book-card-expanded.book-card-mobile-drawer{z-index:150;background:var(--surface);border:1px solid #ffffff8c;border-bottom:none;border-radius:18px 18px 0 0;max-height:min(82vh,720px);padding:0;animation:.24s cubic-bezier(.22,1,.36,1) book-drawer-slide-up;overflow:hidden;box-shadow:0 -22px 56px #221c1247;width:100%!important;display:block!important;inset:auto 0 0!important}@keyframes book-drawer-slide-up{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.book-card-mobile-drawer .book-card-expand-inner{width:100%;min-height:0;max-height:min(82vh,720px);padding:14px 18px calc(12px + env(safe-area-inset-bottom));grid-template-columns:104px minmax(0,1fr);gap:14px;display:grid;overflow-y:auto}.book-card-mobile-drawer .book-card-drawer-handle{background:var(--line-strong);opacity:.55;border-radius:999px;grid-column:1/-1;justify-self:center;width:44px;height:4px;margin-bottom:2px;display:block}.book-card-mobile-drawer .book-detail-media{grid-area:2/1;width:100%}.book-card-mobile-drawer .book-detail-cover{width:100%;min-height:0}.book-card-mobile-drawer .book-detail-cover .book-cover{aspect-ratio:2/3;width:104px;height:auto}.book-card-mobile-drawer .book-detail-main{display:contents}.book-card-mobile-drawer .book-detail-header{grid-area:2/2;align-items:flex-start;gap:8px;min-width:0;min-height:156px;padding-right:42px;display:flex}.book-card-mobile-drawer .book-detail-title-row{flex-direction:column;align-items:flex-start;gap:3px}.book-card-mobile-drawer .book-detail-title-row h3{font-size:17px;line-height:1.35}.book-card-mobile-drawer .book-detail-subtitle{white-space:normal;max-width:100%;font-size:13px;line-height:1.35;display:block}.book-card-mobile-drawer .book-detail-title-group{flex-direction:column;min-height:156px;display:flex}.book-card-mobile-drawer .book-douban-link{min-height:32px;padding:0 9px}.book-card-mobile-drawer .book-detail-meta{font-size:13px}.book-card-mobile-drawer .book-detail-publish-meta{gap:2px;display:grid}.book-card-mobile-drawer .book-detail-meta-separator{display:none}.book-card-mobile-drawer .book-detail-tags-row{margin-top:auto;padding-top:8px}.book-card-mobile-drawer .book-card-drawer-close{border:1px solid var(--line);background:var(--surface-soft);width:36px;height:36px;color:var(--app-text);border-radius:8px;place-items:center;display:grid}.book-card-mobile-drawer .book-read-section{grid-column:1/-1;width:auto}.book-card-mobile-drawer .book-read-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.book-card-mobile-drawer .book-read-card{padding:8px 10px}.book-card-mobile-drawer .book-read-section{border-left:none;margin-top:0;padding-top:14px}.book-card-mobile-drawer .form-field{gap:7px;font-size:13px;font-weight:700;display:grid}.book-card-mobile-drawer .star-rating-input{gap:8px;min-height:42px}.book-card-mobile-drawer .book-read-editor-inline{grid-template-columns:1fr}.book-card-mobile-drawer .star-btn{border:1px solid var(--star,#f59e0b);width:38px;height:38px}@supports (color:color-mix(in lab,red,red)){.book-card-mobile-drawer .star-btn{border:1px solid color-mix(in srgb,var(--star,#f59e0b) 38%,var(--line))}}.book-card-mobile-drawer .star-btn{background:var(--star,#f59e0b);border-radius:8px}@supports (color:color-mix(in lab,red,red)){.book-card-mobile-drawer .star-btn{background:color-mix(in srgb,var(--star,#f59e0b) 9%,var(--surface))}}.book-card-mobile-drawer .star-btn{font-size:21px;line-height:0}.book-card-mobile-drawer .date-input-wrapper{border-radius:8px;min-height:42px}.book-card-mobile-drawer .book-note-textarea{min-height:88px;padding:11px 12px;font-size:14px;line-height:1.5}.book-card-mobile-drawer .book-expand-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;gap:10px;margin-top:2px;display:grid}.book-card-mobile-drawer .book-read-summary{grid-template-columns:1fr}.book-card-mobile-drawer .book-expand-actions .primary-button,.book-card-mobile-drawer .book-expand-actions .secondary-button{min-height:44px;padding:0 12px;font-size:15px;font-weight:800}.book-card-mobile-drawer .book-expand-actions .primary-button:only-child{grid-column:1/-1;justify-self:center;min-width:min(180px,100%)}.book-card-mobile-drawer .book-detail-actions{padding:0 0 calc(2px + env(safe-area-inset-bottom));grid-column:1/-1;grid-template-columns:1fr 1fr;margin:8px 0 0}.book-card-mobile-drawer .book-edit-book-btn,.book-card-mobile-drawer .book-edit-read-btn{min-height:44px;font-size:14px}.modal-backdrop{padding:16px 12px}.modal{border-radius:12px;width:100%;max-height:calc(100vh - 32px)}.book-primary-fields{grid-template-columns:minmax(0,1fr) 125px}.auth-modal{border-radius:12px;width:calc(100% - 24px);max-height:calc(100vh - 24px);margin:12px auto}.auth-modal .modal-header{border-radius:12px 12px 0 0}.login-modal{width:min(400px,100% - 24px)}.otp-box-row{gap:6px}.auth-provider-link{padding:10px 16px;font-size:14px}.account-settings{gap:16px}}:root{--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--radius:.625rem;--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}[data-theme=dark]{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}.pagination{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding-top:16px;display:flex}.pagination-total{color:var(--app-muted);font-size:13px;font-weight:650}.pagination-nav{align-items:center;gap:6px;display:flex}.pagination-page-input{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:4px;min-height:28px;padding:0 8px;font-size:13px;font-weight:650;display:flex}.pagination-page-current{min-width:20px;color:var(--app-text);font:inherit;text-align:center;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 2px;font-weight:700;transition:background-color .14s}.pagination-page-current:hover{background:var(--surface-raised)}.pagination-page-current:disabled{color:var(--app-muted);cursor:not-allowed;opacity:.55}.pagination-page-current:disabled:hover{background:0 0}.pagination-page-input input{width:36px;min-height:22px;color:var(--app-text);font:inherit;text-align:center;background:0 0;border:none;outline:none;padding:0;font-weight:700}.pagination-page-input input:disabled{color:var(--app-muted);cursor:not-allowed;opacity:.6}.pagination-page-sep,.pagination-page-total{color:var(--app-muted);font-weight:650}.pagination-ellipsis{width:28px;height:28px;color:var(--app-muted);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.infinite-scroll-sentinel{height:20px;display:none}.infinite-scroll-loading,.infinite-scroll-end{text-align:center;color:var(--app-muted);padding:16px 0;font-size:13px;font-weight:650;display:none}@media (max-width:720px){.pagination{display:none}.infinite-scroll-sentinel,.infinite-scroll-loading,.infinite-scroll-end{display:block}}.scroll-tools{z-index:90;opacity:0;pointer-events:none;flex-direction:column;align-items:center;gap:8px;transition:opacity .2s,transform .2s;display:flex;position:fixed;bottom:24px;right:24px;transform:translateY(12px)}.scroll-tools.visible{opacity:1;transform:translateY(0)}.scroll-to-top{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--app-text);box-shadow:0 4px 14px var(--brand-accent);border-radius:999px;place-items:center;display:grid}@supports (color:color-mix(in lab,red,red)){.scroll-to-top{box-shadow:0 4px 14px color-mix(in srgb,var(--brand-accent) 10%,transparent)}}.scroll-to-top{cursor:pointer;pointer-events:auto;transition:background-color .16s,border-color .16s,transform .12s}.scroll-to-top:hover{border-color:var(--line-strong);background:var(--surface-raised)}.scroll-to-top:active{transform:translateY(1px)}.scroll-progress-indicator{display:none}.pull-refresh-indicator{z-index:110;border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:8px;min-height:36px;padding:0 14px;display:none;position:fixed;top:12px;left:50%}@supports (color:color-mix(in lab,red,red)){.pull-refresh-indicator{background:color-mix(in srgb,var(--surface) 94%,transparent)}}.pull-refresh-indicator{color:var(--app-text);box-shadow:0 8px 20px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.pull-refresh-indicator{box-shadow:0 8px 20px color-mix(in srgb,var(--brand-accent) 12%,transparent)}}.pull-refresh-indicator{opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:13px;font-weight:680;transition:opacity .16s;transform:translate(-50%,-12px)}.pull-refresh-indicator.visible{opacity:1}@media (max-width:720px){.pull-refresh-indicator{display:inline-flex}.scroll-tools{bottom:18px;right:16px}.scroll-progress-indicator{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);border-radius:999px;justify-items:center;width:44px;min-height:64px;padding:10px 6px;display:grid}@supports (color:color-mix(in lab,red,red)){.scroll-progress-indicator{background:color-mix(in srgb,var(--surface) 92%,transparent)}}.scroll-progress-indicator{color:var(--muted-text);box-shadow:0 4px 14px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.scroll-progress-indicator{box-shadow:0 4px 14px color-mix(in srgb,var(--brand-accent) 10%,transparent)}}.scroll-progress-indicator{font-variant-numeric:tabular-nums;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:11px;font-weight:600;line-height:1}.scroll-progress-divider{background:var(--line-strong);width:12px;height:1px;margin:7px 0}}.auth-avatar-btn{cursor:pointer;border:1.5px solid var(--brand-accent);width:44px;height:44px;color:var(--brand-accent);background:0 0;border-radius:50%;place-items:center;padding:0;transition:background-color .15s;display:grid;overflow:hidden}.auth-avatar-btn:hover{background:var(--surface-raised)}.auth-avatar-btn img{object-fit:cover;border-radius:50%;width:44px;height:44px}.auth-modal{width:min(440px,100%);height:auto;max-height:min(720px,100vh - 40px);margin:auto;animation:.2s ease-out modal-enter}.auth-modal .modal-header{border-radius:16px 16px 0 0}.account-settings-modal{width:min(380px,100%)}.login-modal .modal-header{border-radius:16px 16px 0 0;justify-content:center;align-items:center;min-height:58px;margin:-20px -20px 20px;padding:18px 56px;display:flex;position:relative;top:auto}.login-modal .modal-header .login-modal-title{text-align:center;font-size:20px;font-weight:700}.login-modal-close{position:absolute;top:50%;right:18px;transform:translateY(-50%)}.login-modal-body{gap:14px;padding:0;display:grid}.login-email-form,.login-code-step{gap:14px;display:grid}.auth-divider{color:var(--app-muted);align-items:center;gap:12px;font-size:13px;font-weight:500;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.text-button{color:var(--brand-accent);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600;transition:background-color .12s}.text-button:hover:not(:disabled){background:var(--surface-raised)}.text-button:disabled{opacity:.5;cursor:not-allowed}.otp-input{cursor:text;position:relative}.otp-box-list{justify-content:center}.otp-box{width:40px;height:40px;font-size:16px;position:relative}.otp-box.focused:after{content:"";background:var(--brand-accent);width:2px;height:20px;animation:1s step-end infinite otp-caret-blink;position:absolute}@keyframes otp-caret-blink{0%,to{opacity:1}50%{opacity:0}}.auth-provider-link{border:1px solid var(--line);background:var(--surface-soft);color:var(--app-text);white-space:nowrap;border-radius:9999px;justify-content:center;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:12px 20px;font-size:15px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s;display:flex}.login-email-form .input-control,.login-email-form .primary-button{border-radius:9999px}.auth-provider-link:hover{background:var(--surface-raised);border-color:var(--brand-accent);text-decoration:none}.auth-provider-link:disabled{opacity:.72;cursor:wait}.auth-provider-link:disabled:hover{background:var(--surface-soft);border-color:var(--line)}.auth-loading-icon{flex-shrink:0;animation:.9s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.account-settings{gap:20px;display:grid}.account-settings-profile{align-items:center;gap:14px;padding:8px 0;display:flex}.account-settings-avatar,.account-settings-avatar-placeholder{object-fit:cover;border:1.5px solid var(--brand-accent);border-radius:50%;flex-shrink:0;width:56px;height:56px}.account-settings-avatar-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;padding:0;transition:opacity .15s;position:relative}.account-settings-avatar-btn:hover{opacity:.8}.account-settings-avatar-btn:hover .account-settings-avatar,.account-settings-avatar-btn:hover .account-settings-avatar-placeholder{border-color:var(--brand-accent);box-shadow:0 0 0 3px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.account-settings-avatar-btn:hover .account-settings-avatar,.account-settings-avatar-btn:hover .account-settings-avatar-placeholder{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-accent) 25%,transparent)}}.account-settings-avatar-placeholder{background:var(--brand-accent);color:var(--brand-accent-text);place-items:center;font-size:22px;font-weight:600;display:grid}.account-settings-names{flex:1;gap:2px;min-width:0;display:grid}.account-settings-display-name{color:var(--app-text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:17px;font-weight:650;overflow:hidden}.account-settings-username{color:var(--app-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;overflow:hidden}.account-settings-card{border:1px solid var(--line);background:var(--surface-soft);border-radius:12px;overflow:hidden}.account-settings-card-header{justify-content:space-between;align-items:center;padding:12px 16px 8px;display:flex}.account-settings-card-title{color:var(--app-muted);align-items:center;gap:6px;font-size:13px;font-weight:650;display:inline-flex}.account-settings-row{justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:14px 16px;display:flex}.account-settings-name-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.account-settings-name-edit{align-items:center;gap:4px;display:flex}.account-settings-name-input{border:1px solid var(--line);background:var(--surface);color:var(--app-text);box-sizing:border-box;border-radius:4px;outline:none;width:160px;padding:2px 6px;font-size:17px;font-weight:650;transition:border-color .15s}.account-settings-name-input:focus{border-color:var(--brand-accent)}.account-settings-edit-btn{color:var(--app-muted);flex-shrink:0;transition:color .12s}.account-settings-edit-btn:hover,.account-settings-edit-confirm{color:var(--brand-accent)}.account-settings-edit-cancel{color:var(--app-muted)}.account-settings-row-label{color:var(--app-muted);flex-shrink:0;font-size:15px}.account-settings-row-value{color:var(--app-text);text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0;font-size:15px;font-weight:500;overflow:hidden}.account-settings-provider-list{display:grid}.account-settings-provider-row{justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:12px 16px;display:flex}.account-settings-provider-row+.account-settings-provider-row{border-top:1px solid var(--line)}.account-settings-provider-logo{width:24px;height:24px;color:var(--app-text);flex-shrink:0;place-items:center;display:grid}.account-settings-provider-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--app-text);flex:1;font-size:15px;font-weight:500;overflow:hidden}.account-settings-provider-avatar{border:1px solid var(--line);object-fit:cover;border-radius:50%;flex-shrink:0;width:22px;height:22px}.account-settings-provider-avatar-placeholder{border:1px solid var(--line);background:var(--surface);width:22px;height:22px;color:var(--app-text);border-radius:50%;flex-shrink:0;place-items:center;font-size:11px;font-weight:700;display:grid}.account-settings-provider-avatar-placeholder.muted{color:var(--app-muted);background:var(--surface-raised)}.account-settings-unlink-btn{color:var(--danger);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;padding:6px 14px;font-size:14px;font-weight:600;transition:background-color .12s}.account-settings-unlink-btn:hover:not(:disabled){background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.account-settings-unlink-btn:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 10%,transparent)}}.account-settings-unlink-btn:disabled{opacity:.5;cursor:not-allowed}.account-settings-bind-inline-btn{border:1px solid var(--line);background:var(--surface);min-width:58px;min-height:36px;color:var(--brand-accent);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:600;transition:background-color .12s,border-color .12s;display:inline-flex}.account-settings-bind-inline-btn:hover:not(:disabled){border-color:var(--brand-accent);background:var(--surface-raised)}.account-settings-bind-inline-btn:disabled{opacity:.72;cursor:wait}.account-settings-footer{padding-top:2px;display:grid}.account-settings-logout-btn{border:1px solid var(--danger);justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;padding:9px 16px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.account-settings-logout-btn{border:1px solid color-mix(in srgb,var(--danger) 45%,var(--line))}}.account-settings-logout-btn{background:var(--danger);border-radius:8px}@supports (color:color-mix(in lab,red,red)){.account-settings-logout-btn{background:color-mix(in srgb,var(--danger) 8%,transparent)}}.account-settings-logout-btn{color:var(--danger);cursor:pointer;font-size:15px;font-weight:700;transition:background-color .12s,border-color .12s}.account-settings-logout-btn:hover{border-color:var(--danger);background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.account-settings-logout-btn:hover{background:color-mix(in srgb,var(--danger) 13%,transparent)}}.avatar-upload-modal{width:min(320px,100%);height:auto;max-height:min(480px,100vh - 40px);margin:auto;animation:.2s ease-out modal-enter}.avatar-upload-modal .modal-header{border-radius:16px 16px 0 0}.avatar-upload{flex-direction:column;align-items:center;gap:16px;padding:8px 4px 4px;display:flex}.avatar-upload-preview{justify-content:center;display:flex}.avatar-upload-image{object-fit:cover;border:2px solid var(--line);border-radius:50%;width:120px;height:120px}.avatar-upload-placeholder-lg{background:var(--brand-accent);width:120px;height:120px;color:var(--brand-accent-text);border:2px solid var(--line);border-radius:50%;place-items:center;font-size:44px;font-weight:600;display:grid}.avatar-upload-actions{flex-direction:column;align-items:center;gap:6px;display:flex}.avatar-upload-hint{color:var(--app-muted);margin:0;font-size:12px}.avatar-upload-footer{justify-content:space-between;gap:10px;width:100%;padding-top:8px;display:flex}.avatar-upload-footer .secondary-button{white-space:nowrap}.avatar-upload-footer .primary-button{white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:6px;min-width:96px;display:inline-flex}.console-page{max-width:960px;min-height:calc(100vh - var(--top-nav-height,60px));gap:1.5rem;margin:0 auto;padding:1.5rem;display:flex}.console-sidebar{flex-shrink:0;width:200px}.console-sidebar-title{color:var(--color-text-primary);border-bottom:1px solid var(--color-border);margin:0 0 1rem;padding-bottom:.75rem;font-size:1.1rem;font-weight:600}.console-sidebar-nav{flex-direction:column;gap:.25rem;display:flex}.console-sidebar-item{color:var(--color-text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem .5rem .5rem;font-size:.875rem;transition:background-color .15s,color .15s;display:flex}.console-sidebar-item:hover{background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.console-sidebar-item.active{background-color:var(--brand-accent-soft);color:var(--brand-accent);font-weight:500}.console-content{flex:1;min-width:0}.isbn-provider-section{flex-direction:column;gap:1rem;display:flex}.isbn-provider-section h3{color:var(--color-text-primary);margin:0;font-size:1rem;font-weight:600}.isbn-provider-section p{color:var(--color-text-tertiary);margin:0;font-size:.8125rem}.isbn-provider-list{flex-direction:column;gap:.5rem;display:flex}.isbn-provider-item{border:1px solid var(--color-border);background-color:var(--color-bg-primary);cursor:grab;border-radius:8px;align-items:center;gap:.75rem;padding:.625rem .875rem;transition:box-shadow .15s,border-color .15s;display:flex}.isbn-provider-item:hover{border-color:var(--color-border-hover)}.isbn-provider-item.is-dragging{opacity:.5;box-shadow:0 4px 12px #0000001a}.isbn-provider-item.is-drop-target{border-color:var(--color-accent)}.isbn-provider-drag-handle{color:var(--color-text-quaternary);cursor:grab;flex-shrink:0;align-items:center;display:flex}.isbn-provider-drag-handle:active{cursor:grabbing}.isbn-provider-name{color:var(--color-text-primary);flex:1;font-size:.875rem}.isbn-provider-loading{color:var(--color-text-tertiary);justify-content:center;align-items:center;padding:2rem;font-size:.875rem;display:flex}.switch{background-color:var(--color-switch-bg);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;width:36px;height:20px;transition:background-color .2s;position:relative}.switch[aria-checked=true]{background-color:var(--color-switch-active-bg)}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.switch[aria-checked=true]:after{transform:translate(16px)}:root{--color-switch-bg:#d1d5db;--color-switch-active-bg:var(--brand-accent)}:root[data-theme=dark]{--color-switch-bg:#4b5563;--color-switch-active-bg:var(--brand-accent)}.console-avatar-btn{cursor:pointer;border:1px solid var(--brand-accent);border-radius:50%;place-items:center;width:44px;height:44px;display:grid}@supports (color:color-mix(in lab,red,red)){.console-avatar-btn{border:1px solid color-mix(in srgb,var(--brand-accent) 20%,var(--line))}}.console-avatar-btn{background:var(--surface);color:var(--app-muted);padding:0;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s}.console-avatar-btn:not(.active):hover{border-color:var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.console-avatar-btn:not(.active):hover{border-color:color-mix(in srgb,var(--brand-accent) 55%,var(--line))}}.console-avatar-btn:not(.active):hover{background:var(--surface-raised);color:var(--brand-accent);box-shadow:0 0 12px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.console-avatar-btn:not(.active):hover{box-shadow:0 0 12px color-mix(in srgb,var(--brand-accent) 18%,transparent)}}.console-avatar-btn.active{border-color:var(--brand-accent);background:var(--brand-accent);color:var(--brand-accent-text);box-shadow:0 0 14px var(--brand-accent),0 8px 18px var(--brand-accent)}@supports (color:color-mix(in lab,red,red)){.console-avatar-btn.active{box-shadow:0 0 14px color-mix(in srgb,var(--brand-accent) 40%,transparent),0 8px 18px color-mix(in srgb,var(--brand-accent) 22%,transparent)}}.console-avatar-btn.active{animation:2.5s ease-in-out infinite console-pulse}@keyframes console-pulse{0%,to{box-shadow:0 0 14px color-mix(in srgb,var(--brand-accent) 40%,transparent),0 8px 18px color-mix(in srgb,var(--brand-accent) 22%,transparent)}50%{box-shadow:0 0 22px color-mix(in srgb,var(--brand-accent) 55%,transparent),0 8px 18px color-mix(in srgb,var(--brand-accent) 22%,transparent)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
