@import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap";.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.marker-cluster-small{background-color:#b5e28c99}.marker-cluster-small div{background-color:#6ecc3999}.marker-cluster-medium{background-color:#f1d35799}.marker-cluster-medium div{background-color:#f0c20c99}.marker-cluster-large{background-color:#fd9c7399}.marker-cluster-large div{background-color:#f1801799}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:15px;font:12px Helvetica Neue,Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:11000;padding:var(--spacing-md);animation:fadeIn .2s ease-out}.modal-content{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);max-width:500px;width:100%;box-shadow:var(--shadow-lg);animation:modalSlideIn .3s ease-out;max-height:90vh;overflow-y:auto}.modal-title{margin:0 0 var(--spacing-md) 0;font-size:1.25rem;font-weight:700;color:var(--color-text-primary)}.modal-message{margin:0 0 var(--spacing-lg) 0;font-size:1rem;line-height:1.5;color:var(--color-text-primary)}.modal-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;flex-wrap:wrap}.modal-button{padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;font-weight:500;min-height:44px;transition:all var(--transition-fast)}.modal-button-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.modal-button-primary:hover{background-color:var(--color-primary-hover)}.modal-button-secondary{background-color:var(--color-text-tertiary);color:var(--color-text-inverse)}.modal-button-secondary:hover{background-color:#5a6268}.modal-button-danger{background-color:var(--color-error);color:var(--color-text-inverse)}.modal-button-danger:hover{background-color:#c82333}.modal-input{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:1rem;box-sizing:border-box;background-color:var(--color-bg-primary);color:var(--color-text-primary);min-height:44px;transition:border-color var(--transition-fast)}.modal-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.modal-input-error{border-color:var(--color-error)}.modal-error{margin-top:var(--spacing-sm);color:var(--color-error);font-size:.875rem}.modal-progress-container{margin-bottom:var(--spacing-md)}.modal-progress-bar{width:100%;height:24px;background-color:var(--color-bg-tertiary);border-radius:12px;overflow:hidden;position:relative}.modal-progress-fill{height:100%;background-color:var(--color-primary);transition:width .3s ease,background-color .3s ease;border-radius:12px;position:relative;overflow:hidden}.modal-progress-fill.paused{background-color:var(--color-text-tertiary)}.modal-progress-shimmer{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite}.modal-progress-percent{margin-top:var(--spacing-sm);text-align:center;font-size:.9rem;font-weight:700;color:var(--color-primary)}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (max-width: 768px){.modal-backdrop{padding:var(--spacing-sm)}.modal-content{max-width:100%;max-height:95vh;padding:var(--spacing-md)}.modal-actions{flex-direction:column-reverse}.modal-button{width:100%}}@media (max-width: 480px){.modal-backdrop{padding:0;align-items:flex-end}.modal-content{max-width:100%;max-height:100vh;max-height:100dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--spacing-md);padding-bottom:max(var(--spacing-md),env(safe-area-inset-bottom))}}.formkit-section{display:flex;flex-direction:column;gap:var(--form-row-gap)}.formkit-section-header{display:flex;flex-direction:column;gap:6px}.formkit-section-title{margin:0;font-size:20px}.formkit-section-description{margin:0;color:var(--muted)}.formkit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--form-row-gap) var(--form-col-gap)}.formkit-field{display:flex;flex-direction:column;gap:6px}.formkit-label{display:inline-flex;align-items:baseline;gap:6px;font-size:14px;font-weight:600}.formkit-required{color:var(--danger)}.formkit-hint{margin:0;color:var(--muted);font-size:12px}.formkit-error{margin:0;color:var(--color-error-text);font-size:12px;font-weight:600}.formkit-field.is-error .control,.formkit-field.is-error input,.formkit-field.is-error select,.formkit-field.is-error textarea{border-color:var(--color-error-border);box-shadow:0 0 0 3px #e5484d1f}.formkit-alert{margin:0}.formkit-status{min-height:20px;font-size:13px;font-weight:600}.formkit-status--dirty,.formkit-status--validating{color:var(--muted)}.formkit-status--submitting{color:var(--accent)}.formkit-status--success{color:var(--color-success-text)}.formkit-status--error{color:var(--color-error-text)}.formkit-actions{display:flex;min-height:var(--action-bar-height);align-items:center;justify-content:flex-end;gap:10px;margin-top:6px}.formkit-actions>.btn-danger{margin-right:auto}@media (max-width: 768px){.formkit-grid{grid-template-columns:1fr}.formkit-actions{flex-wrap:wrap}.formkit-actions>*{width:100%}.formkit-actions>.btn-danger{margin-right:0}}.auth-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1200;padding:16px}.auth-modal{position:relative;background:var(--color-surface, #fff);color:var(--color-text, #111);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 20px 60px rgba(0, 0, 0, .25));width:100%;max-width:420px;padding:28px 24px 24px}.auth-modal-close{position:absolute;top:10px;right:12px;background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--color-text-secondary, #666)}.auth-modal-tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--color-border, #e5e7eb)}.auth-modal-tab{flex:1;background:none;border:none;padding:10px 8px;font-size:var(--text-md, 15px);font-weight:600;color:var(--color-text-secondary, #666);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.auth-modal-tab.active{color:var(--color-primary, #1677ff);border-bottom-color:var(--color-primary, #1677ff)}.auth-modal-form{display:flex;flex-direction:column;gap:14px}.auth-modal-field{display:flex;flex-direction:column;gap:6px}.auth-modal-field span{font-size:var(--text-sm, 13px);color:var(--color-text-secondary, #666)}.auth-modal-field input{padding:10px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:var(--radius-md, 8px);font-size:var(--text-md, 15px);background:var(--color-surface, #fff);color:var(--color-text, #111)}.auth-modal-field input:focus{outline:none;border-color:var(--color-primary, #1677ff)}.auth-modal-submit{margin-top:4px}.auth-modal-error{background:var(--color-danger-soft, #fef2f2);color:var(--color-danger, #b91c1c);padding:8px 12px;border-radius:var(--radius-md, 8px);font-size:var(--text-sm, 13px)}.auth-modal-field-error{color:var(--color-danger, #b91c1c);font-size:var(--text-sm, 13px)}.auth-modal-note{color:var(--color-text-secondary, #666);padding:12px 0}.auth-modal-links{text-align:center;font-size:var(--text-sm, 13px)}.auth-modal-checkemail{text-align:center;display:flex;flex-direction:column;gap:14px}.auth-modal-checkemail h2{margin:0}.module-admin-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;background:#fff3e0;border:1px solid #ff9800;color:#e65100;border-radius:999px;font-size:.75rem;font-weight:600;text-decoration:none;line-height:1.3;white-space:nowrap;transition:background .15s,border-color .15s}.module-admin-badge:hover{background:#ffe0b2;border-color:#f57c00}.module-admin-badge-label{letter-spacing:.05em}.module-admin-badge-count{font-weight:400;opacity:.85}@media (prefers-color-scheme: dark){.module-admin-badge{background:#4a2c00;border-color:#ff9800;color:#ffb74d}.module-admin-badge:hover{background:#5c3800}}.service-bar{height:48px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:100}.service-bar-left{display:flex;align-items:center;gap:24px;min-width:0;flex:1 1 auto}.service-bar-search-desktop{flex:1 1 320px;min-width:200px;max-width:560px;display:flex;align-items:center}@media (max-width: 1280px){.service-bar-search-desktop{flex-basis:200px;min-width:140px}}.service-bar-search-desktop .gsearch,.service-bar-search-desktop .gsearch-form{width:100%;min-width:0}.service-bar-search-desktop .gsearch-dropdown{position:fixed;top:52px;left:16px;right:auto;width:min(66.6vw,calc(100vw - 32px));max-height:min(74vh,660px)}.service-bar-logo{font-weight:700;font-size:1.125rem;color:var(--accent);text-decoration:none;cursor:pointer;white-space:nowrap;flex-shrink:0}.service-tabs{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.service-tabs::-webkit-scrollbar{display:none}.service-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);color:var(--muted);text-decoration:none;font-weight:500;transition:background-color .2s,color .2s;flex-shrink:0;white-space:nowrap}button.service-tab{height:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:500;justify-content:flex-start}.service-tab:hover{background:#0000000d;color:var(--text);text-decoration:none}[data-theme=dark] .service-tab:hover{background:#ffffff1a}.service-tab.active{background:var(--accent);color:#fff}.service-tab-icon{font-size:1rem}.service-tab-label{font-size:.875rem}.service-bar-right{display:flex;align-items:center;gap:16px}.service-bar-user{color:var(--text);font-weight:500;text-decoration:none}.service-bar-user:hover{color:var(--accent)}.service-bar-quota{font-size:.8125rem;color:var(--muted);white-space:nowrap}.service-bar-lang{height:36px;padding:0 8px;font-size:.8125rem;font-weight:600;background:var(--bg, #fff);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer}.service-bar-lang:focus{outline:none;border-color:var(--accent)}.service-bar-theme-toggle{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;transition:color .2s,border-color .2s;line-height:1}.service-bar-theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.service-bar-logout{padding:6px 12px;font-size:.875rem;font-weight:500;color:var(--muted);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:color .2s,border-color .2s}.service-bar-logout:hover{color:var(--danger);border-color:var(--danger)}.service-bar-ops-btn{position:relative;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;transition:color .2s,border-color .2s}.service-bar-ops-btn:hover{color:var(--accent);border-color:var(--accent)}.service-tab-badge{min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;text-align:center;color:#fff;background:var(--accent, #007bff);border-radius:8px;margin-left:4px}.service-bar-ops-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;text-align:center;color:#fff;background:var(--accent, #007bff);border-radius:8px;animation:opsPulse 2s ease-in-out infinite}@keyframes opsPulse{0%,to{opacity:1}50%{opacity:.6}}.service-bar-ops-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:400px;overflow-y:auto;background:var(--panel, #fff);border:1px solid var(--border);border-radius:var(--radius, 8px);box-shadow:0 8px 24px #0000001f;z-index:200}.ops-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.ops-dropdown-clear{padding:2px 8px;font-size:11px;background:none;border:1px solid var(--border);border-radius:4px;color:var(--muted);cursor:pointer}.ops-dropdown-clear:hover{border-color:var(--accent);color:var(--accent)}.ops-dropdown-item{padding:10px 14px;border-bottom:1px solid var(--border-light, rgba(0,0,0,.06));transition:background .15s}.ops-dropdown-item:hover{background:#00000008}[data-theme=dark] .ops-dropdown-item:hover{background:#ffffff0d}.ops-dropdown-item:last-child{border-bottom:none}.ops-dropdown-item-row{display:flex;align-items:center;gap:8px}.ops-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ops-dot--running{background:var(--accent, #007bff);animation:opsPulse 1.5s ease-in-out infinite}.ops-dot--done{background:#28a745}.ops-dot--error{background:#dc3545}.ops-dropdown-item-label{flex:1;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-dropdown-item-close{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.ops-dropdown-item-close:hover{color:var(--danger, #dc3545)}.ops-dropdown-item-progress{margin-top:4px;margin-left:16px;font-size:11px;color:var(--muted)}.ops-dropdown-item-error{margin-top:4px;margin-left:16px;font-size:11px;color:var(--danger, #dc3545)}.service-bar-burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:10px}.burger-line{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform .25s,opacity .25s}.burger-line.open:nth-child(1){transform:translateY(7px) rotate(45deg)}.burger-line.open:nth-child(2){opacity:0}.burger-line.open:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.service-bar-mobile-menu,.service-bar-mobile-backdrop,.service-tabs-mobile{display:none}@media (max-width: 768px){.service-bar{padding:0 12px}.service-bar-logo{display:block;font-size:1rem}.sb-profile{margin-left:auto;margin-right:10px}.service-tabs-desktop,.service-bar-search-desktop,.service-bar-right-desktop{display:none}.service-bar-burger{display:flex;position:relative;z-index:210}.service-bar-mobile-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:150}.service-bar-mobile-menu{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--panel-solid, #ffffff);border-bottom:1px solid var(--border);box-shadow:0 8px 24px #0000001f;z-index:200;padding:8px;gap:8px;max-height:calc(100dvh - 48px);overflow-y:auto;animation:mobileMenuSlideIn .2s ease}@keyframes mobileMenuSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.service-tabs-mobile{display:flex;flex-direction:column;gap:2px}.service-tabs-mobile .service-tab{width:100%;padding:10px 14px;min-height:44px;border-radius:var(--radius-sm)}.service-tabs-mobile .service-tab-label{display:inline}.service-bar-mobile-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 6px;border-top:1px solid var(--border)}.service-bar-mobile-controls .service-bar-user{width:100%;padding:8px 0}.service-bar-mobile-controls .service-bar-logout{min-height:44px;flex:1}.service-bar-ops-dropdown{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-height:60vh;border-radius:16px 16px 0 0}}.service-bar-processing-dot{box-sizing:content-box;width:8px;height:8px;padding:6px;border:none;border-radius:50%;background:var(--color-primary, #4a90d9);background-clip:content-box;animation:service-bar-pulse 1.5s ease-in-out infinite;flex-shrink:0;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.service-bar-processing-dot:hover{filter:brightness(1.15)}.service-bar-processing-dot:focus-visible{outline:2px solid var(--color-primary, #4a90d9);outline-offset:2px;animation:none}@keyframes service-bar-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.8)}}.sb-profile{position:relative;display:flex;align-items:center;flex-shrink:0}.service-bar-avatar{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:var(--color-primary-soft, #eef5ff);color:var(--accent, #1677ff);font-size:.75rem;font-weight:700;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.service-bar-avatar:hover{border-color:var(--accent, #1677ff)}.sb-profile-menu{position:absolute;top:calc(100% + 8px);right:0;width:290px;background:var(--panel-solid, #ffffff);border:1px solid var(--border);border-radius:var(--radius-md, 12px);box-shadow:0 12px 32px #10182829;padding:6px;z-index:220}.sb-profile-head{display:flex;flex-direction:column;gap:2px;padding:10px 10px 8px;border-bottom:1px solid var(--border);margin-bottom:4px}.sb-profile-head strong{font-size:.875rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-profile-email{font-size:.75rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-profile-quota{padding:8px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}.sb-profile-quota-row{display:flex;justify-content:space-between;align-items:baseline;font-size:.8125rem;color:var(--muted);margin-bottom:6px}.sb-profile-quota-row b{color:var(--text);font-size:.8125rem}.sb-profile-progress{height:6px;border-radius:99px;background:var(--gray-100, #f1f3f5);overflow:hidden}.sb-profile-progress span{display:block;height:100%;min-width:6px;border-radius:99px;background:var(--accent, #1677ff)}.sb-profile-row{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:.8125rem;color:var(--text);border-radius:var(--radius-sm, 8px)}.sb-profile-btn{border:none;background:transparent;font-family:inherit;text-align:left;cursor:pointer}.sb-profile-btn:hover{background:#0000000d}[data-theme=dark] .sb-profile-btn:hover{background:#ffffff1a}.sb-profile-row>span:first-of-type{flex:0 0 auto}.sb-profile-langs{display:inline-flex;margin-left:auto;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);overflow:hidden}.sb-profile-lang{border:none;background:transparent;padding:4px 9px;font-size:.75rem;font-weight:600;color:var(--muted);font-family:inherit;cursor:pointer}.sb-profile-lang+.sb-profile-lang{border-left:1px solid var(--border)}.sb-profile-lang.active{background:var(--color-primary-soft, #eef5ff);color:var(--accent, #1677ff)}.sb-lang-flag{margin-right:4px;font-size:.85rem;line-height:1}.sb-profile-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--color-danger, #b3261e);color:#fff;font-size:.7rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.sb-profile-logout{color:var(--color-danger, #b3261e)}@media (max-width: 768px){.sb-profile-menu{position:fixed;top:52px;right:8px;left:8px;width:auto}}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:56px;background:var(--color-surface, #fff);border-bottom:1px solid var(--color-border, #e5e7eb);position:sticky;top:0;z-index:100}.portal-header-left{display:flex;align-items:center;gap:24px}.portal-header-logo{font-weight:700;font-size:var(--text-lg, 18px);color:var(--color-text, #111);text-decoration:none}.portal-header-nav{display:flex;align-items:center;gap:18px}.portal-header-navlink{color:var(--color-text-secondary, #555);text-decoration:none;font-size:var(--text-md, 15px);padding:6px 2px}.portal-header-navlink:hover,.portal-header-navlink.active{color:var(--color-primary, #1677ff)}.portal-header-right{display:flex;align-items:center;gap:10px}.portal-header-langs{display:flex;gap:2px;margin-right:6px}.portal-header-lang{background:none;border:none;padding:4px 6px;font-size:var(--text-sm, 13px);color:var(--color-text-secondary, #777);cursor:pointer;border-radius:var(--radius-sm, 4px)}.portal-header-lang.active{color:var(--color-primary, #1677ff);font-weight:600}.portal-header-lang-flag{margin-right:3px;font-size:.9em;line-height:1}.portal-header-burger{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:8px}.portal-header-burger .burger-line{width:22px;height:2px;background:var(--color-text, #111);transition:transform .2s,opacity .2s}.portal-header-backdrop{position:fixed;top:56px;right:0;bottom:0;left:0;background:#0000004d;z-index:90}.portal-header-drawer{position:fixed;top:56px;left:0;right:0;background:var(--color-surface, #fff);border-bottom:1px solid var(--color-border, #e5e7eb);padding:16px 20px;z-index:95;display:flex;flex-direction:column;gap:16px}.portal-header-drawer .portal-header-nav{flex-direction:column;align-items:flex-start;gap:12px}.portal-header-drawer-actions{display:flex;flex-direction:column;gap:10px}@media (max-width: 768px){.portal-header-nav-desktop,.portal-header-right-desktop{display:none}.portal-header-burger{display:flex}}body.portal-hero-first .portal-header{position:fixed;left:0;right:0;transition:background .25s ease,border-color .25s ease}body.portal-hero-first .portal-header:not(.portal-header--scrolled):not(.portal-header--drawer-open){background:transparent;border-bottom-color:transparent}body.portal-hero-first .portal-header:not(.portal-header--scrolled):not(.portal-header--drawer-open) .portal-header-logo,body.portal-hero-first .portal-header:not(.portal-header--scrolled):not(.portal-header--drawer-open) .portal-header-navlink,body.portal-hero-first .portal-header:not(.portal-header--scrolled):not(.portal-header--drawer-open) .portal-header-lang,body.portal-hero-first .portal-header:not(.portal-header--scrolled):not(.portal-header--drawer-open) .portal-header-signin{color:#fff}body.portal-hero-first .portal-header:not(.portal-header--scrolled):not(.portal-header--drawer-open) .portal-header-navlink:hover,body.portal-hero-first .portal-header:not(.portal-header--scrolled):not(.portal-header--drawer-open) .portal-header-navlink.active{color:#fff;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}body.portal-hero-first .portal-header:not(.portal-header--scrolled):not(.portal-header--drawer-open) .burger-line{background:#fff}body.portal-hero-first .portal-header--scrolled{background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--color-border, #e5e7eb);border-bottom-color:transparent}@media (prefers-reduced-motion: reduce){body.portal-hero-first .portal-header{transition:none}}.portal-subnav{border-bottom:1px solid var(--border);background:var(--surface-card, #fff)}.portal-subnav-inner{display:flex;align-items:center;gap:4px;max-width:1200px;margin:0 auto;padding:0 16px;overflow-x:auto;scrollbar-width:none}.portal-subnav-inner::-webkit-scrollbar{display:none}.portal-subnav-link{flex:0 0 auto;padding:8px 12px;font-size:.875rem;color:var(--muted, #6b7280);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;transition:color .12s,border-color .12s}.portal-subnav-link:hover{color:var(--text-primary, #111)}.portal-subnav-link.active{color:var(--accent, var(--color-primary, #1677ff));border-bottom-color:var(--accent, var(--color-primary, #1677ff))}.portal-footer{flex-shrink:0;background:#0c1322;color:#8e99ad}.portal-footer-columns{display:flex;flex-wrap:wrap;gap:var(--space-8);max-width:1080px;margin:0 auto;padding:var(--space-12) var(--space-6) var(--space-8)}.portal-footer-brand{flex:1.6 1 240px;min-width:220px}.portal-footer-col{flex:1 1 140px;min-width:130px}.portal-footer-brand-name{display:block;font-weight:600;font-size:var(--text-lg);color:#fff;margin-bottom:var(--space-3)}.portal-footer-brand-tagline{max-width:30ch;font-size:var(--text-sm);line-height:1.6;margin:0}.portal-footer-col-title{font-size:var(--text-xs);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:#5f6b80;margin-bottom:var(--space-4)}.portal-footer-col-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.portal-footer-link{font-size:var(--text-sm);color:#b7c1d2;text-decoration:none}.portal-footer-link:hover{color:#fff;text-decoration:underline}.portal-footer-col-title .portal-footer-link{color:#5f6b80;font-weight:600}.portal-footer-strip{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);max-width:1080px;margin:0 auto;padding:var(--space-5) var(--space-6) var(--space-6);border-top:1px solid rgba(255,255,255,.09);font-size:var(--text-xs)}.portal-footer-copy{color:#5f6b80}.portal-footer-legal{display:flex;flex-wrap:wrap;gap:var(--space-4)}.portal-footer-legal .portal-footer-link{color:#8e99ad;font-size:var(--text-xs)}.portal-footer-langs{display:flex;gap:var(--space-1);margin-left:auto}.portal-footer-lang{border:1px solid rgba(255,255,255,.18);background:transparent;color:#b7c1d2;border-radius:var(--radius-sm);padding:3px 9px;font-size:var(--text-xs);cursor:pointer}.portal-footer-lang:hover{border-color:#fff6;color:#fff}.portal-footer-lang.active{border-color:var(--color-primary);color:#fff;background:#1677ff40}@media (max-width: 640px){.portal-footer-columns{grid-template-columns:1fr;padding:var(--space-8) var(--space-4) var(--space-4);gap:var(--space-6)}.portal-footer-strip{padding:var(--space-3) var(--space-4) var(--space-5)}.portal-footer-langs{margin-left:0}}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-shell-main{flex:1;width:100%}.app-shell--legacy{min-height:100vh}.cookie-consent-overlay{position:fixed;bottom:0;left:0;right:0;z-index:9998;display:flex;justify-content:center;padding:16px;pointer-events:none}.cookie-consent{pointer-events:auto;max-width:960px;width:100%;background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:14px 18px;animation:consent-slide-up .3s ease;display:grid;grid-template-columns:1fr auto;grid-template-areas:"title actions" "text actions" "details details";column-gap:24px;align-items:center}.cookie-consent__title{grid-area:title}.cookie-consent__text{grid-area:text;margin-bottom:0!important}.cookie-consent__actions{grid-area:actions}.cookie-consent__details{grid-area:details}@media (max-width: 720px){.cookie-consent{display:block;padding:18px}.cookie-consent__text{margin-bottom:14px!important}}@keyframes consent-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.cookie-consent__title{font-size:15px;font-weight:700;margin-bottom:6px;color:var(--text)}.cookie-consent__text{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:14px}.cookie-consent__actions{display:flex;gap:8px}.cookie-consent__actions .btn{flex:1;font-size:13px;height:38px;border-radius:12px}.cookie-consent__details{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.cookie-consent__category{display:flex;align-items:center;justify-content:space-between;gap:12px}.cookie-consent__category-info{flex:1;min-width:0}.cookie-consent__category-label{font-size:14px;font-weight:600;color:var(--text)}.cookie-consent__category-desc{font-size:12px;color:var(--muted);line-height:1.4;margin-top:2px}.cookie-consent__save-row{display:flex;justify-content:flex-end;margin-top:4px}.cookie-consent__save-row .btn{font-size:13px;height:38px;border-radius:12px}@media (max-width: 768px){body:has(.st-tabbar) .cookie-consent-overlay{bottom:var(--st-tabbar-clearance, 78px)}}@media (max-width: 520px){.cookie-consent-overlay{padding:8px}.cookie-consent{max-width:100%;border-radius:var(--radius-lg);padding:14px}.cookie-consent__actions{flex-wrap:wrap}.cookie-consent__actions .btn{flex:1 1 40%}.cookie-consent__actions .btn-ghost{flex-basis:100%}}.filethumb{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:6px;overflow:hidden;background:var(--line-2, #f0f0f4)}.filethumb img{width:100%;height:100%;object-fit:cover;display:block}.filethumb.ph{font-size:15px;line-height:1;color:var(--ink-3, #8c8c8c)}.upload-dock{position:sticky;top:56px;z-index:40;margin:0;background:var(--card, #ffffff);border-bottom:1px solid var(--line, #e8e8ed);box-shadow:var(--shadow, 0 4px 16px rgba(20, 30, 60, .08));font-size:14px}.upload-dock-bar{display:flex;align-items:center;gap:16px;padding:11px 20px;cursor:pointer}.upload-dock-ico{width:30px;height:30px;border-radius:8px;background:var(--primary-bg, #e6f0ff);color:var(--primary, #1677ff);display:grid;place-items:center;font-size:16px;flex:none}.upload-dock-title{font-weight:700;white-space:nowrap;color:var(--ink, #1f1f1f)}.upload-dock-stats{display:flex;align-items:center;gap:14px;color:var(--ink-2, #595959);font-size:13px;flex:1;flex-wrap:wrap;min-width:0}.upload-dock-stats b{color:var(--ink, #1f1f1f)}.upload-dock-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}.upload-dock-chip.spd{background:#eef6ff;color:var(--primary, #1677ff)}.upload-dock-chip.eta{background:#f6f0ff;color:var(--retry, #722ed1)}.upload-dock-chip.paused{background:#fff7e6;color:var(--warn, #d48806)}.upload-dock-mini{flex:1;min-width:120px;height:8px;background:#eef0f5;border-radius:6px;overflow:hidden}.upload-dock-mini>i{display:block;height:100%;background:linear-gradient(90deg,#1677ff,#4096ff);transition:width .4s}.upload-dock-pct{font-weight:700;color:var(--primary, #1677ff);min-width:42px;text-align:right}.upload-dock-actions{display:flex;align-items:center;gap:8px;flex:none}.upload-dock-iconbtn{width:32px;height:32px;border:1px solid var(--line, #e8e8ed);background:#fff;border-radius:8px;cursor:pointer;display:grid;place-items:center;color:var(--ink-2, #595959);font-size:14px;line-height:1}.upload-dock-iconbtn:hover{border-color:var(--primary, #1677ff);color:var(--primary, #1677ff)}.upload-dock-body{border-top:1px solid var(--line-2, #f0f0f4);max-height:560px;overflow:auto}.upload-dock-sub{display:flex;gap:16px;padding:9px 20px;background:var(--bg, #fafbff);font-size:12.5px;color:var(--ink-2, #595959);border-bottom:1px solid var(--line-2, #f0f0f4);flex-wrap:wrap}.upload-dock-sub b{color:var(--ink, #1f1f1f)}.upload-dock-sub .sub-rty{color:var(--retry, #722ed1)}.upload-dock-sub .sub-err{color:var(--error, #ff4d4f)}.upload-dock-list{padding:4px 0}.upload-dock-foot{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;background:var(--bg, #fafbff);border-top:1px solid var(--line-2, #f0f0f4)}.upload-dock-btn{padding:8px 16px;border-radius:9px;border:1px solid var(--line, #e8e8ed);background:#fff;cursor:pointer;font-weight:700;color:var(--ink-2, #595959);font-size:13px}.upload-dock-btn.primary{border-color:var(--primary, #1677ff);color:var(--primary, #1677ff)}.upload-dock-btn:hover{background:var(--primary-bg, #e6f0ff)}.upload-dock-btn:disabled{opacity:.5;cursor:default}.upload-dock-foot.upload-dock-foot-top{justify-content:flex-start;border-top:none;border-bottom:1px solid var(--line-2, #f0f0f4)}.upload-dock-foot-spacer{flex:1}.upload-dock-btn.link{border-color:transparent;color:var(--primary, #1677ff);background:transparent;text-decoration:underline}.upload-dock-btn.link:hover{background:var(--primary-bg, #e6f0ff)}.upload-dock-row{display:flex;align-items:center;gap:12px;padding:9px 20px;border-bottom:1px solid var(--line-2, #f0f0f4)}.upload-dock-row:last-child{border-bottom:0}.upload-dock-row .st{width:22px;text-align:center;font-size:15px;flex:none}.upload-dock-row .st.ok{color:var(--success, #52c41a)}.upload-dock-row .st.up{color:var(--primary, #1677ff)}.upload-dock-row .st.err{color:var(--error, #ff4d4f)}.upload-dock-row .st.rty{color:var(--retry, #722ed1)}.upload-dock-row .st.q{color:var(--ink-3, #8c8c8c)}.upload-dock-row .st.dup{color:var(--retry, #722ed1)}.upload-dock-row .nm{font-weight:600;min-width:120px;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink, #1f1f1f)}.upload-dock-row .sz{color:var(--ink-3, #8c8c8c);font-size:12px;width:70px;flex:none}.upload-dock-row .mid{flex:1;display:flex;align-items:center;gap:10px;min-width:0}.upload-dock-row .msg{color:var(--ink-2, #595959);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-dock-row .msg.err{color:var(--error, #ff4d4f)}.upload-dock-row .msg.rty{color:var(--retry, #722ed1)}.upload-dock-row .msg.warn{color:var(--warn, #d48806)}.upload-dock-row .bar{flex:1;max-width:180px;height:7px;background:#eef0f5;border-radius:6px;overflow:hidden}.upload-dock-row .bar>i{display:block;height:100%;background:linear-gradient(90deg,#1677ff,#4096ff)}.upload-dock-row .anl{font-size:12px;padding:2px 8px;border-radius:14px;white-space:nowrap;flex:none}.upload-dock-row .anl.ok{background:#eaffea;color:#389e0d}.upload-dock-row .anl.run{background:#fff7e6;color:#d48806}.upload-dock-row .anl.pend{background:#f0f0f4;color:var(--ink-3, #8c8c8c)}.upload-dock-row .anl.err{background:#fff1f0;color:var(--error, #ff4d4f)}.upload-dock-row .anl.unk{background:#f0f0f4;color:var(--ink-3, #8c8c8c)}.upload-dock-row .vidbadge{font-size:11px;font-weight:700;padding:1px 7px;border-radius:10px;background:#f0f0ff;color:var(--retry, #722ed1);margin-left:6px}.upload-dock-row .smallbtn{padding:4px 10px;font-size:12px;border:1px solid var(--primary, #1677ff);color:var(--primary, #1677ff);background:#fff;border-radius:7px;cursor:pointer;font-weight:600;white-space:nowrap;flex:none}.upload-dock-row .smallbtn:hover{background:var(--primary-bg, #e6f0ff)}.upload-dock-row .xbtn{width:26px;height:26px;border:0;background:transparent;color:var(--ink-3, #8c8c8c);cursor:pointer;font-size:15px;border-radius:6px;flex:none;line-height:1}.upload-dock-row .xbtn:hover{background:#fff1f0;color:var(--error, #ff4d4f)}@media (max-width: 768px){.upload-dock-row .sz{display:none}.upload-dock-row .nm{min-width:90px;max-width:140px}.upload-dock-bar{gap:8px;padding:9px 12px}.upload-dock-title{display:none}.upload-dock-stats{flex-wrap:nowrap;gap:8px;font-size:12px}.upload-dock-stats>span[data-testid="upload.dock.counts"]{white-space:nowrap;flex:none}.upload-dock-chip.spd,.upload-dock-chip.eta{display:none}.upload-dock-mini{min-width:0}.upload-dock-pct{min-width:34px}.upload-dock-actions{gap:4px}.upload-dock-iconbtn{width:30px;height:30px}}.quota-almost-banner{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#fff8e1;border-bottom:1px solid #ffe082;color:#7a5a00;font-size:.9rem}.quota-almost-banner-text{flex:1 1 auto}.quota-almost-banner-link{flex:none;font-weight:600;color:var(--color-primary, #007bff);text-decoration:none;white-space:nowrap}.quota-almost-banner-link:hover{text-decoration:underline}.quota-almost-banner-close{flex:none;background:transparent;border:none;color:inherit;cursor:pointer;font-size:.9rem;line-height:1;padding:.25rem;opacity:.7}.quota-almost-banner-close:hover{opacity:1}@media (prefers-color-scheme: dark){.quota-almost-banner{background:#3a3000;border-bottom-color:#5a4a00;color:#ffe082}}.st-sheet-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200}.st-sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;animation:stSheetFade .18s ease}.st-sheet{position:absolute;left:0;right:0;bottom:0;max-height:80dvh;display:flex;flex-direction:column;background:var(--panel-solid, #fff);border-radius:16px 16px 0 0;box-shadow:0 -8px 32px #0000002e;padding-bottom:env(safe-area-inset-bottom,0px);animation:stSheetUp .22s cubic-bezier(.22,1,.36,1);transition:transform .15s ease}@media (min-width: 769px){.st-sheet{left:50%;right:auto;transform:translate(-50%);width:420px}}@keyframes stSheetUp{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes stSheetFade{0%{opacity:0}to{opacity:1}}.st-sheet-head{flex:none;padding:8px 16px 4px;touch-action:none;cursor:grab}.st-sheet-grabber{display:block;width:36px;height:4px;margin:0 auto 8px;border-radius:2px;background:var(--border, #d1d5db)}.st-sheet-title{font-size:15px;font-weight:700;color:var(--text);text-align:center;padding-bottom:6px}.st-sheet-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 8px 12px}.st-sheet-group{padding:12px 12px 4px;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted, #8a94a6)}.st-sheet-group:first-child{padding-top:4px}.st-sheet-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:10px 12px;border:none;border-radius:var(--radius-sm, 10px);background:transparent;color:var(--text);font:inherit;font-size:15px;font-weight:500;text-align:left;cursor:pointer}.st-sheet-item:active{background:var(--surface-hover, rgba(0, 0, 0, .05))}.st-sheet-item:disabled{opacity:.5;cursor:default}.st-sheet-item--danger{color:var(--status-danger, #dc2626)}.st-sheet-item-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;color:var(--muted)}.st-sheet-item--danger .st-sheet-item-icon{color:inherit}.st-sheet-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-nav{min-height:44px;background:var(--bg);border-bottom:1px solid var(--border)}.module-nav-inner{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;padding:4px 12px}.module-nav-item{padding:4px 10px;font-size:.8125rem;font-weight:500;color:var(--muted);text-decoration:none;white-space:nowrap;border-radius:var(--radius-sm);transition:color .2s,background-color .2s}.module-nav-item:hover{color:var(--text);background:#0000000d;text-decoration:none}[data-theme=dark] .module-nav-item:hover{background:#ffffff1a}.module-nav-item.active{color:var(--accent);background:#1677ff1a}.module-nav-activity-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent, #4a90d9);margin-left:4px;vertical-align:middle;animation:module-nav-dot-pulse 1.5s ease-in-out infinite}@keyframes module-nav-dot-pulse{0%,to{opacity:1}50%{opacity:.3}}.module-nav-sep{width:1px;height:18px;background:var(--border);margin:0 4px;flex-shrink:0}.module-nav-spacer{flex:1}.module-nav-menu{position:relative}.module-nav-menu-trigger{display:inline-flex;align-items:center;gap:4px;border:none;background:transparent;cursor:pointer;font-family:inherit}.module-nav-menu-pop{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;background:var(--bg, #fff);border:1px solid var(--border);border-radius:var(--radius-md, 10px);box-shadow:0 8px 24px #1018281f;padding:4px;z-index:160}.module-nav-menu-row{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:transparent;color:var(--text);font-size:.8125rem;font-family:inherit;text-align:left;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.module-nav-menu-row:hover{background:#0000000d}[data-theme=dark] .module-nav-menu-row:hover{background:#ffffff1a}.module-nav-iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:transparent;color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0}.module-nav-iconbtn:hover{color:var(--text);background:#0000000d}[data-theme=dark] .module-nav-iconbtn:hover{background:#ffffff1a}.module-nav-iconbtn .module-nav-activity-dot{position:absolute;top:4px;right:4px;margin-left:0}.module-nav-upload{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:none;border-radius:var(--radius-sm, 8px);background:var(--accent, #1677ff);color:#fff;font-size:.8125rem;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background-color .2s}.module-nav-upload:hover{background:var(--accent-hover, #0e63e0)}@media (max-width: 768px){.module-nav-inner{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;padding:5px 8px;gap:4px}.module-nav-inner::-webkit-scrollbar{display:none}.module-nav-item{display:inline-flex;align-items:center;padding:8px 13px;min-height:36px;flex-shrink:0;scroll-snap-align:center;border-radius:999px;font-weight:600}.module-nav-item.active{font-weight:700}.module-nav--mobile .module-nav-mrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px 12px}.module-nav--mobile .module-nav-spacer{display:none}.module-nav-picker{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:6px 12px 6px 14px;border:1px solid var(--border);border-radius:999px;background:var(--panel-solid, #fff);color:var(--text);font-family:inherit;font-size:.875rem;font-weight:700;cursor:pointer;flex-shrink:0}.module-nav-picker:active{background:#1677ff14}.module-nav-sheet-dot{display:inline-block;width:18px;height:18px}.module-nav-mextras{margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.module-nav-more{width:36px;height:36px;border:1px solid var(--border);border-radius:999px}}.st-tabbar{display:none}@media (max-width: 768px){.st-tabbar{position:fixed;left:max(10px,env(safe-area-inset-left,0px));right:max(10px,env(safe-area-inset-right,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 10px);margin:0 auto;max-width:460px;z-index:900;display:flex;align-items:stretch;height:58px;padding:0 6px;border-radius:26px;background:var(--panel-solid, #fff);background:color-mix(in srgb,var(--panel-solid, #fff) 80%,transparent);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);border:1px solid color-mix(in srgb,var(--border, #e5e7eb) 60%,transparent);box-shadow:0 8px 28px #00000029,0 1px #ffffff80 inset}.st-tabbar-item{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:transparent;color:var(--muted);font-family:inherit;cursor:pointer;padding:4px 2px;border-radius:20px;transition:color .18s ease,background-color .18s ease}.st-tabbar-item.active{color:var(--accent, #1677ff);background:color-mix(in srgb,var(--accent, #1677ff) 12%,transparent)}.st-tabbar-item:active{transform:scale(.94)}.st-tabbar-label{flex:0 0 auto;font-size:10.5px;line-height:1.15;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root{--st-tabbar-clearance: calc(78px + env(safe-area-inset-bottom, 0px)) }.main-content{padding-bottom:var(--st-tabbar-clearance)!important}.portal-footer,.app-footer{padding-bottom:var(--st-tabbar-clearance)}}.app-footer{padding:16px 24px;text-align:center;font-size:.75rem;color:var(--muted);border-top:1px solid var(--border);background:var(--panel);flex-shrink:0}@media (max-width: 480px){.app-footer{padding:12px 16px}}.main-layout{height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.main-body{flex:1;display:flex;min-height:0;overflow:hidden}.main-body-content{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto}.main-content{flex:1;padding:24px}@media (max-width: 768px){.main-content{padding:16px}}@media (max-width: 480px){.main-content{padding:12px}}.main-body--admin{flex-direction:row}.main-body--admin .navigation-sidebar{width:220px;min-width:220px;height:100%;overflow-y:auto;border-right:1px solid var(--border, #e5e7eb);background:var(--bg-secondary, #f8f9fa)}@media (max-width: 768px){.main-body--admin{flex-direction:column}.main-body--admin .navigation-sidebar{width:100%;min-width:unset;height:auto;max-height:40vh;border-right:none;border-bottom:1px solid var(--border, #e5e7eb)}}.admin-nav-toggle,.admin-nav-drawer-backdrop{display:none}@media (max-width: 768px){.admin-nav-toggle{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:44px;margin:12px 16px 0;padding:8px 14px;background:var(--panel-solid, #fff);border:1px solid var(--border);border-radius:var(--radius-sm, 8px);color:var(--text);font-size:.875rem;font-weight:600;cursor:pointer}.admin-nav-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:950}}@media (max-width: 768px){.st-nav-collapse{max-height:64px;overflow:hidden;transition:max-height .2s ease,opacity .2s ease}.st-nav-collapse--hidden{max-height:0;opacity:0}}.st-ptr{position:fixed;top:56px;left:50%;transform:translate(-50%);z-index:950;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--panel-solid, #fff);border:1px solid var(--border);box-shadow:0 4px 14px #0000001f;color:var(--accent, #1677ff);font-size:18px;opacity:0;pointer-events:none}.error-boundary{padding:var(--spacing-xl);max-width:800px;margin:0 auto;text-align:center}.error-boundary-title{color:var(--color-error);margin-bottom:var(--spacing-md);font-size:2rem}.error-boundary-message{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}.error-boundary-details{margin-top:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);text-align:left;font-size:.9em}.error-boundary-summary{cursor:pointer;margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.error-boundary-pre{white-space:pre-wrap;word-break:break-word;color:var(--color-error-text)}.error-boundary-button{margin-top:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem;min-height:44px;transition:all var(--transition-fast)}.error-boundary-button:hover{background-color:var(--color-primary-hover)}@media (max-width: 768px){.error-boundary{padding:var(--spacing-md)}.error-boundary-title{font-size:1.5rem}}.gquota{display:flex;flex-direction:column;gap:6px}.gquota-scale{display:flex;flex-direction:column;gap:2px}.gquota-bytes{font-size:11px;color:var(--text-secondary, #666);text-align:right}.gquota-progress-full span{background:var(--color-error, #dc3545)}.gquota-badge{align-self:flex-start;padding:1px 8px;border-radius:10px;background:var(--color-error, #dc3545);color:#fff;font-size:11px;font-weight:600;line-height:16px;white-space:nowrap}.gquota-trash{font-size:11px;color:var(--text-secondary, #666);text-decoration:none}.gquota-trash:hover{color:var(--accent-color, #1677ff);text-decoration:underline}.gquota-atrisk{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--color-error, #dc3545);text-decoration:none;font-weight:500}.gquota-atrisk:hover{text-decoration:underline}.gquota-atrisk b{font-weight:700}.bugreport-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;background:transparent;border-radius:var(--radius, 6px);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.bugreport-btn:hover{background:var(--hover);color:var(--text)}.bugreport-btn:active{background:var(--active)}.smart-ctl{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;position:relative}.smart-ctl--left{flex-direction:row}.smart-ctl--hidden{display:none}.smart-ctl-btn{height:28px;width:28px;min-width:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border, #e3e3e8);border-radius:8px;background:var(--color-surface, #fff);color:var(--color-text-secondary, #595959);cursor:pointer;position:relative;line-height:0;transition:border-color .15s ease,color .15s ease,background .15s ease}.smart-ctl-btn:hover:not(:disabled){border-color:var(--color-primary, #1677ff);color:var(--color-primary, #1677ff);background:var(--color-primary-bg, #eef5ff)}.smart-ctl-btn:disabled{opacity:.45;cursor:default}.smart-ctl-btn svg{width:16px;height:16px}.smart-ctl--md .smart-ctl-btn{height:34px;width:34px;min-width:34px;border-radius:10px}.smart-ctl--md .smart-ctl-btn svg{width:18px;height:18px}.smart-ctl-btn.is-active{background:var(--color-primary, #1677ff);border-color:var(--color-primary, #1677ff);color:#fff;animation:smart-pulse 1.3s ease-in-out infinite}@keyframes smart-pulse{0%,to{box-shadow:0 0 #1677ff73}50%{box-shadow:0 0 0 5px #1677ff00}}.smart-ctl-cmd .smart-ctl-badge{position:absolute;right:-2px;bottom:-2px;width:11px!important;height:11px!important;color:var(--color-primary, #1677ff);background:var(--color-surface, #fff);border-radius:50%}.smart-ctl-cmd.is-active .smart-ctl-badge{color:#fff;background:var(--color-primary, #1677ff)}.smart-ctl-ai{color:var(--color-primary, #1677ff)}.smart-ctl-ai.is-open{background:var(--color-primary-bg, #eef5ff);border-color:var(--color-primary, #1677ff)}.smart-ctl-ai-wrap{position:relative;display:inline-flex}.smart-ctl-undo{color:var(--color-warning, #d48806)}.smart-ctl-menu,.smart-ctl-gen{position:absolute;top:calc(100% + 6px);right:0;z-index:1000;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e3e3e8);border-radius:12px;box-shadow:0 8px 28px #00000024}.smart-ctl--left .smart-ctl-menu,.smart-ctl--left .smart-ctl-gen{right:auto;left:0}.smart-ctl-menu{min-width:196px;padding:5px;display:flex;flex-direction:column;gap:2px}.smart-ctl-menu-item{display:flex;align-items:center;gap:9px;height:auto;min-height:36px;padding:7px 10px;width:100%;border:0;border-radius:8px;background:transparent;color:var(--color-text, #1f1f1f);font-size:13px;text-align:left;cursor:pointer}.smart-ctl-menu-item:hover:not(:disabled){background:var(--color-primary-bg, #eef5ff);color:var(--color-primary, #1677ff)}.smart-ctl-menu-item:disabled{opacity:.4;cursor:default}.smart-ctl-menu-item svg{width:16px;height:16px;flex:0 0 auto}.smart-ctl-gen{width:300px;padding:10px}.smart-ctl-gen-input{width:100%;box-sizing:border-box;resize:vertical;min-height:46px;padding:8px 10px;border:1px solid var(--color-border, #e3e3e8);border-radius:8px;font-size:13px;font-family:inherit;color:var(--color-text, #1f1f1f)}.smart-ctl-gen-input:focus{outline:none;border-color:var(--color-primary, #1677ff)}.smart-ctl-gen-row{display:flex;align-items:center;gap:8px;margin-top:8px}.smart-ctl-gen-spacer{flex:1}.smart-ctl-gen-mic{height:30px;width:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border, #e3e3e8);border-radius:8px;background:#fff;color:var(--color-primary, #1677ff);cursor:pointer}.smart-ctl-gen-mic svg{width:16px;height:16px}.smart-ctl-gen-cancel{height:30px;padding:0 12px;border:1px solid var(--color-border, #e3e3e8);border-radius:8px;background:#fff;color:var(--color-text-secondary, #595959);cursor:pointer;font-size:13px}.smart-ctl-gen-go{height:30px;padding:0 14px;border:0;border-radius:8px;background:var(--color-primary, #1677ff);color:#fff;cursor:pointer;font-size:13px}.smart-ctl-gen-go:disabled{opacity:.5;cursor:default}.smart-ctl-status{display:inline-flex;align-items:center;gap:6px;max-width:230px;height:24px;padding:0 9px 0 8px;border-radius:999px;font-size:12px;white-space:nowrap;overflow:hidden;background:var(--color-primary-bg, #eef5ff);color:var(--color-primary, #1677ff)}.smart-ctl-status-label{overflow:hidden;text-overflow:ellipsis}.smart-ctl-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}.smart-ctl-status--thinking .smart-ctl-dot,.smart-ctl-status--streaming .smart-ctl-dot{animation:smart-blink 1s ease-in-out infinite}.smart-ctl-status--dictating,.smart-ctl-status--commanding{background:#f5222d1a;color:#d4380d}.smart-ctl-status--dictating .smart-ctl-dot,.smart-ctl-status--commanding .smart-ctl-dot{animation:smart-pulse-dot 1s ease-in-out infinite}@keyframes smart-blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes smart-pulse-dot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}.smart-ctl-cancel{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:0;background:transparent;color:currentColor;cursor:pointer;opacity:.7}.smart-ctl-cancel:hover{opacity:1}.smart-ctl-cancel svg{width:12px;height:12px}.smart-ctl-error{font-size:12px;color:var(--color-danger, #cf1322);max-width:220px}.smart-text{position:relative;display:inline-flex;align-items:flex-start;width:100%}.smart-text-field{width:100%}.smart-text .smart-text-controls{position:absolute;top:6px;right:6px}.annotation-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:99998;cursor:crosshair}.annotation-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.annotation-canvas{position:absolute;top:0;left:0;width:100%;height:100%}.annotation-toolbar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--panel-solid, #fff);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 8px 32px rgba(0,0,0,.2));z-index:99999}.annotation-toolbar-hint{font-size:.875rem;color:var(--text-secondary)}.annotation-label-popup{position:fixed;z-index:99999;background:var(--panel-solid, #fff);border-radius:var(--radius, 6px);box-shadow:var(--shadow-lg, 0 8px 32px rgba(0,0,0,.2));padding:12px;display:flex;flex-direction:column;gap:8px;max-width:280px}.annotation-label-input{min-height:36px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius, 6px);font-size:.875rem;background:var(--input-bg, #fff);color:var(--text);width:100%}.annotation-label-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring, rgba(74,144,217,.2))}.annotation-label-actions{display:flex;gap:6px}.bugreport-drawer{width:0;min-width:0;overflow:hidden;display:flex;flex-direction:column;background:var(--panel-solid);border-left:1px solid transparent;box-shadow:none;flex-shrink:0;transition:width .3s cubic-bezier(.32,.72,0,1),min-width .3s cubic-bezier(.32,.72,0,1),border-color .3s ease,box-shadow .3s ease}.bugreport-drawer--open{width:380px;min-width:380px;border-left-color:var(--border);box-shadow:var(--shadow-lg)}.bugreport-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 14px 18px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));white-space:nowrap}.bugreport-drawer-header-title{display:flex;align-items:center;gap:10px}.bugreport-drawer-header h3{font-size:.9375rem;font-weight:600;margin:0;color:var(--text)}.bugreport-drawer-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;font-size:1.25rem;color:var(--text-secondary);border-radius:var(--radius, 6px)}.bugreport-drawer-close:hover{background:var(--hover);color:var(--text)}.bugreport-drawer-body{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:20px}.bugreport-drawer-footer{flex-shrink:0;padding:12px 16px 16px;border-top:1px solid var(--border);background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur))}.bugreport-section{display:flex;flex-direction:column;gap:10px}.bugreport-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.bugreport-capturing{display:flex;align-items:center;gap:8px;padding:12px;color:var(--text-secondary);font-size:.875rem}.bugreport-actions-row{display:flex;gap:6px;flex-wrap:wrap}.bugreport-actions-row .btn{font-size:.8125rem;padding:4px 10px}.bugreport-type-selector{display:flex;gap:4px}.bugreport-type-btn{flex:1;min-height:36px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);border-radius:var(--radius, 6px);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all .15s}.bugreport-type-btn:hover{background:var(--hover)}.bugreport-type-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.bugreport-note-wrap{position:relative}.bugreport-note{width:100%;min-height:80px;padding:10px 40px 10px 10px;border:1px solid var(--border);border-radius:var(--radius, 6px);background:var(--input-bg, #fff);color:var(--text);font-family:inherit;font-size:.875rem;resize:vertical}.bugreport-note:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring, rgba(74,144,217,.2))}.bugreport-voice-btn{position:absolute;right:6px;top:6px}.bugreport-console-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:var(--danger-light, rgba(229, 72, 77,.08));color:var(--danger, #e5484d);border-radius:var(--radius, 6px);font-size:.8125rem;font-weight:500}.bugreport-annotations-list{display:flex;flex-direction:column;gap:4px}.bugreport-annotation-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-secondary, #f5f5f5);border-radius:var(--radius, 6px);font-size:.8125rem}.bugreport-annotation-badge{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.6875rem;font-weight:700;flex-shrink:0}.bugreport-annotation-label{flex:1;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bugreport-annotation-remove{width:20px;height:20px;border:none;background:transparent;cursor:pointer;color:var(--text-tertiary);font-size:1rem;padding:0;flex-shrink:0}.bugreport-annotation-remove:hover{color:var(--danger, #e5484d)}.bugreport-regions{display:flex;gap:8px;flex-wrap:wrap}.bugreport-region-item{position:relative;width:80px;height:60px;border-radius:var(--radius, 6px);overflow:hidden;border:1px solid var(--border)}.bugreport-region-thumb{width:100%;height:100%;object-fit:cover}.bugreport-region-item .bugreport-annotation-remove{position:absolute;top:2px;right:2px;background:#0009;color:#fff;border-radius:50%;width:18px;height:18px;font-size:.75rem}.bugreport-success{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;text-align:center}.bugreport-success h4{margin:0;font-size:1.125rem;color:var(--text)}.bugreport-success p{margin:0;color:var(--text-secondary);font-size:.875rem}@media (max-width: 768px){.bugreport-drawer--open{position:fixed;top:0;right:0;width:100vw;min-width:100vw;height:100vh;z-index:10000}}.chat-photo-grid{border-radius:var(--radius-sm);overflow:hidden}.chat-photo-grid-items{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.chat-photo-thumb{position:relative;aspect-ratio:1;overflow:hidden;background:var(--bg);cursor:pointer}.chat-photo-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .15s}.chat-photo-thumb:hover img{transform:scale(1.05)}.chat-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--muted)}.chat-photo-grid-more{padding:6px 0;text-align:center;font-size:.8125rem;color:var(--accent);cursor:pointer}.chat-photo-grid-count{padding:4px 0;text-align:center;font-size:.75rem;color:var(--muted)}.pv-toolbar{display:flex;justify-content:space-between;align-items:center;padding:0 16px;height:48px;background:var(--pv-surface);border-bottom:1px solid var(--pv-border);flex-shrink:0;z-index:10;transition:transform .35s cubic-bezier(.25,.1,.25,1),opacity .3s ease}.pv-toolbar.pv-auto-hidden{transform:translateY(-100%);opacity:0;pointer-events:none}.pv-toolbar-left{flex:1;min-width:0}.pv-title{margin:0;font-size:14px;font-weight:500;color:var(--pv-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-sans)}.pv-user-id{color:var(--pv-text-muted);font-size:12px;font-weight:400}.pv-toolbar-right{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:12px}.pv-nav-counter{font-size:12px;color:var(--pv-text-muted);font-variant-numeric:tabular-nums;margin-right:4px;font-family:var(--font-mono)}.pv-icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:8px;background:transparent;color:#ffffffbf;cursor:pointer;transition:background .15s,color .15s;font-size:14px}.pv-icon-btn:hover{background:#ffffff14;color:var(--pv-text)}.pv-icon-btn.active{background:#ffffff1f;color:var(--pv-accent)}.pv-close-btn{margin-left:4px}.pv-close-btn:hover{background:#e5484d26;color:#e5484d}.pv-filmstrip-btn-group{position:relative;display:flex;align-items:center}.pv-icon-btn--tiny{width:20px;height:34px;margin-left:-4px}.pv-fs-settings{position:absolute;top:100%;right:0;margin-top:4px;background:var(--pv-surface-elevated, #1c1c1e);border:1px solid var(--pv-border);border-radius:10px;padding:8px;min-width:180px;z-index:100;box-shadow:0 8px 24px #0006}.pv-fs-settings-group{padding:4px 0}.pv-fs-settings-group+.pv-fs-settings-group{border-top:1px solid var(--pv-border);margin-top:4px;padding-top:8px}.pv-fs-settings-label{display:block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pv-text-muted);margin-bottom:4px;padding:0 2px}.pv-fs-settings-btns{display:flex;gap:2px}.pv-fs-opt{flex:1;padding:4px 6px;border:none;border-radius:6px;background:transparent;color:var(--pv-text-muted);font-size:11px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.pv-fs-opt:hover{background:#ffffff14;color:var(--pv-text)}.pv-fs-opt.active{background:var(--pv-accent);color:#fff}@media (max-width: 768px){.pv-toolbar{height:44px;padding:0 8px}.pv-toolbar-right{gap:2px;margin-left:4px}.pv-icon-btn{width:44px;height:44px;font-size:16px}.pv-title{font-size:13px}.pv-nav-counter{font-size:11px}}.vc-container{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#000;-webkit-user-select:none;user-select:none}.vc-container video{max-width:100%;max-height:100%;outline:none;display:block;cursor:pointer}.vc-click-area{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer}.vc-big-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:64px;height:64px;border-radius:50%;background:#0009;border:2px solid rgba(255,255,255,.3);color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .25s ease}.vc-big-play--visible{opacity:1}.vc-controls{position:absolute;bottom:0;left:0;right:0;z-index:5;display:flex;flex-direction:column;background:linear-gradient(transparent,#000c);padding:24px 12px 8px;opacity:1;transition:opacity .3s ease}.vc-controls--hidden{opacity:0;pointer-events:none}.vc-seekbar-row{position:relative;width:100%;height:20px;display:flex;align-items:center;cursor:pointer}.vc-seekbar-track{position:relative;width:100%;height:4px;background:#fff3;border-radius:2px;overflow:visible;transition:height .15s ease}.vc-seekbar-row:hover .vc-seekbar-track{height:8px}.vc-seekbar-buffered{position:absolute;top:0;left:0;height:100%;background:#ffffff4d;border-radius:2px;pointer-events:none}.vc-seekbar-progress{position:absolute;top:0;left:0;height:100%;background:#2196f3;border-radius:2px;pointer-events:none}.vc-seekbar-thumb{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#2196f3;border:2px solid #fff;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .15s ease;box-shadow:0 1px 4px #00000080}.vc-seekbar-row:hover .vc-seekbar-thumb{opacity:1}.vc-sprite-preview{position:absolute;bottom:28px;transform:translate(-50%);width:160px;height:90px;border:2px solid #fff;border-radius:4px;box-shadow:0 4px 16px #0009;overflow:hidden;pointer-events:none;z-index:10;background:#000}.vc-sprite-preview__time{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:11px;color:#fff;background:#000000b3;padding:1px 0;font-family:monospace}.vc-seekbar-tooltip{position:absolute;bottom:28px;transform:translate(-50%);background:#000000d9;color:#fff;padding:2px 8px;border-radius:3px;font-size:12px;font-family:monospace;pointer-events:none;white-space:nowrap;z-index:10}.vc-buttons-row{display:flex;align-items:center;gap:4px;height:40px;padding-top:4px}.vc-btn{background:none;border:none;color:#fff;cursor:pointer;padding:6px 8px;border-radius:4px;font-size:16px;display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;transition:background .15s ease;line-height:1}.vc-btn:hover{background:#ffffff26}.vc-btn:active{background:#ffffff40}.vc-btn svg{width:20px;height:20px}.vc-time{color:#ffffffe6;font-size:13px;font-family:monospace;padding:0 8px;white-space:nowrap;-webkit-user-select:none;user-select:none}.vc-spacer{flex:1}.vc-volume-group{display:flex;align-items:center;gap:0}.vc-volume-slider-wrap{width:0;overflow:hidden;transition:width .2s ease}.vc-volume-group:hover .vc-volume-slider-wrap{width:80px}.vc-volume-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:72px;height:4px;margin:0 4px;border-radius:2px;background:#ffffff4d;outline:none;cursor:pointer}.vc-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;cursor:pointer}.vc-volume-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;cursor:pointer;border:none}.vc-dropdown-anchor{position:relative}.vc-dropdown{position:absolute;bottom:44px;right:0;min-width:100px;background:#141416f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:4px 0;z-index:20;box-shadow:0 8px 32px #00000080}.vc-dropdown__item{display:flex;align-items:center;width:100%;padding:8px 16px;background:none;border:none;color:#fffc;font-size:13px;cursor:pointer;text-align:left;white-space:nowrap;transition:background .1s}.vc-dropdown__item:hover{background:#ffffff1a}.vc-dropdown__item--active{color:#2196f3;font-weight:600}.vc-dropdown__item--active:before{content:"✓";margin-right:8px;font-size:12px}.vc-label-btn{font-size:13px;font-weight:500;min-width:unset;padding:6px 10px}.vc-edit-btn svg{width:16px;height:16px}.vc-btn--active{color:var(--accent, #1677ff);text-shadow:0 0 12px rgba(22,119,255,.6)}.vc-container video::cue{background:#000000a6;color:#fff;font-size:1.05rem;line-height:1.4}.vc-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;pointer-events:none}.vc-loading__spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.15);border-top-color:#fff;border-radius:50%;animation:vcSpin .8s linear infinite}@keyframes vcSpin{to{transform:rotate(360deg)}}@media (max-width: 768px){.vc-btn{min-width:44px;height:44px;padding:8px}.vc-controls{padding:16px 8px 6px}.vc-seekbar-track{height:6px}.vc-seekbar-row:hover .vc-seekbar-track{height:10px}.vc-seekbar-thumb{width:18px;height:18px;opacity:1}.vc-volume-group:hover .vc-volume-slider-wrap{width:0}.vc-time{font-size:12px;padding:0 4px}.vc-big-play{width:56px;height:56px;font-size:22px}}@media (pointer: coarse){.vc-seekbar-thumb{opacity:1;width:18px;height:18px}.vc-btn{min-width:48px;height:48px}.vc-sprite-preview{display:none}}.pv-image-area{flex:1;display:flex;flex-direction:column;position:relative;min-width:0;overflow:hidden}.pv-image-container{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;touch-action:none}.pv-image-stage{position:relative;display:flex;align-items:center;justify-content:center;max-width:100%;max-height:100%}.pv-image-wrapper{position:relative;display:inline-block;max-width:100%;max-height:100%;line-height:0}.pv-image{max-width:100%;max-height:calc(100vh - 180px);max-height:calc(100dvh - 180px);object-fit:contain;display:block;border-radius:2px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.pv-overlay.pv-fullscreen .pv-image{max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px)}.pv-canvas-overlay{position:absolute;top:0;left:0;pointer-events:none}.pv-crossfade-in{animation:pvFadeIn .35s ease forwards}.pv-crossfade-out{position:absolute!important;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;animation:pvFadeOut .35s ease forwards;pointer-events:none}@keyframes pvFadeIn{0%{opacity:0}to{opacity:1}}@keyframes pvFadeOut{0%{opacity:1}to{opacity:0}}.pv-loading{flex:1;display:flex;align-items:center;justify-content:center}.pv-spinner{width:32px;height:32px;border:2px solid rgba(255,255,255,.1);border-top-color:var(--pv-accent);border-radius:50%;animation:pvSpin .8s linear infinite}@keyframes pvSpin{to{transform:rotate(360deg)}}.pv-no-image{display:flex;align-items:center;justify-content:center;width:400px;height:300px;background:#ffffff08;color:var(--pv-text-muted);border-radius:8px;font-size:14px}.pv-nav-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:8;width:44px;height:72px;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.06);color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,opacity .3s,transform .3s}.pv-nav-btn:hover{background:#0009;color:#fff}.pv-nav-btn.pv-auto-hidden{opacity:0;pointer-events:none}.pv-nav-prev{left:0;border-radius:0 10px 10px 0}.pv-nav-next{right:0;border-radius:10px 0 0 10px}.pv-zoom-badge{position:absolute;top:12px;right:12px;z-index:8;padding:4px 10px;background:#0000008c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:6px;color:#fffc;font-size:11px;font-family:var(--font-mono);pointer-events:none}.pv-image-toolbar{display:flex;justify-content:center;gap:6px;padding:6px 12px;background:var(--pv-surface);border-top:1px solid var(--pv-border);flex-shrink:0;transition:opacity .3s ease}.pv-image-toolbar.pv-auto-hidden{opacity:0;pointer-events:none}@media (max-width: 768px){.pv-nav-btn{width:40px;height:56px}.pv-image{max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px)}.pv-overlay.pv-fullscreen .pv-image{max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px)}.pv-image-toolbar{padding:4px 8px;gap:4px}.pv-image-toolbar .pv-btn{padding:4px 10px;height:28px;font-size:12px}.pv-no-image{width:100%;height:200px}}@media (pointer: coarse){.pv-nav-btn{width:52px;height:80px}}.pv-video-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#000}.pv-video-container video{max-width:100%;max-height:100%;outline:none}.pv-filmstrip-wrapper{flex-shrink:0;position:relative;transition:max-height .15s ease}.pv-filmstrip-resize{position:absolute;top:-6px;left:0;right:0;height:12px;cursor:row-resize;z-index:10;display:flex;align-items:center;justify-content:center}.pv-filmstrip-resize-grip{width:40px;height:4px;border-radius:2px;background:#ffffff26;transition:background .2s}.pv-filmstrip-resize:hover .pv-filmstrip-resize-grip{background:#fff6}.pv-filmstrip{display:flex;align-items:center;gap:4px;padding:6px 16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;background:#00000080;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--pv-border);transition:opacity .3s ease}.pv-filmstrip::-webkit-scrollbar{height:4px}.pv-filmstrip::-webkit-scrollbar-track{background:transparent}.pv-filmstrip::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.pv-filmstrip-item{position:relative;flex-shrink:0;border-radius:4px;overflow:hidden;cursor:pointer;scroll-snap-align:center;border:2px solid transparent;opacity:.85;transition:opacity .2s,border-color .2s,transform .15s}.pv-filmstrip-video-badge{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.pv-filmstrip-video-badge:after{content:"";width:0;height:0;border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent rgba(255,255,255,.95);margin-left:2px;filter:drop-shadow(0 0 2px rgba(0,0,0,.7))}.pv-filmstrip-item:hover{opacity:1;transform:scale(1.06)}.pv-filmstrip-item.active{opacity:1;border-color:var(--pv-accent);box-shadow:0 0 8px #1677ff4d}.pv-filmstrip-item img{width:100%;height:100%;display:block}.pv-filmstrip-placeholder{width:100%;height:100%;background:#ffffff14;border-radius:3px;position:relative;overflow:hidden}.pv-filmstrip-placeholder:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.12) 50%,transparent 75%);background-size:200% 100%;animation:pvFilmstripShimmer 1.5s ease-in-out infinite}@keyframes pvFilmstripShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.pv-filmstrip-group-header{flex-shrink:0;display:flex;align-items:center;padding:0 6px;border-left:2px solid rgba(255,255,255,.2);margin-left:4px}.pv-filmstrip-group-header span{writing-mode:vertical-rl;text-orientation:mixed;color:#ffffff80;font-size:.65rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;max-height:100%;overflow:hidden;text-overflow:ellipsis}.pv-filmstrip--original .pv-filmstrip-item{background:#ffffff05}@media (max-width: 768px){.pv-filmstrip{padding:4px 10px}.pv-filmstrip-resize{display:none}}.pv-filmstrip-wrapper--immersive{position:absolute;left:0;right:0;bottom:0;z-index:20;max-height:none!important;padding-bottom:env(safe-area-inset-bottom,0px);background:linear-gradient(to top,#0009,#0000);animation:pvFilmstripSlideUp .25s ease}.pv-filmstrip-wrapper--immersive .pv-filmstrip{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-top:none;scroll-snap-type:none}@keyframes pvFilmstripSlideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.photo-location-map-container{width:100%;border-radius:4px;overflow:hidden;border:1px solid #dee2e6}.photo-location-map-empty{padding:2rem;text-align:center;color:#666;background-color:#f8f9fa;border-radius:4px;border:1px solid #dee2e6}.photo-location-popup{font-size:14px;font-weight:500}.pv-voice-count{font-weight:400;color:var(--pv-text-muted, #999)}.pv-voice-loading,.pv-voice-error,.pv-voice-empty{font-size:.8rem;color:var(--pv-text-muted, #999);margin:0 0 8px}.pv-voice-error{color:#ff453a}.pv-voice-list{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.pv-voice-note{border:1px solid var(--pv-border, rgba(255, 255, 255, .1));border-radius:8px;padding:8px}.pv-voice-note-main{display:flex;align-items:center;gap:8px}.pv-voice-note-audio{flex:1;min-width:0;width:100%;height:32px}.pv-voice-note-play{flex:1;text-align:left}.pv-voice-note-duration{color:var(--pv-text-muted, #999);font-weight:400}.pv-voice-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--pv-text-muted, #999);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.pv-voice-icon-btn:hover{background:#ffffff14}.pv-voice-icon-btn--danger:hover{color:#ff453a}.pv-voice-caption{margin-top:6px;font-size:.8rem;line-height:1.35;word-break:break-word}.pv-voice-caption--editable{cursor:text}.pv-voice-caption--empty{color:var(--pv-text-muted, #999);font-style:italic}.pv-voice-caption-input{margin-top:6px;width:100%;font-size:.8rem;padding:4px 6px;border-radius:6px;border:1px solid var(--pv-border, rgba(255, 255, 255, .15));background:transparent;color:inherit;outline:none}.pv-voice-transcript{margin-top:6px;font-size:.75rem;line-height:1.4;color:var(--pv-text-muted, #aaa);border-left:2px solid var(--pv-border, rgba(255, 255, 255, .15));padding-left:8px;word-break:break-word}.pv-voice-transcript--pending{font-style:italic}.pv-voice-transcript--failed{font-style:italic;color:var(--pv-text-faint, #888)}.pv-voice-note-date{margin-top:6px;font-size:.68rem;color:var(--pv-text-muted, #888)}.pv-voice-record-btn{display:inline-flex;align-items:center;gap:6px}.pv-voice-recorder{display:flex;align-items:center;gap:10px}.pv-voice-rec-dot{width:10px;height:10px;border-radius:50%;background:#ff453a;flex-shrink:0;animation:pv-voice-blink 1s ease-in-out infinite}@keyframes pv-voice-blink{0%,to{opacity:1}50%{opacity:.25}}.pv-voice-rec-timer{font-variant-numeric:tabular-nums;font-size:.85rem}.pv-voice-preview{display:flex;flex-direction:column;gap:8px}.pv-voice-preview-actions{display:flex;gap:8px}.pv-resize-handle{width:6px;flex-shrink:0;background:var(--pv-border);cursor:col-resize;transition:background .2s;position:relative}.pv-resize-handle.hidden{display:none}.pv-resize-handle:hover{background:var(--pv-accent)}.pv-resize-handle:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:32px;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.25) 0px,rgba(255,255,255,.25) 3px,transparent 3px,transparent 6px)}.pv-resize-handle:hover:before{background:repeating-linear-gradient(to bottom,rgba(255,255,255,.6) 0px,rgba(255,255,255,.6) 3px,transparent 3px,transparent 6px)}.pv-sidebar{width:320px;min-width:250px;max-width:800px;flex-shrink:0;background:#141416eb;backdrop-filter:blur(24px) saturate(1.2);-webkit-backdrop-filter:blur(24px) saturate(1.2);border-left:1px solid var(--pv-border);overflow-y:auto;padding:16px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent;transition:transform .35s cubic-bezier(.25,.1,.25,1),opacity .3s ease,width 0s}.pv-sidebar-collapsed{transform:translate(100%);opacity:0;pointer-events:none;position:absolute;right:0;top:0;bottom:0}.pv-sidebar-loading{display:flex;align-items:center;justify-content:center;padding:3rem}.pv-section{margin-bottom:20px}.pv-section h3{margin:0 0 10px;font-size:12px;font-weight:600;color:var(--pv-text);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--pv-border);padding-bottom:6px;font-family:var(--font-sans)}.pv-info-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:13px;line-height:1.5}.pv-label{color:var(--pv-text-muted);font-size:12px}.pv-mono{font-family:var(--font-mono);font-size:12px}.pv-ai-section{border:1px solid var(--pv-border);border-radius:8px;padding:10px;background:#1677ff0a;transition:background .3s}.pv-ai-section.expanded{background:#1677ff12}.pv-ai-section h3{margin-bottom:8px;border-bottom:none;padding-bottom:0;-webkit-user-select:none;user-select:none}.pv-ai-section h3:hover{color:var(--pv-accent)}.pv-ai-item{margin-bottom:8px;background:#ffffff08;border-radius:6px;padding:6px 8px}.pv-ai-item:last-child{margin-bottom:0}.pv-ai-item-label{text-transform:capitalize;font-weight:600;font-size:12px;margin-bottom:2px;color:var(--pv-text)}.pv-ai-item-value{word-break:break-word;white-space:pre-wrap;line-height:1.5;color:var(--pv-text-muted);font-size:13px}.pv-ai-item-fade{position:absolute;bottom:0;left:0;right:0;height:2rem;background:linear-gradient(transparent,#141416f2);display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px;font-size:11px;color:var(--pv-accent)}.pv-ai-section-fade{position:absolute;bottom:0;left:0;right:0;height:2.5rem;background:linear-gradient(transparent,#141416f2);pointer-events:none}.pv-faces-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}.pv-face-card{position:relative;background:#ffffff0a;border-radius:6px;padding:6px;text-align:center;cursor:pointer;transition:background .15s,transform .15s;border:2px solid transparent}.pv-face-card:hover{background:#ffffff14;transform:scale(1.03)}.pv-face-card.highlighted{border-color:var(--pv-accent)}.pv-face-img{width:100%;height:60px;object-fit:cover;border-radius:4px;margin-bottom:4px}.pv-face-placeholder{width:100%;height:60px;background:#ffffff0f;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--pv-text-muted);margin-bottom:4px}.pv-face-info{display:flex;flex-direction:column;gap:1px}.pv-face-name{font-size:11px;font-weight:600}.pv-face-detail{font-size:10px;color:var(--pv-text-muted)}.pv-face-nav-btn{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:4px;background:#00000080;border:none;color:#fffc;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;padding:0}.pv-face-card:hover .pv-face-nav-btn{opacity:1}.pv-face-nav-btn:hover{background:var(--pv-accent);color:#fff}.pv-tags{display:flex;flex-wrap:wrap;gap:4px}.pv-tag{background:#ffffff14;padding:3px 8px;border-radius:4px;font-size:12px;color:var(--pv-text)}.pv-history-list{display:flex;flex-direction:column;gap:4px}.pv-history-item{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 8px;background:#ffffff08;border-radius:6px;font-size:12px}.pv-history-name{font-weight:500}.pv-history-status{padding:1px 6px;border-radius:4px;font-size:10px;text-transform:uppercase;letter-spacing:.3px}.pv-status-completed{background:#16a34a33;color:#16a34a}.pv-status-queued,.pv-status-processing{background:#f59e0b33;color:#f59e0b}.pv-status-error{background:#e5484d33;color:#e5484d}.pv-history-error{width:100%;color:#e5484d;font-size:11px}.pv-action-btns{display:flex;flex-wrap:wrap;gap:6px}@media (max-width: 768px){.pv-sidebar{width:100%!important;min-width:100%;max-height:35vh;max-height:35dvh;border-left:none;border-top:1px solid var(--pv-border);padding:12px}.pv-sidebar-collapsed{transform:translateY(100%)}.pv-resize-handle{display:none}.pv-faces-grid{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:4px}.pv-face-img,.pv-face-placeholder{height:48px}}.pv-processing-checklist{display:flex;flex-direction:column;gap:4px}.pv-processing-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--pv-text)}.pv-processing-check-icon{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0}.pv-processing-check-icon--done{background:#4caf5026;color:#4caf50}.pv-processing-check-icon--error{background:#e5393526;color:#e53935}.pv-processing-check-icon--pending{background:#ff980026;color:#ff9800}.pv-processing-check-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.print-format-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background-color:#0009}.print-format-modal{background-color:var(--bg-primary, #1a1a1a);border:1px solid var(--border-color, #3a3a3a);border-radius:8px;width:90%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.print-format-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color, #3a3a3a)}.print-format-header h2{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary, #e0e0e0)}.print-format-close{background:none;border:none;color:var(--text-secondary, #888);font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.print-format-close:hover{color:var(--text-primary, #e0e0e0)}.print-format-close:disabled{opacity:.5;cursor:not-allowed}.print-format-body{padding:1.25rem;overflow-y:auto}.print-format-loading,.print-format-error,.print-format-empty{text-align:center;padding:2rem 0;color:var(--text-secondary, #888);font-size:.9rem}.print-format-error{color:#dc3545}.print-format-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.print-format-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1rem;background-color:var(--bg-secondary, #2a2a2a);border:1px solid var(--border-color, #3a3a3a);border-radius:6px;color:var(--text-primary, #e0e0e0);cursor:pointer;transition:background-color .2s,border-color .2s;min-height:80px}.print-format-card:hover:not(:disabled){background-color:var(--bg-hover, #333);border-color:var(--accent-color, #007bff)}.print-format-card:disabled{opacity:.5;cursor:not-allowed}.print-format-card-name{font-size:.9rem;font-weight:500;text-align:center}.print-format-card-price{font-size:.85rem;color:var(--accent-color, #007bff);font-weight:600}@media (max-width: 480px){.print-format-grid{grid-template-columns:1fr}.print-format-modal{width:95%}}.pv-footer{display:flex;justify-content:space-between;align-items:center;padding:0 16px;height:48px;background:var(--pv-surface);border-top:1px solid var(--pv-border);flex-shrink:0;z-index:10;transition:transform .35s cubic-bezier(.25,.1,.25,1),opacity .3s ease}.pv-footer.pv-auto-hidden{transform:translateY(100%);opacity:0;pointer-events:none}.pv-footer-left,.pv-footer-right{display:flex;gap:6px;align-items:center}.pv-btn{padding:6px 14px;height:32px;background:#ffffff14;color:var(--pv-text);border:none;border-radius:8px;cursor:pointer;font-size:13px;font-family:var(--font-sans);transition:background .15s,color .15s;white-space:nowrap;display:flex;align-items:center;gap:6px}.pv-btn:hover{background:#ffffff24}.pv-btn:disabled{opacity:.4;cursor:not-allowed}.pv-btn.active{background:var(--pv-accent);color:#fff}.pv-btn.active:hover{background:var(--accent-hover, #0e63e0)}.pv-btn.success{background:#16a34a33;color:#16a34a}.pv-btn.success:hover{background:#16a34a4d}.pv-btn.danger{background:#e5484d26;color:#e5484d}.pv-btn.danger:hover{background:#e5484d40}.pv-btn.small{padding:4px 10px;height:28px;font-size:12px}@media (max-width: 768px){.pv-footer{min-height:40px;height:auto;padding:4px 8px;flex-wrap:wrap;row-gap:4px}.pv-footer-left,.pv-footer-right{gap:3px;flex-wrap:wrap}.pv-btn{padding:4px 10px;height:28px;font-size:12px;gap:4px}.pv-footer .pv-btn{height:auto;min-height:40px;min-width:40px;justify-content:center}}@media (max-width: 480px){.pv-footer-right .pv-btn-label{display:none}}@media (max-width: 389.98px){.pv-footer{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.pv-footer::-webkit-scrollbar{display:none}}@media (min-width: 769px){.pv-footer .pv-btn .pv-btn-icon{display:none}}.pv-slideshow-progress{position:absolute;top:0;left:0;right:0;height:2px;background:#ffffff14;z-index:20}.pv-slideshow-progress-fill{height:100%;background:var(--pv-accent);will-change:width}.pv-slideshow-controls{position:absolute;bottom:100px;left:50%;transform:translate(-50%);z-index:15;display:flex;align-items:center;gap:8px;padding:6px 12px;background:#0009;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:12px;animation:pvFadeIn .2s ease}.pv-slideshow-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:8px;color:var(--pv-text);cursor:pointer;font-size:14px;transition:background .15s}.pv-slideshow-btn:hover{background:#ffffff2e}.pv-slideshow-intervals{display:flex;gap:2px}.pv-slideshow-interval{padding:4px 8px;background:transparent;border:none;border-radius:6px;color:var(--pv-text-muted);cursor:pointer;font-size:11px;font-family:var(--font-mono);transition:background .15s,color .15s}.pv-slideshow-interval:hover{background:#ffffff14;color:var(--pv-text)}.pv-slideshow-interval.active{background:var(--pv-accent);color:#fff}.pv-exif-overlay{position:absolute;bottom:56px;left:12px;z-index:8;padding:6px 12px;background:#00000080;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.06);border-radius:8px;color:#ffffffd9;pointer-events:none;transition:opacity .3s ease}.pv-exif-overlay.pv-auto-hidden{opacity:0}.pv-exif-camera{font-size:11px;font-weight:500;opacity:.65;margin-bottom:1px;font-family:var(--font-sans)}.pv-exif-settings{font-size:12px;font-family:var(--font-mono);letter-spacing:.3px}.pv-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10100;animation:pvFadeIn .15s ease}.pv-modal{background:#1c1c1e;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:20px;max-width:500px;width:90%;max-height:80vh;display:flex;flex-direction:column;color:var(--pv-text);box-shadow:0 24px 60px #00000080}.pv-modal.pv-modal-wide{max-width:700px}.pv-modal h3{margin:0 0 16px;font-size:16px;font-weight:600;color:#fff}.pv-modal-message{padding:24px;text-align:center;color:var(--pv-text-muted)}.pv-modal-empty{text-align:center;padding:24px;color:var(--pv-text-muted);font-size:13px}.pv-template-list{flex:1;overflow-y:auto;max-height:400px;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:16px}.pv-template-group{padding:8px 12px;background:#ffffff0a;font-size:11px;color:var(--pv-text-muted);text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0}.pv-template-item{padding:10px 12px;cursor:pointer;transition:background .15s;border-bottom:1px solid rgba(255,255,255,.04)}.pv-template-item:hover{background:#ffffff0d}.pv-template-item.selected{background:var(--pv-accent)}.pv-template-name{display:block;font-weight:500;font-size:14px;margin-bottom:2px}.pv-template-desc{display:block;font-size:12px;color:var(--pv-text-muted)}.pv-template-item.selected .pv-template-desc{color:#ffffffb3}.pv-modal-actions{display:flex;gap:8px;justify-content:flex-end}.pv-metadata-add{display:flex;gap:6px;margin-bottom:6px}.pv-input{flex:1;padding:8px 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--pv-text);font-size:13px;font-family:var(--font-sans);transition:border-color .15s}.pv-input:focus{outline:none;border-color:var(--pv-accent)}.pv-input::placeholder{color:var(--pv-text-muted)}.pv-metadata-hint{font-size:11px;color:var(--pv-text-muted);margin-bottom:12px}.pv-metadata-list{max-height:300px;overflow-y:auto;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:16px}.pv-metadata-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.04)}.pv-metadata-item:last-child{border-bottom:none}.pv-meta-key{flex-shrink:0;font-family:var(--font-mono);font-size:12px;color:var(--pv-text-muted);min-width:120px}.pv-meta-value{flex:1;font-size:13px;word-break:break-word}.pv-mobile-chrome{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(env(safe-area-inset-top,0px) + 6px) 8px 18px;background:linear-gradient(to bottom,#0000008c,#0000);transition:opacity .3s ease}.pv-mobile-chrome.pv-auto-hidden{opacity:0;pointer-events:none}.pv-mobile-chrome-btn{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;border:none;border-radius:50%;background:transparent;color:#ffffffeb;cursor:pointer}.pv-mobile-chrome-btn:active{background:#ffffff24}.pv-mobile-chrome-counter{color:#ffffffeb;font-size:14px;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.6)}.pv-overlay.pv-immersive{padding:0}.pv-overlay.pv-immersive .pv-image{max-height:100vh;max-height:100dvh}.pv-overlay.pv-immersive .pv-container{background:#000;border-radius:0}.pv-overlay.pv-immersive .pv-image.pv-image--fill{width:100%;height:100vh;height:100dvh;object-fit:contain}.pv-overlay.pv-immersive .pv-video-container,.pv-overlay.pv-immersive .pv-video-container .vc-container{height:100vh;height:100dvh}.pv-overlay.pv-immersive .pv-video-container video{max-height:100vh;max-height:100dvh;height:100%;object-fit:contain}.pv-transcript-panel{display:flex;flex-direction:column;height:100%;min-height:0;color:#e8e8e8;background:#1a1a1a;border-left:1px solid #2a2a2a}.pv-transcript-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #2a2a2a;flex:0 0 auto}.pv-transcript-header h3{margin:0;font-size:14px;font-weight:600;color:#f0f0f0}.pv-transcript-upgrade{background:#508cff26;color:#8cb6ff;border:1px solid rgba(80,140,255,.5);border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer;transition:background .12s ease}.pv-transcript-upgrade:hover:not(:disabled){background:#508cff4d}.pv-transcript-upgrade:disabled{opacity:.6;cursor:not-allowed}.pv-transcript-status,.pv-transcript-empty,.pv-transcript-error{display:flex;align-items:center;gap:8px;padding:24px 14px;font-size:13px;color:#9a9a9a;justify-content:center}.pv-transcript-error{color:#e07575}.pv-transcript-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.2);border-top-color:#8cb6ff;border-radius:50%;animation:pv-transcript-spin .8s linear infinite}@keyframes pv-transcript-spin{to{transform:rotate(360deg)}}.pv-transcript-segments{list-style:none;margin:0;padding:6px 0;overflow-y:auto;flex:1 1 auto;min-height:0}.pv-transcript-segments li{margin:0}.pv-transcript-segments li.active .pv-transcript-segment{background:#508cff2e}.pv-transcript-segment{width:100%;display:flex;gap:10px;align-items:flex-start;padding:8px 14px;background:transparent;border:none;text-align:left;color:inherit;cursor:pointer;font:inherit;transition:background 80ms ease}.pv-transcript-segment:hover{background:#ffffff0d}.pv-transcript-time{flex:0 0 auto;font-variant-numeric:tabular-nums;color:#7aa8ff;font-size:12px;line-height:1.5;min-width:44px}.pv-transcript-text{flex:1 1 auto;font-size:13px;line-height:1.5;color:#e8e8e8}.pv-transcript-host{flex:0 0 320px;width:320px;min-width:0;height:100%;min-height:0;display:flex;flex-direction:column}@media (max-width: 1100px){.pv-transcript-host{flex-basis:260px;width:260px}}.pv-overlay{--pv-bg: rgba(0, 0, 0, .96);--pv-surface: #141416;--pv-surface-elevated: #1c1c1e;--pv-text: rgba(255, 255, 255, .92);--pv-text-muted: rgba(255, 255, 255, .5);--pv-border: rgba(255, 255, 255, .06);--pv-accent: var(--accent, #1677ff);position:fixed;top:0;left:0;right:0;bottom:0;height:100vh;height:100dvh;background:var(--pv-bg);display:flex;align-items:center;justify-content:center;z-index:10000;padding:8px;color:var(--pv-text);font-family:var(--font-sans)}.pv-overlay.pv-fullscreen{padding:0}.pv-container{background:var(--pv-surface);border-radius:12px;max-width:100%;max-height:100%;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;position:relative;box-shadow:0 0 0 1px var(--pv-border),0 24px 80px #0009}.pv-overlay.pv-fullscreen .pv-container{border-radius:0;box-shadow:none}.pv-body{display:flex;flex:1;overflow:hidden;position:relative}.pv-image-wrapper-outer{flex:1;display:flex;flex-direction:column;position:relative;min-width:0}.pv-overlay.pv-layout-cinema{--pv-bg: #000;padding:0}.pv-overlay.pv-layout-cinema .pv-container{background:#000;border-radius:0;box-shadow:none}.pv-overlay.pv-layout-gallery{--pv-bg: #000;padding:0}.pv-overlay.pv-layout-gallery .pv-container{background:#000;border-radius:0;box-shadow:none}.pv-view-mode-badge{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:20;padding:4px 14px;background:#0000008c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:16px;color:#ffffffbf;font-size:11px;font-family:var(--font-sans);letter-spacing:.5px;text-transform:uppercase;pointer-events:none;transition:opacity .4s ease}.pv-view-mode-badge.pv-auto-hidden{opacity:0}.pv-overlay.pv-layout-cinema .pv-image,.pv-overlay.pv-layout-gallery .pv-image{max-height:100vh;max-height:100dvh}.pv-overlay.pv-layout-gallery .pv-image{max-height:calc(100vh - 76px);max-height:calc(100dvh - 76px)}.pv-overlay.pv-layout-cinema .pv-nav-counter,.pv-overlay.pv-layout-gallery .pv-nav-counter{position:absolute;top:12px;right:16px;z-index:15}@media (prefers-reduced-motion: reduce){.pv-overlay *,.pv-overlay *:before,.pv-overlay *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (max-width: 768px){.pv-overlay{padding:0}.pv-container{border-radius:0}.pv-body{flex-direction:column}.pv-overlay.pv-layout-cinema .pv-image{max-height:100vh;max-height:100dvh}.pv-overlay.pv-layout-gallery .pv-image{max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px)}}._panel_laa9j_2{position:relative;display:flex;flex-shrink:0;background:var(--panel-solid);transition:width .2s ease}._panel_laa9j_2._left_laa9j_10{border-right:1px solid var(--border)}._panel_laa9j_2._right_laa9j_14{border-left:1px solid var(--border)}._panel_laa9j_2._collapsed_laa9j_18{width:0!important;border:none;overflow:hidden}._toggleBtn_laa9j_25{position:absolute;top:50%;transform:translateY(-50%);width:20px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--panel-solid);border:1px solid var(--border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;cursor:pointer;z-index:10;font-size:10px;color:var(--muted);padding:0;transition:background .15s,color .15s}._toggleBtn_laa9j_25:hover{background:var(--bg);color:var(--text)}._toggle_left_laa9j_50{right:-20px}._toggle_right_laa9j_54{left:-20px;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}._collapsed_laa9j_18 ._toggle_left_laa9j_50{right:-20px;left:auto}._collapsed_laa9j_18 ._toggle_right_laa9j_54{left:-20px;right:auto}._panelInner_laa9j_70{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}._panelHeader_laa9j_78{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border);flex-shrink:0}._panelTitle_laa9j_86{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}._panelBody_laa9j_94{flex:1;overflow-y:auto;overflow-x:hidden}._resizeHandle_laa9j_101{position:absolute;top:0;width:6px;height:100%;cursor:col-resize;z-index:20;transition:background .15s}._resizeHandle_laa9j_101:hover,._resizeHandle_laa9j_101:active{background:var(--accent)}._resize_left_laa9j_116{right:0}._resize_right_laa9j_120{left:0}._right_laa9j_14 ._panelInner_laa9j_70{padding-left:6px}._container_9qdxi_2{display:flex;flex-direction:column;height:100%;overflow:hidden}._searchBox_9qdxi_10{position:relative;padding:var(--spacing-sm);flex-shrink:0}._searchInput_9qdxi_16{width:100%;height:32px;padding:0 var(--spacing-md) 0 var(--spacing-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:12px;outline:none;box-sizing:border-box;transition:border-color .15s}._searchInput_9qdxi_16:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}._searchInput_9qdxi_16::placeholder{color:var(--placeholder)}._searchClear_9qdxi_39{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;padding:0 4px;line-height:1}._searchClear_9qdxi_39:hover{color:var(--text)}._sourceTabs_9qdxi_58{display:flex;gap:2px;padding:0 var(--spacing-sm) var(--spacing-xs);flex-shrink:0}._sourceTab_9qdxi_58{flex:1;padding:5px 0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--muted);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}._sourceTab_9qdxi_58:hover{color:var(--text);background:var(--row-hover)}._sourceTabActive_9qdxi_83{background:var(--accent);color:#fff;border-color:var(--accent)}._sourceTabActive_9qdxi_83:hover{background:var(--accent);color:#fff}._sectionLabel_9qdxi_95{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;gap:4px}._controls_9qdxi_110{display:flex;align-items:center;gap:4px}._aspectBtn_9qdxi_117{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid var(--border);border-radius:3px;background:var(--field-bg);color:var(--muted);font-size:10px;cursor:pointer;transition:background .1s,border-color .1s}._aspectBtn_9qdxi_117:hover{background:var(--row-hover)}._aspectActive_9qdxi_137{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}._albumList_9qdxi_144{flex:0 1 auto;max-height:35%;overflow-y:auto;padding-bottom:var(--spacing-xs)}._albumItem_9qdxi_151{display:flex;align-items:center;gap:var(--spacing-xs);padding:6px var(--spacing-sm);cursor:pointer;font-size:13px;color:var(--text);transition:background .1s;-webkit-user-select:none;user-select:none}._albumItem_9qdxi_151:hover{background:var(--row-hover)}._albumActive_9qdxi_167{background:var(--accent-light);color:var(--accent);font-weight:500}._albumActive_9qdxi_167:hover{background:var(--accent-light)}._albumIcon_9qdxi_177{font-size:14px;flex-shrink:0;width:20px;text-align:center}._albumName_9qdxi_184{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._albumCount_9qdxi_191{font-size:11px;color:var(--muted);flex-shrink:0}._eventItem_9qdxi_198{display:flex;align-items:center;gap:var(--spacing-xs);padding:6px var(--spacing-sm);cursor:pointer;font-size:13px;color:var(--text);transition:background .1s;-webkit-user-select:none;user-select:none}._eventItem_9qdxi_198:hover{background:var(--row-hover)}._eventActive_9qdxi_214,._eventActive_9qdxi_214:hover{background:var(--accent-light)}._eventInfo_9qdxi_222{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}._eventTitle_9qdxi_230{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}._eventActive_9qdxi_214 ._eventTitle_9qdxi_230{color:var(--accent);font-weight:600}._eventMeta_9qdxi_244{display:flex;gap:6px;font-size:11px;color:var(--muted)}._eventMeta_9qdxi_244 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._separator_9qdxi_258{height:1px;background:var(--border);margin:0;flex-shrink:0}._photoSection_9qdxi_266{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}._photoCount_9qdxi_274{font-size:10px;color:var(--placeholder);font-weight:400}._photoGrid_9qdxi_281{display:grid;grid-template-columns:repeat(auto-fill,var(--thumb-size, 100px));grid-auto-rows:var(--thumb-size, 100px);justify-content:space-between;gap:2px;padding:2px var(--spacing-sm);overflow-y:auto;flex:1;align-content:start}._photoGridOriginal_9qdxi_300{grid-template-columns:repeat(auto-fill,var(--thumb-size, 100px));grid-auto-rows:max-content;gap:4px}._photoItem_9qdxi_307{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;cursor:grab;border:2px solid transparent;transition:border-color .1s;background:var(--field-bg)}._photoItem_9qdxi_307:hover{border-color:var(--accent)}._photoItem_9qdxi_307:active{cursor:grabbing}._photoItemOriginal_9qdxi_326{aspect-ratio:auto;width:var(--thumb-size, 100px)}._photoItem_9qdxi_307 img{width:100%;height:100%;object-fit:cover;pointer-events:none;display:block}._photoItemOriginal_9qdxi_326 img{object-fit:contain;height:auto}._photoPlaceholder_9qdxi_345{width:100%;height:100%;background:var(--field-bg);animation:_pulse_9qdxi_1 1.5s ease-in-out infinite}@keyframes _pulse_9qdxi_1{0%,to{opacity:.4}50%{opacity:.7}}._thumbSizeSlider_9qdxi_358{width:50px;height:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none;cursor:pointer;flex-shrink:0}._thumbSizeSlider_9qdxi_358::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:10px;height:10px;border-radius:50%;background:var(--accent);cursor:pointer}._thumbSizeSlider_9qdxi_358::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}._sentinel_9qdxi_390{grid-column:1 / -1;min-height:32px;display:flex;align-items:center;justify-content:center}._loadingInline_9qdxi_398{font-size:11px;color:var(--muted);padding:8px}._loadingText_9qdxi_405,._emptyText_9qdxi_406{padding:var(--spacing-md);text-align:center;color:var(--muted);font-size:12px}._container_xr5mn_2{display:flex;flex-direction:column;height:100%;overflow:hidden}._layerList_xr5mn_10{flex:1;overflow-y:auto;min-height:0}._empty_xr5mn_16{padding:var(--spacing-lg);text-align:center;color:var(--muted);font-size:12px}._layerItem_xr5mn_24{display:flex;align-items:center;gap:4px;padding:4px var(--spacing-sm);cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s;min-height:36px;-webkit-user-select:none;user-select:none}._layerItem_xr5mn_24:hover{background:var(--row-hover)}._layerActive_xr5mn_40,._layerActive_xr5mn_40:hover{background:var(--accent-light)}._layerDragging_xr5mn_48{opacity:.5}._layerDropTarget_xr5mn_52{border-top:2px solid var(--accent)}._grip_xr5mn_57{font-size:10px;color:var(--placeholder);cursor:grab;flex-shrink:0;width:14px;text-align:center;line-height:1}._grip_xr5mn_57:active{cursor:grabbing}._iconBtn_xr5mn_72{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:4px;flex-shrink:0;transition:color .1s,background .1s}._iconBtn_xr5mn_72:hover{background:var(--row-hover);color:var(--text)}._iconOff_xr5mn_93{color:var(--placeholder);opacity:.5}._iconWarn_xr5mn_98{color:var(--warning)}._layerThumb_xr5mn_103{width:28px;height:28px;border-radius:4px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--field-bg);border:1px solid var(--border)}._layerThumb_xr5mn_103 img{width:100%;height:100%;object-fit:cover}._layerTypeIcon_xr5mn_122{font-size:14px;font-weight:700;color:var(--muted)}._layerName_xr5mn_129{flex:1;min-width:0;overflow:hidden}._nameText_xr5mn_135{display:block;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._nameInput_xr5mn_144{width:100%;height:22px;padding:0 4px;border:1px solid var(--accent);border-radius:3px;background:var(--panel-solid);color:var(--text);font-size:12px;outline:none;box-sizing:border-box}._opacitySection_xr5mn_158{padding:var(--spacing-xs) var(--spacing-sm);border-top:1px solid var(--border);flex-shrink:0}._opacityLabel_xr5mn_164{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}._opacityValue_xr5mn_175{font-weight:600;font-variant-numeric:tabular-nums}._opacitySlider_xr5mn_180{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none;cursor:pointer}._opacitySlider_xr5mn_180::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--panel-solid);box-shadow:var(--shadow-sm)}._opacitySlider_xr5mn_180::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--panel-solid);box-shadow:var(--shadow-sm)}._actions_xr5mn_214{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-top:1px solid var(--border);flex-shrink:0}._actionBtn_xr5mn_224{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border);background:var(--field-bg);color:var(--text);cursor:pointer;border-radius:var(--radius-sm);transition:background .1s,color .1s}._actionBtn_xr5mn_224:hover:not(:disabled){background:var(--row-hover)}._actionBtn_xr5mn_224:disabled{opacity:.35;cursor:not-allowed}._actionDanger_xr5mn_248:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}._container_k3y38_2{display:flex;flex-direction:column;overflow:hidden;border-top:1px solid var(--border);min-height:120px;max-height:50%}._header_k3y38_11{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);flex-shrink:0}._headerTitle_k3y38_19{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}._headerCount_k3y38_27{font-size:10px;color:var(--placeholder);font-variant-numeric:tabular-nums}._list_k3y38_34{flex:1;overflow-y:auto;min-height:0}._empty_k3y38_40{padding:var(--spacing-md);text-align:center;color:var(--muted);font-size:12px}._entry_k3y38_48{display:flex;align-items:center;gap:6px;padding:4px var(--spacing-sm);cursor:pointer;font-size:12px;color:var(--text);transition:background .1s;-webkit-user-select:none;user-select:none}._entry_k3y38_48:hover{background:var(--row-hover)}._entryCurrent_k3y38_64{background:var(--accent-light);font-weight:600}._entryCurrent_k3y38_64:hover{background:var(--accent-light)}._entryFuture_k3y38_73{opacity:.4}._entryDot_k3y38_77{font-size:8px;color:var(--accent);flex-shrink:0;width:12px;text-align:center}._entryLabel_k3y38_85{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._entryTime_k3y38_92{font-size:10px;color:var(--muted);flex-shrink:0;font-variant-numeric:tabular-nums}._container_iocnk_2{padding:var(--spacing-sm);border-top:1px solid var(--border);flex-shrink:0}._header_iocnk_8{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}._row_iocnk_17{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:6px}._label_iocnk_24{font-size:11px;color:var(--muted);width:40px;flex-shrink:0}._select_iocnk_31{flex:1;height:26px;padding:0 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:11px;outline:none;cursor:pointer;min-width:0}._select_iocnk_31:focus{border-color:var(--accent)}._numberInput_iocnk_49{width:56px;height:26px;padding:0 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:11px;font-variant-numeric:tabular-nums;outline:none;box-sizing:border-box}._numberInput_iocnk_49:focus{border-color:var(--accent)}._colorInput_iocnk_67{width:26px;height:26px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:none;cursor:pointer}._toggleGroup_iocnk_77{display:flex;gap:2px}._toggleBtn_iocnk_82{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);cursor:pointer;font-size:12px;transition:background .1s,border-color .1s}._toggleBtn_iocnk_82:hover{background:var(--row-hover)}._toggleActive_iocnk_102{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.chat-album-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--accent-light);text-decoration:none;color:inherit;transition:background var(--transition-fast)}.chat-album-card:hover{background:var(--row-hover)}.chat-album-card-icon{flex-shrink:0;color:var(--accent)}.chat-album-card-info{flex:1;min-width:0}.chat-album-card-name{font-weight:600;font-size:.875rem}.chat-album-card-desc{font-size:.8125rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-album-card-type{font-size:.75rem;color:var(--muted);margin-top:2px}.chat-story-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:#16a34a1a;text-decoration:none;color:inherit;transition:background var(--transition-fast)}.chat-story-card:hover{background:var(--row-hover)}.chat-story-card-icon{flex-shrink:0;color:var(--accent-2)}.chat-story-card-info{flex:1;min-width:0}.chat-story-card-title{font-weight:600;font-size:.875rem}.chat-story-card-desc{font-size:.8125rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-story-card-status{font-size:.75rem;color:var(--accent-2);margin-top:2px}.chat-confirm{border-radius:var(--radius-sm, 8px);padding:12px;font-size:.875rem}.chat-confirm-destructive{background:var(--color-error-bg, #fff5f5);border:1px solid var(--color-error-border, #fecaca)}.chat-confirm-warning{background:#fffbeb;border:1px solid #fde68a}.chat-confirm-header{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:8px}.chat-confirm-icon{font-size:1.1rem}.chat-confirm-details{margin-bottom:10px}.chat-confirm-merge{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.chat-confirm-person{font-size:.8125rem}.chat-confirm-meta{color:var(--muted, #888)}.chat-confirm-target{color:var(--accent, #2563eb);font-size:.75rem;font-weight:500}.chat-confirm-preview{font-size:.8125rem;margin-bottom:6px;display:flex;flex-direction:column;gap:2px}.chat-confirm-warning-text{font-size:.8125rem;color:var(--color-error-text, #b91c1c);font-style:italic}.chat-confirm-actions{display:flex;gap:8px}.chat-confirm-btn{padding:6px 16px;border-radius:var(--radius-sm, 6px);border:none;font-size:.8125rem;font-weight:500;cursor:pointer;min-height:32px;transition:opacity .15s}.chat-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.chat-confirm-btn-approve{background:var(--color-error-text, #dc2626);color:#fff}.chat-confirm-warning .chat-confirm-btn-approve{background:var(--accent, #2563eb)}.chat-confirm-btn-deny{background:var(--field-bg, #f3f4f6);color:var(--text, #333);border:1px solid var(--border, #e0e0e0)}.chat-confirm-decided{padding:6px 0;font-size:.8125rem;font-weight:500}.chat-confirm-decided-yes{color:var(--color-error-text, #dc2626)}.chat-confirm-warning .chat-confirm-decided-yes{color:var(--accent, #2563eb)}.chat-confirm-decided-no{color:var(--muted, #888)}.chat-message{display:flex;padding:4px 16px}.chat-message-user{justify-content:flex-end}.chat-message-assistant{justify-content:flex-start}.chat-bubble{max-width:80%;padding:10px 14px;border-radius:var(--radius-md);font-size:.9375rem;line-height:1.5;word-break:break-word}.chat-message-user .chat-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-message-assistant .chat-bubble{background:var(--field-bg);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-bubble-text{white-space:pre-wrap}.chat-md-p{margin:0 0 .25em}.chat-md-p:last-child{margin-bottom:0}.chat-md-list{margin:.25em 0;padding-left:1.25em}.chat-inline-code{background:var(--panel-solid, #f0f0f0);padding:1px 4px;border-radius:3px;font-size:.875em}.chat-tool-step{color:var(--muted, #888);font-size:.85em;line-height:1.6}.chat-cursor{animation:blink .8s infinite;font-weight:700}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.chat-tool-results{margin-top:10px;display:flex;flex-direction:column;gap:8px}.chat-tool-error{padding:8px 12px;background:var(--color-error-bg, #fff0f0);color:var(--color-error-text, #c00);border-radius:6px;font-size:.85rem;display:flex;align-items:center;gap:6px}.chat-tool-error-icon{width:18px;height:18px;border-radius:50%;background:var(--color-error-text, #c00);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.chat-tool-success{padding:8px 12px;background:#f0fff0;color:#28a745;border-radius:6px;font-size:.85rem}.chat-tool-info{padding:8px 12px;background:var(--field-bg, #f8f8f8);color:var(--muted, #888);border-radius:6px;font-size:.85rem}.chat-tool-stats{padding:8px 12px;background:var(--field-bg, #f8f8f8);border-radius:6px;font-size:.85rem;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.chat-event-list{display:flex;flex-direction:column;gap:6px}.chat-event-card{padding:8px 12px;background:var(--panel-solid, #f8f8f8);border:1px solid var(--border, #e0e0e0);border-radius:6px;cursor:pointer;transition:background var(--transition-fast, .15s)}.chat-event-card:hover{background:var(--row-hover, #f0f0f0)}.chat-event-name{font-weight:500;font-size:.9rem}.chat-event-meta{font-size:.8rem;color:var(--muted, #888);display:flex;gap:12px;margin-top:2px}.chat-persons-list{display:flex;flex-wrap:wrap;gap:8px}.chat-person-card{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--panel-solid, #f8f8f8);border:1px solid var(--border, #e0e0e0);border-radius:6px;cursor:pointer;transition:background var(--transition-fast, .15s)}.chat-person-card:hover{background:var(--row-hover, #f0f0f0)}.chat-person-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.chat-person-info{display:flex;flex-direction:column}.chat-person-name{font-weight:500;font-size:.85rem}.chat-person-count{font-size:.75rem;color:var(--muted, #888)}.chat-photo-detail{display:flex;gap:12px;padding:8px;background:var(--panel-solid, #f8f8f8);border:1px solid var(--border, #e0e0e0);border-radius:6px;cursor:pointer;transition:background var(--transition-fast, .15s)}.chat-photo-detail:hover{background:var(--row-hover, #f0f0f0)}.chat-photo-detail-img{width:120px;height:120px;object-fit:cover;border-radius:4px;flex-shrink:0}.chat-photo-detail-info{font-size:.85rem;display:flex;flex-direction:column;gap:2px}.chat-photo-detail-summary{margin-top:4px;font-style:italic;color:var(--muted, #888)}.chat-message-list{flex:1;overflow-y:auto;padding:16px 0;display:flex;flex-direction:column;gap:8px}.chat-bubble-loading{display:flex;align-items:center;gap:4px;padding:14px 18px;background:var(--field-bg);border:1px solid var(--border);border-radius:var(--radius-md);border-bottom-left-radius:4px}.chat-typing-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);animation:chatTyping 1.2s infinite ease-in-out}.chat-typing-dot:nth-child(2){animation-delay:.2s}.chat-typing-dot:nth-child(3){animation-delay:.4s}@keyframes chatTyping{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.chat-input{display:flex;align-items:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--panel-solid);position:relative}.chat-input-resize-handle{position:absolute;top:0;left:0;right:0;height:9px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;z-index:2;touch-action:none}.chat-input-resize-handle:before{content:"";width:32px;height:3px;border-radius:2px;background:var(--border-strong);opacity:0;transition:opacity var(--transition-fast)}.chat-input:hover .chat-input-resize-handle:before,.chat-input-resize-handle:hover:before{opacity:.7}.chat-input textarea{flex:1;min-height:84px;max-height:160px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-family:var(--font-sans);font-size:.9375rem;line-height:1.4;resize:none;outline:none;transition:border-color var(--transition-fast)}.chat-input textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.chat-input textarea::placeholder{color:var(--placeholder)}.chat-send-btn{display:flex;align-items:center;justify-content:center;width:var(--control-h);height:var(--control-h);border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast)}.chat-send-btn:hover:not(:disabled){background:var(--accent-hover)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-stop-btn{display:flex;align-items:center;justify-content:center;width:var(--control-h);height:var(--control-h);border:none;border-radius:var(--radius-sm);background:var(--danger, #e53e3e);color:#fff;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast)}.chat-stop-btn:hover{background:var(--danger-hover, #c53030)}.chat-mic-btn{display:flex;align-items:center;justify-content:center;width:var(--control-h);height:var(--control-h);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.chat-mic-btn:hover:not(:disabled){background:var(--row-hover);color:var(--text)}.chat-mic-btn:disabled{opacity:.4;cursor:not-allowed}.chat-mic-btn--active{background:var(--danger, #e53e3e);color:#fff;animation:chat-mic-pulse 1.5s ease-in-out infinite}.chat-mic-btn--active:hover:not(:disabled){background:var(--danger-hover, #c53030)}@keyframes chat-mic-pulse{0%,to{box-shadow:0 0 #e53e3e66}50%{box-shadow:0 0 0 8px #e53e3e00}}.chat-voice-error{position:absolute;bottom:calc(100% + 4px);right:16px;padding:6px 12px;background:var(--color-error-bg);color:var(--color-error-text);font-size:.75rem;border-radius:var(--radius-sm);white-space:nowrap;animation:chat-voice-error-fade 3s ease-in-out forwards;pointer-events:none;z-index:10}@keyframes chat-voice-error-fade{0%{opacity:0;transform:translateY(4px)}10%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0}}.chat-attach-wrap{position:relative;flex-shrink:0}.chat-attach-btn{display:flex;align-items:center;justify-content:center;width:var(--control-h, 44px);height:var(--control-h, 44px);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.chat-attach-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-light, rgba(74, 144, 217, .06))}.chat-attach-popover{position:absolute;bottom:calc(100% + 8px);left:0;min-width:220px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-solid, #fff);box-shadow:0 8px 24px #0000001f;z-index:10;padding:6px;animation:chatAttachIn .12s ease-out}@keyframes chatAttachIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chat-attach-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;border-radius:4px;background:none;color:var(--text);font-size:.8125rem;cursor:pointer;text-align:left;transition:background .15s}.chat-attach-option:hover{background:var(--field-bg, #f5f5f5)}.chat-attach-option--disabled{opacity:.5;cursor:default;font-size:.75rem}.chat-attach-option--disabled:hover{background:none}.chat-attach-option svg{color:var(--muted);flex-shrink:0}.chat-attach-hint{padding:6px 10px;font-size:.7rem;color:var(--muted);line-height:1.3;border-top:1px solid var(--border);margin-top:4px}.chat-context-bar{display:flex;flex-direction:column;border-top:1px solid var(--border);background:var(--field-bg);flex-shrink:0}.chat-context-bar-row{display:flex;align-items:center;justify-content:space-between;padding:4px 16px;min-height:28px;gap:12px}.chat-context-bar-left{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--muted);min-width:0}.chat-context-page{background:var(--accent-light);color:var(--accent);padding:1px 6px;border-radius:var(--radius-sm);font-weight:500;white-space:nowrap}.chat-context-msgs{white-space:nowrap}.chat-context-summarized{color:var(--accent);font-style:italic;cursor:help;white-space:nowrap}.chat-context-bar-right{flex-shrink:0;width:80px}.chat-context-progress{height:4px;border-radius:2px;background:var(--border);overflow:hidden}.chat-context-progress-fill{height:100%;border-radius:2px;background:var(--accent);transition:width .3s ease}.chat-context-progress--warn .chat-context-progress-fill{background:var(--color-warning, #e6a817)}.chat-context-progress--full .chat-context-progress-fill{background:var(--color-error-text, #d9534f)}.chat-context-chips{display:flex;align-items:center;gap:6px;padding:4px 16px 6px;overflow-x:auto;scrollbar-width:none}.chat-context-chips::-webkit-scrollbar{display:none}.chat-context-clear{border:none;background:none;color:var(--muted);font-size:.7rem;cursor:pointer;padding:2px 6px;white-space:nowrap;border-radius:var(--radius-sm);transition:color .15s,background .15s}.chat-context-clear:hover{color:var(--color-error-text, #d9534f);background:var(--color-error-bg, rgba(217, 83, 79, .08))}.ctx-chip{display:flex;align-items:center;gap:4px;padding:2px 6px 2px 4px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary, #fff);font-size:.7rem;color:var(--text);white-space:nowrap;max-width:180px;cursor:pointer;transition:border-color .15s}.ctx-chip:hover{border-color:var(--accent)}.ctx-chip-thumb{width:18px;height:18px;border-radius:3px;object-fit:cover;flex-shrink:0}.ctx-chip-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;color:var(--muted)}.ctx-chip-label{overflow:hidden;text-overflow:ellipsis}.ctx-chip-remove{border:none;background:none;color:var(--muted);font-size:14px;line-height:1;cursor:pointer;padding:0 1px;margin-left:2px;border-radius:3px;transition:color .15s,background .15s}.ctx-chip-remove:hover{color:var(--color-error-text, #d9534f);background:var(--color-error-bg, rgba(217, 83, 79, .1))}.ai-drawer{position:relative;width:0;min-width:0;overflow:hidden;display:flex;flex-direction:column;background:var(--panel-solid);border-left:1px solid transparent;box-shadow:none;flex-shrink:0;transition:width .3s cubic-bezier(.32,.72,0,1),min-width .3s cubic-bezier(.32,.72,0,1),border-color .3s ease,box-shadow .3s ease}.ai-drawer--open{width:380px;min-width:380px;border-left-color:var(--border);box-shadow:var(--shadow-lg)}.ai-drawer--resizing{transition:border-color .3s ease,box-shadow .3s ease}.ai-drawer-resize-handle{position:absolute;top:0;left:0;width:7px;height:100%;cursor:ew-resize;z-index:6;touch-action:none}.ai-drawer-resize-handle:before{content:"";position:absolute;top:0;left:0;width:2px;height:100%;background:var(--accent);opacity:0;transition:opacity var(--transition-fast)}.ai-drawer-resize-handle:hover:before,.ai-drawer--resizing .ai-drawer-resize-handle:before{opacity:.5}.ai-drawer--drag-over{outline:2px solid var(--accent, #4a90d9);outline-offset:-2px;background:var(--accent-light, rgba(74, 144, 217, .05))}.ai-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 14px 18px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));white-space:nowrap}.ai-drawer-header-title{display:flex;align-items:center;gap:10px}.ai-drawer-header-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent);animation:ai-dot-breathe 2.5s ease-in-out infinite}@keyframes ai-dot-breathe{0%,to{opacity:.6;box-shadow:0 0 4px var(--accent)}50%{opacity:1;box-shadow:0 0 10px var(--accent)}}.ai-drawer-header h3{font-size:.9375rem;font-weight:600;margin:0;letter-spacing:-.01em;color:var(--text)}.ai-drawer-header-actions{display:flex;align-items:center;gap:2px}.ai-drawer-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast),transform .12s ease}.ai-drawer-btn:hover{background:var(--row-hover);color:var(--text);transform:scale(1.06)}.ai-drawer-btn:active{transform:scale(.92)}.ai-drawer-btn--close:hover{background:var(--color-error-bg);color:var(--danger)}.ai-drawer-context-badge{display:flex;align-items:center;gap:8px;padding:7px 16px;background:var(--accent-light);border-bottom:1px solid var(--border);flex-shrink:0;overflow:hidden;white-space:nowrap;animation:ai-badge-slide-in .3s ease-out .15s both}@keyframes ai-badge-slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ai-drawer-context-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--accent);color:#fff;flex-shrink:0}.ai-drawer-context-icon svg{width:12px;height:12px}.ai-drawer-context-text{font-size:.75rem;font-weight:500;color:var(--text);opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.005em}.ai-drawer-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;scroll-behavior:smooth}.ai-drawer-body::-webkit-scrollbar{width:5px}.ai-drawer-body::-webkit-scrollbar-track{background:transparent}.ai-drawer-body::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.ai-drawer-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.25rem 1.5rem;text-align:center;animation:ai-welcome-in .4s ease-out .1s both}@keyframes ai-welcome-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ai-drawer-welcome-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;background:var(--accent-light);color:var(--accent);position:relative}.ai-drawer-welcome-icon:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:19px;border:1.5px dashed var(--accent);opacity:.2;animation:ai-icon-spin 20s linear infinite}@keyframes ai-icon-spin{to{transform:rotate(360deg)}}.ai-drawer-welcome-text{color:var(--muted);font-size:.875rem;margin:0 0 1.25rem;line-height:1.5;max-width:280px}.ai-drawer-examples{display:flex;flex-direction:column;gap:6px;width:100%}.ai-drawer-example-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:.8125rem;text-align:left;cursor:pointer;line-height:1.4;letter-spacing:-.005em;transition:background var(--transition-fast),border-color var(--transition-fast),transform .15s ease,box-shadow .15s ease;opacity:0;animation:ai-example-in .35s ease-out forwards}@keyframes ai-example-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ai-drawer-example-btn:hover{background:var(--accent-light);border-color:var(--accent);transform:translate(3px);box-shadow:0 2px 8px #1677ff14}.ai-drawer-example-btn:active{transform:translate(1px) scale(.98)}.ai-drawer-example-arrow{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--accent-light);color:var(--accent);flex-shrink:0;transition:background var(--transition-fast),transform .15s ease}.ai-drawer-example-btn:hover .ai-drawer-example-arrow{background:var(--accent);color:#fff;transform:translate(2px)}.ai-drawer-error{padding:8px 16px;background:var(--color-error-bg);color:var(--color-error-text);font-size:.8125rem;text-align:center;flex-shrink:0;border-top:1px solid var(--color-error-border)}.ai-drawer-input-wrap{flex-shrink:0;border-top:1px solid var(--border);background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur))}.ai-drawer-overlay{display:none}@media (max-width: 768px){.ai-drawer-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000002e;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1001;animation:ai-overlay-in .25s ease-out}@keyframes ai-overlay-in{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.ai-drawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;z-index:1002;width:0;min-width:0;transform:translate(100%);transition:transform .35s cubic-bezier(.32,.72,0,1)}.ai-drawer--open{width:100vw;min-width:100vw;transform:translate(0)}}[data-theme=dark] .ai-drawer--open{box-shadow:-4px 0 32px #00000080,-1px 0 #ffffff0f}[data-theme=dark] .ai-drawer-overlay{background:#0006}[data-theme=dark] .ai-drawer-example-btn:hover{box-shadow:0 2px 8px #1677ff1f}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .ai-drawer--open{box-shadow:-4px 0 32px #00000080,-1px 0 #ffffff0f}:root:not([data-theme=light]) .ai-drawer-overlay{background:#0006}}.guest-register-cta{margin:1rem 0;padding:1rem 1.25rem;border:1px solid var(--accent, #1677ff);border-radius:var(--radius-md, 12px);background:color-mix(in srgb,var(--accent, #1677ff) 6%,transparent);text-align:center}.guest-register-cta-title{margin:0 0 .25rem;font-weight:600;color:var(--text, rgba(0, 0, 0, .92))}.guest-register-cta-text{margin:0 0 .75rem;font-size:.875rem;color:var(--text-2, rgba(0, 0, 0, .6))}.guest-register-cta-btn{display:inline-block;padding:.55rem 1.25rem;border-radius:var(--radius-md, 10px);background:var(--accent, #1677ff);color:#fff;font-size:.9rem;font-weight:600;text-decoration:none;transition:opacity .15s}.guest-register-cta-btn:hover{opacity:.9}.guest-upload-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;background:var(--color-bg-secondary, #f5f5f7);padding:var(--spacing-xl) var(--spacing-md)}.guest-upload-loading{min-height:100vh;display:flex;align-items:center;justify-content:center}.guest-upload-container{max-width:640px;width:100%;background:var(--color-bg-primary, #fff);border-radius:var(--radius-lg, 16px);padding:var(--spacing-xl);box-shadow:var(--shadow-md, 0 4px 16px rgba(0,0,0,.08))}.guest-upload-title{font-size:1.75rem;font-weight:700;color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.guest-upload-description{color:var(--color-text-secondary);font-size:1rem;line-height:1.5;margin:0 0 var(--spacing-lg) 0}.guest-upload-error{background:var(--color-danger-bg, #fff2f0);color:var(--color-danger, #e5484d);padding:var(--spacing-md);border-radius:var(--radius-sm, 8px);margin-bottom:var(--spacing-md);font-weight:500}.guest-upload-section{margin-bottom:var(--spacing-lg)}.guest-upload-label{display:block;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.guest-upload-password-row,.guest-upload-name-row{display:flex;gap:var(--spacing-sm)}.guest-upload-password-row .control,.guest-upload-name-row .control{flex:1;min-height:var(--control-h, 44px)}.guest-upload-field-error{color:var(--color-danger, #e5484d);font-size:.875rem;margin-top:var(--spacing-xs)}.guest-upload-uploader-badge{display:inline-block;background:var(--color-primary-light, #e8f0fe);color:var(--color-primary, #1677ff);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full, 100px);font-weight:600;font-size:.875rem;margin-bottom:var(--spacing-md)}.guest-upload-dropzone{border:2px dashed var(--color-border, #d1d1d6);border-radius:var(--radius-md, 12px);padding:var(--spacing-xl) var(--spacing-md);text-align:center;cursor:pointer;transition:all var(--transition-normal, .16s) ease;margin-bottom:var(--spacing-md)}.guest-upload-dropzone:hover,.guest-upload-dropzone.active{border-color:var(--color-primary, #1677ff);background:var(--color-primary-light, #e8f0fe)}.guest-upload-dropzone-icon{font-size:2.5rem;color:var(--color-text-muted, #8e8e93);line-height:1;margin-bottom:var(--spacing-sm)}.guest-upload-dropzone.active .guest-upload-dropzone-icon{color:var(--color-primary, #1677ff)}.guest-upload-dropzone-text{color:var(--color-text-primary);font-weight:500;margin:0 0 var(--spacing-xs) 0}.guest-upload-dropzone-hint{color:var(--color-text-muted, #8e8e93);font-size:.8125rem;margin:0}.guest-upload-stats{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap}.guest-upload-stat{font-size:.875rem;font-weight:600}.guest-upload-stat.success{color:var(--color-success, #16a34a)}.guest-upload-stat.error{color:var(--color-danger, #e5484d)}.guest-upload-stat.limit{color:var(--color-text-secondary)}.guest-upload-file-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.guest-upload-file-item{background:var(--color-bg-secondary, #f5f5f7);border-radius:var(--radius-sm, 8px);padding:var(--spacing-sm) var(--spacing-md)}.guest-upload-file-item.uploaded{background:var(--color-success-bg, #f0faf4)}.guest-upload-file-item.error{background:var(--color-danger-bg, #fff2f0)}.guest-upload-file-info{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm)}.guest-upload-file-name{font-size:.875rem;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.guest-upload-file-size{font-size:.75rem;color:var(--color-text-muted, #8e8e93);flex-shrink:0}.guest-upload-file-status{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}.guest-upload-status-badge{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:4px}.guest-upload-status-badge.pending{color:var(--color-text-muted)}.guest-upload-status-badge.uploading{color:var(--color-primary, #1677ff)}.guest-upload-status-badge.uploaded{color:var(--color-success, #16a34a)}.guest-upload-status-badge.error{color:var(--color-danger, #e5484d)}.guest-upload-file-remove{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:1.25rem;padding:0 4px;line-height:1}.guest-upload-file-remove:hover{color:var(--color-danger, #e5484d)}.guest-upload-progress{height:3px;background:var(--color-border, #d1d1d6);border-radius:2px;margin-top:var(--spacing-xs);overflow:hidden}.guest-upload-progress-bar{height:100%;background:var(--color-primary, #1677ff);border-radius:2px;transition:width .15s linear}.guest-upload-file-error{font-size:.75rem;color:var(--color-danger, #e5484d);margin-top:var(--spacing-xs)}.guest-upload-footer{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border, #d1d1d6);text-align:center}.guest-upload-register{font-size:.9375rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.guest-upload-register a{color:var(--color-primary, #1677ff);text-decoration:none;font-weight:600}.guest-upload-register a:hover{text-decoration:underline}.guest-upload-copyright{font-size:.75rem;color:var(--color-text-muted, #8e8e93)}@media (max-width: 480px){.guest-upload-page{padding:var(--spacing-sm)}.guest-upload-container{padding:var(--spacing-lg);border-radius:var(--radius-md, 12px)}.guest-upload-title{font-size:1.375rem}.guest-upload-password-row,.guest-upload-name-row{flex-direction:column}}.cpp-wrapper{width:100%;max-width:min(600px,100%);margin:0 auto}.cpp-canvas{position:relative;width:100%;overflow:hidden;border-radius:var(--radius-sm, 6px);box-shadow:0 2px 12px #00000014}.cpp-error{padding:20px;text-align:center;color:var(--muted, #999);font-size:14px}.cs-slot{overflow:hidden}.cs-slot--photo{background:var(--bg-subtle, #f5f5f5)}.cs-slot--empty{border:2px dashed var(--border, #ddd);transition:border-color .15s,background .15s}.cs-slot--empty:hover{border-color:var(--accent, #4a90d9);background:var(--bg-hover, #f0f4ff)}.cs-slot--filled{border:none}.cs-slot-img{width:100%;height:100%;object-fit:cover;display:block}.cs-slot-img img{width:100%;height:100%;object-fit:cover}.cs-slot-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--muted, #aaa);font-size:12px;gap:4px;-webkit-user-select:none;user-select:none}.cs-slot-placeholder svg{opacity:.4}.cs-slot-actions{position:absolute;top:4px;right:4px;display:flex;gap:2px;opacity:0;transition:opacity .15s}.cs-slot--filled:hover .cs-slot-actions{opacity:1}.cs-slot-btn{width:24px;height:24px;border:none;border-radius:4px;background:#0000008c;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.cs-slot-btn:hover{background:#000000bf}.cs-slot-btn--danger:hover{background:var(--danger, #e53e3e)}.cs-slot--text{display:flex;align-items:center}.cs-slot-text-input{width:100%;height:100%;border:none;background:transparent;resize:none;padding:4px;font-size:12px;color:var(--text, #333);outline:none;overflow:hidden;line-height:1.3}.cs-slot-text-input::placeholder{color:var(--muted, #bbb);font-style:italic}.cs-slot-text-input:focus{background:#ffffff80;outline:1px solid var(--accent, #4a90d9);border-radius:2px}.cs-slot-text-view{width:100%;height:100%;display:flex;align-items:center;padding:4px;overflow:hidden;line-height:1.3;word-break:break-word}.cs-slot-photo-wrapper{width:100%;height:100%}.cs-slot--pannable{cursor:grab}.cs-slot--panning{cursor:grabbing}.cs-slot--drag-over{outline:2px solid var(--accent, #4a90d9);outline-offset:-2px}.cs-slot-caption{position:absolute;bottom:0;left:0;right:0;padding:4px 8px;background:#00000080;color:#fff;font-size:11px;text-align:center;pointer-events:none;line-height:1.3}.cs-slot-caption-input{position:absolute;bottom:0;left:0;right:0;width:100%;border:none;border-top:1px solid var(--border, #ddd);padding:3px 6px;font-size:10px;background:#ffffffd9;color:var(--text, #333);outline:none}.cs-slot-caption-input:focus{background:#fff;border-top-color:var(--accent, #4a90d9)}.cs-slot-caption-input::placeholder{color:var(--muted, #bbb);font-style:italic}.cs-slot-btn--yellow{background:#e6be28d9;color:#fff}.cs-slot-btn--yellow:hover{background:#d4a017f2}.cs-slot-btn--resize{font-size:16px;font-weight:700}.cs-slot-caption-row{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;background:#ffffffd9;border-top:1px solid var(--border, #ddd)}.cs-slot-caption-row .cs-slot-caption-input{position:static;flex:1;border:none;border-top:none;background:transparent}.cs-slot-caption-row .voice-mic-btn{flex-shrink:0;margin-right:2px}.cs-slot-text-with-mic{display:flex;width:100%;height:100%;align-items:flex-start}.cs-slot-text-with-mic .cs-slot-text-input{flex:1}.cs-slot-text-with-mic .voice-mic-btn{flex-shrink:0;margin:4px 2px 0 0}.cpv-container{margin:16px 0;max-width:min(720px,100%);overflow-x:auto}.sv-text+.cpv-container,.se-content--preview .cpv-container{max-width:800px;margin:24px auto}.sbi-popover.sbi-popover--typo{width:auto;min-width:0;padding:6px}.sbi-popover--typo .sbi-typo{grid-auto-flow:column;align-items:center;gap:6px}.sbi-popover--typo .sbi-typo-chips{align-items:center;gap:3px}.sbi-popover--typo .sbi-typo-chip{flex:none;width:28px;height:26px;padding:0}.sbi-typo-size{display:inline-flex;align-items:center;gap:2px;margin-left:4px;padding-left:6px;border-left:1px solid var(--border-default, #e5e5e5)}.sbi-typo-step{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--border-default, #e5e5e5);border-radius:var(--radius-sm, 6px);background:var(--surface-card, #fff);color:var(--text-secondary, #555);cursor:pointer}.sbi-typo-step:hover:not(:disabled){border-color:var(--color-primary, #1677ff);color:var(--color-primary, #1677ff)}.sbi-typo-step:disabled{opacity:.4;cursor:default}.sbi-typo-size-val{min-width:38px;text-align:center;font-size:var(--text-xs, 12px);font-weight:600;color:var(--text-primary, #222);font-variant-numeric:tabular-nums}.tpm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh;z-index:1000;background:#0a0c10f5;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;flex-direction:column;animation:tpmFadeIn .2s ease-out}@keyframes tpmFadeIn{0%{opacity:0}to{opacity:1}}.tpm-header{display:flex;align-items:center;gap:20px;padding:12px 24px;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.06)}.tpm-title{margin:0;font-size:15px;font-weight:600;color:#ffffffd9;white-space:nowrap;letter-spacing:-.01em}.tpm-tabs{display:flex;gap:4px;flex:1;justify-content:center;flex-wrap:wrap}.tpm-tab{height:28px;padding:0 14px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);background:none;font-size:12px;font-weight:500;cursor:pointer;color:#ffffff73;transition:all .15s}.tpm-tab:hover{border-color:#ffffff47;color:#fffc}.tpm-tab--active{background:#ffffff1a;border-color:#fff3;color:#fff}.tpm-close{width:34px;height:34px;border:none;background:#ffffff0f;font-size:18px;line-height:1;cursor:pointer;color:#ffffff80;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-left:auto;flex-shrink:0}.tpm-close:hover{background:#ffffff1f;color:#fff}.tpm-grid{display:flex;flex-wrap:wrap;align-content:flex-start;gap:16px;padding:20px 24px 32px;overflow-y:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.tpm-grid::-webkit-scrollbar{width:6px}.tpm-grid::-webkit-scrollbar-track{background:transparent}.tpm-grid::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.tpm-grid::-webkit-scrollbar-thumb:hover{background:#ffffff38}@keyframes tpmCardIn{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.tpm-card{position:relative;width:calc(33.333% - 11px);border:2px solid transparent;border-radius:10px;background:#ffffff08;cursor:pointer;padding:0;transition:background .2s,border-color .2s,box-shadow .25s,transform .25s;text-align:left;overflow:hidden;animation:tpmCardIn .35s ease-out backwards;animation-delay:calc(var(--i) * 35ms)}.tpm-card:hover{background:#ffffff0f;border-color:#ffffff1a;transform:translateY(-4px);box-shadow:0 16px 48px #00000059}.tpm-card--active{border-color:var(--accent, var(--color-primary));box-shadow:0 0 0 2px #1677ff4d,0 8px 32px #1677ff1f}.tpm-card--active:hover{border-color:var(--accent, var(--color-primary))}.tpm-card-check{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:50%;background:var(--accent, var(--color-primary));color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 2px 10px #0000004d;z-index:2}.tpm-card-preview{padding:8px}.tpm-svg{width:100%;height:auto;display:block}.tpm-card-info{padding:6px 10px 8px;display:flex;align-items:center;gap:6px}.tpm-card-name{font-size:12px;font-weight:500;color:#ffffff8c;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tpm-card-badges{display:flex;gap:4px;flex-shrink:0}.tpm-badge{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;line-height:16px;letter-spacing:.2px}.tpm-badge--photo{background:#ffffff14;color:#ffffff80}.tpm-badge--text{background:#8278ff26;color:#aaa5ffcc}@media (max-width: 900px){.tpm-card{width:calc(50% - 8px)}.tpm-grid{gap:12px;padding:16px}}@media (max-width: 600px){.tpm-header{flex-wrap:wrap;padding:10px 16px;gap:10px}.tpm-tabs{order:3;width:100%;justify-content:flex-start;padding-top:4px}.tpm-card{width:calc(50% - 6px)}.tpm-grid{gap:10px;padding:12px}}@media (max-width: 440px){.tpm-card{width:100%}}.cpke-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:var(--bg, #fff);display:flex;flex-direction:column;animation:cpkeFadeIn .2s ease-out}@keyframes cpkeFadeIn{0%{opacity:0}to{opacity:1}}.cpke-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 12px;height:48px;background:var(--panel-solid, #fff);border-bottom:1px solid var(--border, #e0e0e0);flex-shrink:0;gap:8px}.cpke-toolbar-group{display:flex;align-items:center;gap:4px}.cpke-btn{height:32px;padding:0 8px;border:1px solid var(--border, #ddd);border-radius:4px;background:var(--bg, #fff);cursor:pointer;font-size:13px;color:var(--text, #333);display:flex;align-items:center;gap:4px;white-space:nowrap}.cpke-btn:hover:not(:disabled){background:var(--bg-hover, #f5f5f5)}.cpke-btn:disabled{opacity:.4;cursor:default}.cpke-btn--back{font-weight:500}.cpke-btn--primary{background:var(--accent, #4a90d9);border-color:var(--accent, #4a90d9);color:#fff;font-weight:600}.cpke-btn--primary:hover{background:var(--accent-hover, #3a7bc8)}.cpke-title{font-size:14px;font-weight:600;margin:0 8px;color:var(--text, #333)}.cpke-canvas-info{font-size:12px;color:var(--muted, #999);margin-left:4px}.cpke-divider{width:1px;height:20px;background:var(--border, #e0e0e0);margin:0 4px}.cpke-zoom{font-size:12px;color:var(--muted, #999);min-width:40px;text-align:center}.cpke-color-wrap{display:flex;align-items:center;cursor:pointer}.cpke-color-input{position:absolute;width:0;height:0;opacity:0}.cpke-color-swatch{width:24px;height:24px;border-radius:4px;border:1px solid var(--border, #ddd)}.cpke-work{flex:1;display:flex;overflow:hidden}.cpke-canvas-area{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle, #f0f0f0);position:relative}.cpke-canvas-area--drop{outline:3px dashed var(--accent, #4a90d9);outline-offset:-3px}.cpke-canvas-container{box-shadow:0 2px 20px #0000001f;flex-shrink:0}.cpke-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--muted, #999);z-index:1}.cpke-right-content{display:flex;flex-direction:column;height:100%;overflow-y:auto}.cpb-block{border:1px solid var(--border, #e0e0e0);border-radius:var(--radius-sm, 6px);background:var(--panel, #fff);overflow:hidden}.cpt-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-subtle, #f8f8f8);border-bottom:1px solid var(--border, #eee);flex-wrap:wrap}.cpt-formats{display:flex;gap:2px}.cpt-format-btn{width:32px;height:32px;border:1px solid var(--border, #ddd);border-radius:4px;background:var(--bg, #fff);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary, #666);transition:all .15s}.cpt-format-btn:hover{border-color:var(--accent, #4a90d9);color:var(--accent, #4a90d9)}.cpt-format-btn--active{background:var(--accent, #4a90d9);border-color:var(--accent, #4a90d9);color:#fff}.cpt-template-info{flex:1;display:flex;align-items:baseline;gap:6px;min-width:0}.cpt-template-name{font-size:13px;font-weight:500;color:var(--text, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpt-template-meta{font-size:12px;color:var(--muted, #999);white-space:nowrap}.cpt-actions{display:flex;gap:4px}.cpt-btn{height:32px;padding:0 10px;border:1px solid var(--border, #ddd);border-radius:4px;background:var(--bg, #fff);cursor:pointer;font-size:12px;color:var(--text, #333);display:flex;align-items:center;gap:4px;white-space:nowrap}.cpt-btn:hover{border-color:var(--accent, #4a90d9);color:var(--accent, #4a90d9)}.cpt-btn--accent{background:var(--accent, #4a90d9);border-color:var(--accent, #4a90d9);color:#fff}.cpt-btn--accent:hover{background:var(--accent-hover, #3a7bc8)}.cpb-konva-badge{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--info-bg, #e8f0fe);font-size:12px;color:var(--info-text, #1a56db)}.cpb-reset-btn{border:none;background:none;font-size:12px;color:var(--info-text, #1a56db);cursor:pointer;text-decoration:underline;padding:0}.cpb-reset-btn:hover{color:var(--danger, #e53e3e)}.cpt-page-controls{display:flex;align-items:center;gap:4px}.cpt-page-indicator{font-size:12px;font-weight:500;color:var(--text-secondary, #666);min-width:32px;text-align:center}.send-to-ai-btn{display:flex;align-items:center;justify-content:center;border:none;border-radius:4px;cursor:pointer;color:var(--muted, #999);transition:color .15s,background .15s;flex-shrink:0}.send-to-ai-btn:hover{color:var(--accent, #4a90d9);background:var(--accent-light, rgba(74, 144, 217, .1))}.send-to-ai-btn--sm{width:24px;height:24px;padding:0;background:#00000073;color:#ffffffb3}.send-to-ai-btn--sm:hover{background:var(--accent, #4a90d9);color:#fff}.send-to-ai-btn--md{width:28px;height:28px;padding:0;background:var(--field-bg, #f5f5f5)}.xb-cta{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:14px 26px;border-radius:var(--radius-md);font-weight:var(--weight-semibold);font-size:var(--text-md);text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,transform .15s ease,box-shadow .15s ease;line-height:1}.xb-cta:hover{transform:translateY(-1px)}@media (prefers-reduced-motion: reduce){.xb-cta,.xb-cta:hover{transform:none;transition:none}}.xb-cta--primary{background:var(--color-primary);color:var(--text-on-primary);box-shadow:0 8px 20px -8px #1677ff8c}.xb-cta--primary:hover{background:var(--color-primary-hover)}.xb-cta--secondary{background:var(--surface-card);color:var(--text-primary);border-color:var(--color-primary-border)}.xb-cta--secondary:hover{background:var(--surface-hover)}.xb-cta--ghost{background:transparent;color:var(--color-primary)}.xb-cta--ghost:hover{background:var(--color-primary-soft)}.xb-cta--disabled{opacity:.5;cursor:not-allowed}.xb-skel{background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--surface-hover) 37%,var(--surface-sunken) 63%);background-size:400% 100%;border-radius:var(--radius-sm);animation:xb-shimmer 1.4s ease infinite}@keyframes xb-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.xb-section{width:100%;box-sizing:border-box}.xb-section--full{padding-left:var(--content-gutter);padding-right:var(--content-gutter)}.xb-section-inner{margin:0 auto;width:100%;box-sizing:border-box}@media (max-width: 1140px){.xb-section:not(.xb-section--full) .xb-section-inner{padding-left:var(--content-gutter);padding-right:var(--content-gutter)}}.xb-hero{position:relative;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;padding:var(--space-12) var(--content-gutter);width:100%}.xb-hero--center{align-items:center;text-align:center}.xb-hero--left{align-items:flex-start;text-align:left}.xb-hero-heading{max-width:22ch;text-wrap:balance}.xb-hero-sub{margin-top:var(--space-4);max-width:46ch}.xb-hero-cta{margin-top:var(--space-6);display:flex;gap:var(--space-3);flex-wrap:wrap}.xb-hero--center .xb-hero-cta{justify-content:center}.xb-hero-eyebrow{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.16em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-4)}.xb-columns{display:grid;gap:var(--space-6)}.xb-columns--gap-s{gap:var(--space-4)}.xb-columns--2{grid-template-columns:repeat(2,1fr)}.xb-columns--3{grid-template-columns:repeat(3,1fr)}.xb-columns--4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1024px){.xb-columns--4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.xb-columns--2,.xb-columns--3,.xb-columns--4{grid-template-columns:1fr}}.xb-cta-row{display:flex;gap:var(--space-3);flex-wrap:wrap}.xb-cta-row--center{justify-content:center}.xb-cta-row--left{justify-content:flex-start}.xb-faq{display:flex;flex-direction:column}.xb-faq-item{border:0;border-bottom:1px solid var(--color-border, #e5e1d8);border-radius:0;overflow:hidden}.xb-faq-q{width:100%;text-align:left;background:transparent;border:0;padding:var(--space-5) 0;font-weight:var(--weight-semibold);font-size:var(--text-lg);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--text-primary)}.xb-faq-a{padding:0 0 var(--space-5);color:var(--text-secondary);line-height:var(--leading-loose);white-space:pre-line;max-width:60ch}.xb-quote{border-left:3px solid var(--color-primary);padding:var(--space-2) var(--space-6);margin:var(--space-4) 0}.xb-quote-text{font-family:var(--font-display-serif);font-size:var(--text-2xl);line-height:var(--leading-normal);color:var(--text-primary);font-style:italic}.xb-quote-attr{margin-top:var(--space-3);color:var(--text-secondary);font-size:var(--text-md)}.xb-product-card{border:1px solid var(--color-primary-border);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);background:var(--surface-card);max-width:420px}.xb-product-card--wide{max-width:100%;flex-direction:row;align-items:center}.xb-product-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--text-primary)}.xb-product-desc{color:var(--text-secondary);font-size:var(--text-md);line-height:var(--leading-normal)}.xb-product-price{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary)}.xb-unavailable{border:1px dashed var(--color-primary-border);border-radius:var(--radius-lg);padding:var(--space-6);color:var(--text-tertiary);font-size:var(--text-md);text-align:center}.xb-pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-5)}.xb-pricing-plan{border:1px solid var(--color-border, #e8e4db);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-7);display:flex;flex-direction:column;gap:var(--space-3);background:var(--surface-card);box-shadow:0 1px 2px #12161c0d,0 8px 24px -12px #12161c1f}.xb-pricing-plan--highlight{border:2px solid var(--color-primary);box-shadow:0 24px 48px -20px #1677ff59}.xb-pricing-name{font-family:var(--font-display-serif);font-weight:var(--weight-regular);font-size:var(--text-xl);color:var(--text-primary)}.xb-pricing-price{font-family:var(--font-display-serif);font-size:var(--text-display-2);font-weight:var(--weight-regular);color:var(--text-primary);line-height:1}@media (max-width: 768px){.xb-pricing{grid-template-columns:1fr}.xb-product-card--wide{flex-direction:column;align-items:stretch}}.xb-spacer{width:100%}.xb-edit{border:1px solid var(--color-primary-border);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--surface-card)}.xb-edit-head{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.xb-edit-title{font-weight:var(--weight-semibold);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.xb-edit-controls{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center;margin-bottom:var(--space-3)}.xb-edit-field{display:flex;flex-direction:column;gap:4px}.xb-edit-field>label,.xb-edit-lbl{font-size:var(--text-xs);color:var(--text-secondary)}.xb-edit-dropzone{border:2px dashed var(--color-primary-border);border-radius:var(--radius-md);padding:var(--space-4);min-height:60px;display:flex;flex-direction:column;gap:var(--space-2)}.xb-edit-dropzone--over{border-color:var(--color-primary);background:var(--color-primary-soft)}.xb-edit-cell{border:1px solid var(--color-primary-border);border-radius:var(--radius-md);padding:var(--space-3);min-height:80px}.xb-edit-cells{display:grid;gap:var(--space-3)}.xb-edit-childrow{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-primary-border);border-radius:var(--radius-sm);background:var(--surface-page);font-size:var(--text-sm)}.xb-edit-childrow-actions{display:flex;gap:var(--space-1)}.xb-edit-addchild{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}.xb-edit-faqitem{border:1px solid var(--color-primary-border);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.xb-edit-photobtn{display:flex;align-items:center;gap:var(--space-2)}.xb-edit-thumb{width:56px;height:40px;object-fit:cover;border-radius:var(--radius-xs)}.cta-editor{border:1px solid var(--color-primary-border);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.cta-editor-row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.cta-editor-lbl{font-size:var(--text-xs);color:var(--text-secondary)}.cta-editor-del{background:transparent;border:0;color:var(--danger, #d33);cursor:pointer;margin-left:auto}.cta-editor-warn{color:var(--danger, #d33);font-size:var(--text-xs);display:flex;align-items:center;gap:4px}.cta-editor-suggest,.xb-edit-suggest{align-self:flex-start;background:var(--surface-hover, #f0f4ff);border:1px dashed var(--primary, #1677ff);color:var(--primary, #1677ff);border-radius:4px;padding:1px 6px;font-size:var(--text-xs);cursor:pointer}.sgp-panel{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--surface-card);font-size:var(--text-sm)}.gp-header{flex:none;padding:12px;display:grid;gap:10px;border-bottom:1px solid var(--border-default)}.gp-search-clear{display:inline-flex;align-items:center;justify-content:center;padding:0;background:none;border:none;cursor:pointer;color:var(--text-tertiary);line-height:1}.gp-search-clear:hover{color:var(--text-primary)}.gp-source-row{display:flex;align-items:center;gap:6px}.gp-source-chip{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:26px;padding:0 10px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-pill);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.gp-source-chip:hover{background:var(--surface-hover);color:var(--text-primary)}.gp-source-chip.active{background:var(--color-primary-soft);border-color:var(--color-primary-border);color:var(--color-primary)}.gp-collapse-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast)}.gp-collapse-btn:hover{background:var(--surface-hover)}.sgp-album-list{flex-shrink:0;overflow-y:auto;padding:4px 0}.sgp-album-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:var(--text-sm);color:var(--text-primary);transition:background var(--duration-fast)}.sgp-album-item:hover{background:var(--surface-hover)}.sgp-album-item.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.sgp-album-icon{display:inline-flex;flex:none;color:var(--text-tertiary)}.sgp-album-item.active .sgp-album-icon{color:var(--color-primary)}.sgp-album-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sgp-album-count{flex:none;font-size:var(--text-xs);color:var(--text-tertiary)}.sgp-event-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:var(--text-sm);transition:background var(--duration-fast)}.sgp-event-item:hover{background:var(--surface-hover)}.sgp-event-item.active{background:var(--color-primary-soft)}.sgp-event-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.sgp-event-title{font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.sgp-event-item.active .sgp-event-title{color:var(--color-primary);font-weight:600}.sgp-event-meta{display:flex;gap:6px;font-size:var(--text-xs);color:var(--text-tertiary)}.sgp-event-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sgp-splitter{height:7px;background:var(--surface-sunken);border-top:1px solid var(--border-default);border-bottom:1px solid var(--border-default);cursor:row-resize;position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sgp-splitter:after{content:"";width:32px;height:3px;border-radius:var(--radius-pill);background:var(--text-tertiary);opacity:.4;transition:opacity var(--duration-fast)}.sgp-splitter:hover:after,.sgp-splitter:active:after{opacity:.8}.sgp-splitter:hover{background:var(--color-primary-soft)}.sgp-photo-section{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.sgp-select-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;flex:1;color:var(--text-tertiary);font-size:var(--text-sm)}.sgp-select-hint-icon{display:inline-flex;opacity:.5}.sgp-section-label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px 4px;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary)}.sgp-photo-count{font-weight:400;color:var(--text-tertiary)}.sgp-controls{display:flex;align-items:center;gap:4px}.sgp-control-btn{width:22px;height:22px;border:1px solid var(--border-default);border-radius:var(--radius-xs);background:var(--surface-card);color:var(--text-secondary);line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background var(--duration-fast),color var(--duration-fast)}.sgp-control-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.sgp-control-btn.active{background:var(--color-primary-soft);border-color:var(--color-primary-border);color:var(--color-primary)}.sgp-loading,.sgp-empty{padding:16px;text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.sgp-photo-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:max-content;align-content:start;gap:8px;padding:12px;overflow-y:auto;flex:1}.sgp-photo-item{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-xs);overflow:hidden;cursor:grab;background:var(--surface-sunken);transition:opacity var(--duration-fast)}.sgp-photo-item:active{cursor:grabbing}.sgp-photo-item:hover{opacity:.85}.sgp-photo-item img{width:100%;height:100%;object-fit:cover;display:block}.sgp-photo-item--original{aspect-ratio:auto;align-self:start;background:transparent}.sgp-photo-item--original img{height:auto;object-fit:contain;border-radius:var(--radius-xs);border:1px solid var(--border-default);background:var(--surface-card)}.sgp-photo-placeholder{width:100%;height:100%;animation:sgp-pulse 1.5s ease-in-out infinite;background:var(--surface-sunken)}.sgp-photo-item--original .sgp-photo-placeholder{height:90px;border-radius:var(--radius-xs)}@keyframes sgp-pulse{0%,to{opacity:.4}50%{opacity:.7}}.sgp-date-group-header{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;margin-top:4px;padding:6px 2px 4px;border-bottom:1px solid var(--border-default)}.sgp-date-group-title{font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.sgp-date-group-count{font-size:var(--text-xs);color:var(--text-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-pill);padding:0 7px}.sgp-sentinel{grid-column:1 / -1;min-height:32px;display:flex;align-items:center;justify-content:center}.sgp-loading-inline{font-size:var(--text-xs);color:var(--text-tertiary);padding:8px}.gp-video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.gp-play-icon{display:inline-flex;color:#fff;filter:drop-shadow(0 1px 3px rgba(16,24,40,.55))}.gp-duration{position:absolute;bottom:4px;right:4px;background:#101828b3;color:#fff;padding:0 5px;border-radius:var(--radius-xs);font-size:var(--text-xs);line-height:18px}.gp-speech-badge{position:absolute;bottom:4px;left:4px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:#101828b3;color:#fff;border-radius:var(--radius-xs)}.sgp-photo-crop-wrap{width:100%;height:100%;overflow:hidden;position:relative}.sgp-photo-crop-wrap img{display:block;pointer-events:none}.gp-drag-hint{flex:none;padding:8px 12px 10px;text-align:center;font-size:var(--text-xs);color:var(--text-tertiary)}.pub-view,.pub-index{--surface-sunken: #f6f4f0;--surface-inverse: #0c1322;--text-inverse: #b9c2d4;--font-display: var(--font-display-serif)}.pub-view{max-width:760px;margin:0 auto;padding:32px 20px 64px}.pub-view .st-display-1,.pub-view .st-display-2{font-weight:var(--weight-regular);letter-spacing:-.005em}.pub-view h1,.pub-view h2,.pub-view h3,.pub-index-title{font-family:var(--font-display-serif)!important;font-weight:var(--weight-regular);text-wrap:balance}.pub-view--landing .xb-section h2{font-size:var(--text-display-2)!important;line-height:1.12;color:var(--color-text, #14181f)}.pub-view .xb-hero--photo,.pub-view .xb-hero--photo .xb-hero-heading{color:#fff}.pub-view .xb-hero--photo .xb-hero-sub{color:#ffffffe6}.pub-view .xb-hero--photo .xb-cta--ghost{color:#fff;border-color:#ffffff8c}.pub-view .xb-hero--photo .xb-cta--ghost:hover{background:#ffffff1f}.pub-index--help .pub-card-date{display:none}.pub-view .xb-section--inverse h1,.pub-view .xb-section--inverse h2,.pub-view .xb-section--inverse h3{color:#fff!important}.pub-view--landing .xb-section--inverse h2{color:#fff}.pub-view--landing .xb-columns--4 .sv-figure{margin:0 0 4px}.pub-loading{display:flex;justify-content:center;padding:80px 0}.pub-header{margin-bottom:28px}.pub-title{font-size:clamp(34px,4vw,48px);line-height:1.1;margin:0 0 8px}.pub-date{color:var(--color-text-secondary, #777);font-size:var(--text-sm, 13px)}.pub-view--landing{max-width:none;padding:0}.pub-view--landing .pub-body{gap:0}.pub-view--landing .pub-section--extended{width:100%;max-width:none;margin-left:0;transform:none}.pub-view--landing .xb-hero--left{justify-content:flex-end;padding-bottom:clamp(48px,9vh,88px)}.pub-view--landing .xb-hero .xb-hero-eyebrow{color:#9cc2ff}.pub-view--landing .xb-columns--4>.xb-column-cell{background:var(--surface-card, #fff);border:1px solid var(--color-border, #e8e4db);border-radius:var(--radius-xl, 16px);padding:var(--space-7) var(--space-6);box-shadow:0 1px 2px #12161c0d,0 8px 24px -12px #12161c1f}.pub-view--landing .xb-columns--4 h3{margin:var(--space-3) 0 var(--space-2)}.pub-view--landing .xb-columns--4 img.sv-photo{border-radius:var(--radius-md, 10px)}@media (max-width: 768px){.pub-view--landing .xb-columns--4 img.sv-photo{max-height:150px;width:auto}}.pub-view--landing .xb-columns h3{font-size:var(--text-xl);line-height:1.3}.pub-breadcrumb{font-size:var(--text-sm, 13px);color:var(--color-text-secondary, #777);margin-bottom:16px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.pub-breadcrumb a{color:var(--color-text-secondary, #777);text-decoration:none}.pub-breadcrumb a:hover{color:var(--color-primary, #1677ff)}.pub-breadcrumb-sep{opacity:.5}.pub-lang-switcher{display:inline-flex;gap:2px;margin-top:10px}.pub-lang{background:none;border:1px solid var(--color-border, #e5e7eb);padding:3px 8px;font-size:var(--text-xs, 12px);border-radius:var(--radius-sm, 4px);cursor:pointer;color:var(--color-text-secondary, #777)}.pub-lang.active{color:var(--color-primary, #1677ff);border-color:var(--color-primary, #1677ff)}.pub-lang--unavailable{opacity:.45;border-style:dashed}.pub-lang-notice{display:flex;align-items:center;gap:12px;justify-content:space-between;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;border-radius:var(--radius-sm, 6px);padding:8px 12px;font-size:var(--text-sm, 13px);margin-bottom:16px}.pub-lang-notice-close{background:none;border:none;cursor:pointer;font-size:18px;line-height:1;color:inherit;padding:0 4px}.pub-body{display:flex;flex-direction:column;gap:20px}.pub-body img,.pub-body .sv-photo{max-width:100%}.pub-section--extended{width:100vw;max-width:100vw;margin-left:50%;transform:translate(-50vw)}.pub-section--extended>.xb-spacer,.pub-section--extended>.xb-quote,.pub-section--extended>.xb-faq,.pub-section--extended>.xb-cta-row,.pub-section--extended>.xb-product-card,.pub-section--extended>.xb-pricing{max-width:760px;margin-left:auto;margin-right:auto;padding-left:var(--content-gutter);padding-right:var(--content-gutter);box-sizing:border-box}.pub-preview-banner{position:sticky;top:0;z-index:190;background:#fef3c7;color:#92400e;text-align:center;padding:6px 12px;font-size:var(--text-sm, 13px);font-weight:600;border-bottom:1px solid #fde68a}.pub-index{padding:0 0 72px}.pub-index-head{background:var(--surface-sunken);padding:clamp(44px,6vw,76px) var(--content-gutter, 20px)}.pub-index-head-in{max-width:1080px;margin:0 auto}.pub-index-eyebrow{display:block;font-size:var(--text-xs, 12px);font-weight:var(--weight-semibold, 600);letter-spacing:.16em;text-transform:uppercase;color:var(--color-primary, #1677ff);margin-bottom:12px}.pub-index-title{font-size:clamp(32px,4vw,52px);line-height:1.1;margin:0}.pub-index-lede{max-width:58ch;margin:14px 0 0;font-size:var(--text-lg, 17px);color:var(--color-text-secondary, #666);line-height:1.6}.pub-index-body{max-width:1080px;margin:0 auto;padding:36px var(--content-gutter, 20px) 0}.pub-index-empty{color:var(--color-text-secondary, #777)}.pub-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.pub-cards--featured{grid-template-columns:1fr;margin-bottom:24px}.pub-card a{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--surface-card, #fff);border:1px solid var(--color-border, #e8e4db);border-radius:var(--radius-xl, 16px);text-decoration:none;color:inherit;box-shadow:0 1px 2px #12161c0d,0 8px 24px -12px #12161c1f;transition:transform .18s ease,box-shadow .18s ease}.pub-card a:hover{transform:translateY(-3px);box-shadow:0 2px 4px #12161c0d,0 20px 40px -18px #12161c2e}@media (prefers-reduced-motion: reduce){.pub-card a,.pub-card a:hover{transform:none;transition:none}}.pub-card-cover{display:block;height:170px;background-size:cover;background-position:center}.pub-card-body{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px}.pub-card-title{font-family:var(--font-display-serif);font-size:var(--text-xl, 19px);line-height:1.3;color:var(--color-text, #14181f)}.pub-card-desc{color:var(--color-text-secondary, #666);font-size:var(--text-sm, 13.5px);line-height:1.55}.pub-card-date{color:var(--color-text-muted, #8a93a1);font-size:var(--text-xs, 12.5px);margin-top:auto;padding-top:8px}.pub-card--featured a{flex-direction:row;background:var(--surface-inverse, #0c1322);border-color:transparent;color:var(--text-inverse, #b9c2d4)}.pub-card--featured .pub-card-cover{flex:1.2;height:auto;min-height:280px}.pub-card--featured .pub-card-body{flex:1;padding:36px;gap:10px}.pub-card--featured .pub-card-title{color:#fff;font-size:clamp(22px,2.4vw,30px)}.pub-card--featured .pub-card-desc{color:var(--text-inverse, #b9c2d4);font-size:var(--text-md, 15px)}.pub-card--featured .pub-card-date{color:#5f6b80}@media (max-width: 960px){.pub-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.pub-cards{grid-template-columns:1fr}.pub-card--featured a{flex-direction:column}.pub-card--featured .pub-card-cover{min-height:180px}}.pub-index-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.pub-index-item a{display:block;padding:16px;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);text-decoration:none;color:inherit}.pub-index-item a:hover{border-color:var(--color-primary, #1677ff)}.pub-index-item-title{display:block;font-weight:600;font-size:var(--text-lg, 18px)}.pub-index-item-desc{display:block;color:var(--color-text-secondary, #777);font-size:var(--text-sm, 13px);margin-top:4px}.pub-notfound,.pub-error{max-width:560px;margin:80px auto;text-align:center;padding:0 20px}.pub-notfound h1,.pub-error h1{margin-bottom:12px}.pub-notfound p,.pub-error p{color:var(--color-text-secondary, #777);margin-bottom:24px}.sv-media-placeholder{border:1px dashed var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);padding:24px;text-align:center;color:var(--color-text-secondary, #777)}.pub-admin{padding:24px}.pub-admin-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.pub-admin-head-actions{display:flex;gap:8px}.pub-admin-group{margin-bottom:28px}.pub-admin-group-title{font-size:var(--text-lg, 18px);margin:0 0 10px;text-transform:capitalize}.pub-admin-table,.pub-versions-table{width:100%;border-collapse:collapse;font-size:var(--text-sm, 13px)}.pub-admin-table th,.pub-admin-table td,.pub-versions-table th,.pub-versions-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--color-border, #eee);vertical-align:middle}.pub-admin-slug{font-family:var(--font-mono, monospace);color:var(--color-text-secondary, #777)}.pub-admin-actions,.pub-versions-actions{display:flex;gap:4px;flex-wrap:wrap}.pub-admin-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.pub-admin-filters .control{max-width:200px}.pub-filter-label{font-size:var(--text-sm, 13px);color:var(--color-text-muted, #6b7280);margin-right:4px}.pub-admin-pager{display:flex;align-items:center;gap:12px;margin-top:16px}.pub-coverage{display:inline-flex;gap:3px}.pub-dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:9px;text-transform:uppercase;font-weight:700;color:#fff}.pub-dot--published{background:#16a34a}.pub-dot--draft{background:#f59e0b}.pub-dot--review{background:#3b82f6}.pub-dot--missing{background:#d1d5db;color:#6b7280}.pub-dot--btn{border:none;cursor:pointer;padding:0;font-family:inherit}.pub-dot--btn:hover{filter:brightness(1.08);box-shadow:0 0 0 2px #00000014}.pub-dot--btn.pub-dot--missing:hover{background:#cbd5e1}.pub-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:var(--text-xs, 11px);background:var(--color-surface-alt, #f3f4f6);color:var(--color-text-secondary, #555);margin-right:4px}.pub-badge--published{background:#dcfce7;color:#166534}.pub-badge--draft{background:#fef3c7;color:#92400e}.pub-badge--archived{background:#e5e7eb;color:#4b5563}.pub-badge--review{background:#dbeafe;color:#1e40af}.pub-badge--dirty{background:none;color:#ea580c;font-size:14px;padding:0}.pub-wizard-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1200;padding:16px}.pub-wizard{background:var(--color-surface, #fff);border-radius:var(--radius-lg, 12px);padding:24px;width:100%;max-width:440px;box-shadow:var(--shadow-lg, 0 20px 60px rgba(0,0,0,.25))}.pub-wizard h3{margin:0 0 16px}.pub-wizard-step{display:flex;flex-direction:column;gap:10px}.pub-wizard-step label{font-size:var(--text-sm, 13px);color:var(--color-text-secondary, #666);margin-top:6px}.pub-wizard-choices{display:flex;gap:6px;flex-wrap:wrap}.pub-chip{padding:6px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:var(--radius-md, 8px);background:none;cursor:pointer;font-size:var(--text-sm, 13px)}.pub-chip.active{border-color:var(--color-primary, #1677ff);color:var(--color-primary, #1677ff)}.pub-wizard-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.pub-versions{border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);margin-bottom:16px;background:var(--color-surface, #fff)}.pub-versions-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border, #eee)}.pub-versions-header h3{margin:0;font-size:var(--text-md, 15px)}.pub-versions-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--color-text-secondary, #777)}.pub-versions-body{display:flex;gap:16px;padding:12px 16px}.pub-versions-list{flex:1;min-width:0;overflow-x:auto}.pub-versions-preview{flex:1;min-width:0;border-left:1px solid var(--color-border, #eee);padding-left:16px}.pub-versions-preview-head{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:12px}.pub-versions-preview-body{max-height:480px;overflow-y:auto}.pub-editor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--color-border, #eee);flex-wrap:wrap;gap:8px;background:var(--color-surface, #fff)}.pub-editor-meta{display:flex;align-items:center;gap:10px}.pub-editor-kind{font-weight:600;color:var(--color-primary, #1677ff)}.pub-editor-slug{color:var(--color-text-secondary, #777);font-size:var(--text-sm, 13px)}.pub-editor-actions{display:flex;gap:6px}.pub-editor-banner{background:#dbeafe;color:#1e40af;padding:8px 16px;font-size:var(--text-sm, 13px)}.pub-editor-banner--ai{background:#ede9fe;color:#5b21b6}.pub-editor-warnings{background:#fffbeb;color:#92400e;border-bottom:1px solid #fde68a;padding:8px 16px;font-size:var(--text-sm, 13px)}.pub-editor-warnings-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pub-editor-warnings ul{margin:6px 0 0;padding-left:18px}.pub-wizard-hint{color:var(--color-text-secondary, #777);font-size:var(--text-sm, 13px);margin:-4px 0 12px}.btn-sm{padding:3px 8px;font-size:var(--text-xs, 12px)}.help-drawer{width:0;min-width:0;overflow:hidden;display:flex;flex-direction:column;background:var(--panel-solid);border-left:1px solid transparent;box-shadow:none;flex-shrink:0;transition:width .3s cubic-bezier(.32,.72,0,1),min-width .3s cubic-bezier(.32,.72,0,1),border-color .3s ease,box-shadow .3s ease}.help-drawer--open{width:400px;min-width:400px;border-left-color:var(--border);box-shadow:var(--shadow-lg)}.help-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 14px 18px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));white-space:nowrap}.help-drawer-header-title{display:flex;align-items:center;gap:10px;min-width:0}.help-drawer-header-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--accent-light);color:var(--accent);flex-shrink:0}.help-drawer-header h3{font-size:.9375rem;font-weight:600;margin:0;letter-spacing:-.01em;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.help-drawer-header-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.help-drawer-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast),transform .12s ease}.help-drawer-btn:hover{background:var(--row-hover);color:var(--text);transform:scale(1.06)}.help-drawer-btn:active{transform:scale(.92)}.help-drawer-btn--close:hover{background:var(--color-error-bg);color:var(--danger)}.help-drawer-body{flex:1;overflow-y:auto;min-height:0;padding:4px 18px 24px;scroll-behavior:smooth}.help-drawer-body::-webkit-scrollbar{width:5px}.help-drawer-body::-webkit-scrollbar-track{background:transparent}.help-drawer-body::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.help-drawer-state{padding:2rem .5rem;text-align:center;color:var(--muted);font-size:.875rem}.help-drawer-article .pub-body{max-width:100%}.help-drawer-article .pub-body img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.help-drawer-article .pub-section{margin:0}.help-drawer-fulllink{display:inline-block;margin-top:18px;padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--accent);font-size:.8125rem;font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.help-drawer-fulllink:hover{background:var(--accent-light);border-color:var(--accent)}.help-launcher-btn{color:var(--muted)}.help-drawer-overlay{display:none}@media (max-width: 768px){.help-drawer-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000002e;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1001;animation:help-overlay-in .25s ease-out}@keyframes help-overlay-in{0%{opacity:0}to{opacity:1}}.help-drawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;z-index:1002;width:0;min-width:0;transform:translate(100%);transition:transform .35s cubic-bezier(.32,.72,0,1)}.help-drawer--open{width:100vw;min-width:100vw;transform:translate(0)}}[data-theme=dark] .help-drawer--open{box-shadow:-4px 0 32px #00000080,-1px 0 #ffffff0f}[data-theme=dark] .help-drawer-overlay{background:#0006}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .help-drawer--open{box-shadow:-4px 0 32px #00000080,-1px 0 #ffffff0f}:root:not([data-theme=light]) .help-drawer-overlay{background:#0006}}.onbj-drawer{width:0;min-width:0;overflow:hidden;display:flex;flex-direction:column;background:var(--panel-solid);border-left:1px solid transparent;box-shadow:none;flex-shrink:0;transition:width .3s cubic-bezier(.32,.72,0,1),min-width .3s cubic-bezier(.32,.72,0,1),border-color .3s ease,box-shadow .3s ease}.onbj-drawer--open{width:400px;min-width:400px;border-left-color:var(--border);box-shadow:var(--shadow-lg)}.onbj-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 14px 18px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));white-space:nowrap}.onbj-header-title{display:flex;align-items:center;gap:10px;min-width:0}.onbj-header-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--accent-light);color:var(--accent);flex-shrink:0}.onbj-header h3{font-size:.9375rem;font-weight:600;margin:0;letter-spacing:-.01em;color:var(--text)}.onbj-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:8px;background:transparent;color:var(--text-2);cursor:pointer;transition:background .15s,color .15s}.onbj-btn:hover{background:var(--surface-2);color:var(--text)}.onbj-body{flex:1;overflow-y:auto;padding:16px 18px 20px;display:flex;flex-direction:column}.onbj-progress{margin-bottom:14px}.onbj-progress-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:.8125rem;color:var(--text-2)}.onbj-progress-label strong{color:var(--accent);font-weight:700;white-space:nowrap}.onbj-progress-bar{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.onbj-progress-fill{height:100%;border-radius:3px;background:var(--accent);transition:width .4s cubic-bezier(.32,.72,0,1)}.onbj-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;flex:1}.onbj-step{border:1px solid var(--border);border-radius:12px;background:var(--surface-1, transparent);overflow:hidden;transition:border-color .2s}.onbj-step--open{border-color:var(--accent)}.onbj-step--done{opacity:.72}.onbj-step-head{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;cursor:pointer;text-align:left;color:var(--text)}.onbj-step-index{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);font-size:.75rem;font-weight:700;flex-shrink:0}.onbj-step--done .onbj-step-index{background:var(--accent);color:#fff}.onbj-step-title{flex:1;font-size:.875rem;font-weight:600;min-width:0}.onbj-step--done .onbj-step-title{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:var(--text-3)}.onbj-step-chevron{color:var(--text-3);display:flex;transition:transform .2s;flex-shrink:0}.onbj-step-chevron--open{transform:rotate(180deg)}.onbj-step-body{padding:2px 14px 14px;display:flex;flex-direction:column;align-items:center;text-align:center}.onbj-step-illustration{width:120px;height:120px;margin:2px 0 6px}.onbj-step-illustration svg{width:100%;height:100%}.onbj-step-text{font-size:.8125rem;line-height:1.5;color:var(--text-2);margin:0 0 12px}.onbj-step-actions{display:flex;flex-direction:column;gap:8px;width:100%;max-width:240px}.onbj-cta{height:38px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity .15s,transform .15s}.onbj-cta:hover{opacity:.9}.onbj-cta:active{transform:scale(.97)}.onbj-cta--alt{background:var(--surface-2);color:var(--text)}.onbj-cta--alt:hover{background:var(--surface-3);opacity:1}.onbj-step-hint{color:var(--text-3);font-size:.75rem}.onbj-more{height:34px;border-radius:10px;border:none;background:var(--surface-2);color:var(--text-2);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.onbj-more:hover{background:var(--surface-3);color:var(--text)}.onbj-hide{margin-top:14px;align-self:center;border:none;background:transparent;color:var(--text-3);font-size:.75rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.onbj-hide:hover{color:var(--text-2)}.onbj-finish{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 8px}.onbj-finish-illustration{width:160px;height:160px;margin-bottom:12px}.onbj-finish-illustration svg{width:100%;height:100%}.onbj-finish h4{font-size:1.0625rem;font-weight:700;color:var(--text);margin:0 0 8px}.onbj-finish p{font-size:.875rem;line-height:1.55;color:var(--text-2);margin:0 0 18px;max-width:300px}.onbj-finish .onbj-cta{width:100%;max-width:220px}.onboarding-sparkle{animation:onbj-sparkle-pulse 2s ease-in-out infinite}@keyframes onbj-sparkle-pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.onboarding-float{animation:onbj-float-up 2s ease-in-out infinite}@keyframes onbj-float-up{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (prefers-reduced-motion: reduce){.onboarding-sparkle,.onboarding-float{animation:none}}.onbj-drawer-overlay{display:none}@media (max-width: 768px){.onbj-drawer-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000002e;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1001;animation:onbj-overlay-in .25s ease-out}@keyframes onbj-overlay-in{0%{opacity:0}to{opacity:1}}.onbj-drawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;z-index:1002;width:0;min-width:0;transform:translate(100%);transition:transform .35s cubic-bezier(.32,.72,0,1)}.onbj-drawer--open{width:100vw;min-width:100vw;transform:translate(0)}}[data-theme=dark] .onbj-drawer--open{box-shadow:-4px 0 32px #00000080,-1px 0 #ffffff0f}[data-theme=dark] .onbj-drawer-overlay{background:#0006}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .onbj-drawer--open{box-shadow:-4px 0 32px #00000080,-1px 0 #ffffff0f}:root:not([data-theme=light]) .onbj-drawer-overlay{background:#0006}}.onbj-launcher-btn{color:var(--muted);display:inline-flex;align-items:center;gap:5px;width:auto;padding:0 8px}.onbj-launcher-count{font-size:.6875rem;font-weight:700;color:var(--accent);letter-spacing:.02em;line-height:1}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;display:flex;align-items:center;justify-content:center;background:#00000073;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:onboarding-fade-in .3s ease;outline:none}.onboarding-card{position:relative;width:calc(100% - 32px);max-width:480px;background:var(--panel);backdrop-filter:blur(var(--blur, 20px));-webkit-backdrop-filter:blur(var(--blur, 20px));border-radius:var(--radius-xl, 20px);box-shadow:var(--shadow-lg, 0 12px 40px rgba(0,0,0,.15));border:1px solid var(--border, rgba(0,0,0,.08));padding:40px 36px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow:hidden}.onboarding-skip{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:none;background:var(--surface-2, rgba(0,0,0,.05));color:var(--text-3, rgba(0,0,0,.4));cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.onboarding-skip:hover{background:var(--surface-3, rgba(0,0,0,.1));color:var(--text-2, rgba(0,0,0,.6))}.onboarding-illustration-wrap{width:160px;height:160px;margin-bottom:24px;flex-shrink:0}.onboarding-illustration{width:100%;height:100%}.onboarding-content{margin-bottom:28px}.onboarding-title{font-size:22px;font-weight:700;color:var(--text, rgba(0,0,0,.92));margin:0 0 10px;letter-spacing:-.02em;line-height:1.25}.onboarding-description{font-size:15px;line-height:1.55;color:var(--text-2, rgba(0,0,0,.6));margin:0;max-width:360px}.onboarding-actions{display:flex;flex-direction:column;gap:10px;width:100%;max-width:280px}.onboarding-btn{height:var(--control-h, 44px);border-radius:var(--radius-md, 12px);border:none;font-size:15px;font-weight:600;cursor:pointer;transition:transform .15s,opacity .15s,background .2s;width:100%}.onboarding-btn:active{transform:scale(.97)}.onboarding-btn-primary{background:var(--accent, #1677ff);color:#fff}.onboarding-btn-primary:hover{opacity:.9}.onboarding-btn-secondary{background:var(--surface-2, rgba(0,0,0,.05));color:var(--text, rgba(0,0,0,.92))}.onboarding-btn-secondary:hover{background:var(--surface-3, rgba(0,0,0,.1))}.onboarding-gphotos-link{border:none;background:transparent;color:var(--text-2, rgba(0,0,0,.6));font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:4px 0 0}.onboarding-gphotos-link:hover{color:var(--accent, #1677ff)}@keyframes onboarding-fade-in{0%{opacity:0}to{opacity:1}}.onboarding-enter{animation:onboarding-slide-in .3s ease}@keyframes onboarding-slide-in{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.onboarding-overlay,.onboarding-enter{animation:none}}@media (max-width: 520px){.onboarding-card{padding:32px 24px 24px;max-width:none;width:calc(100% - 24px);border-radius:var(--radius-lg, 16px)}.onboarding-illustration-wrap{width:130px;height:130px;margin-bottom:20px}.onboarding-title{font-size:20px}.onboarding-description{font-size:14px}.onboarding-actions{max-width:none}}.gsearch{position:relative;display:flex;align-items:center}.gsearch-form{display:flex;align-items:center;gap:6px;background:var(--bg-secondary, rgba(128, 128, 128, .12));border:1px solid var(--border-color, rgba(128, 128, 128, .25));border-radius:8px;padding:4px 10px;min-width:240px}.gsearch-icon{display:inline-flex;opacity:.6;flex-shrink:0}.gsearch-input{border:none;outline:none;background:transparent;color:inherit;font-size:.85rem;width:100%;min-width:120px}.gsearch-input::-webkit-search-cancel-button{cursor:pointer}.gsearch-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:380px;max-width:calc(100vw - 24px);max-height:70vh;overflow-y:auto;background:var(--bg-primary, #fff);color:var(--text-primary, inherit);border:1px solid var(--border-color, rgba(128, 128, 128, .25));border-radius:12px;box-shadow:0 12px 40px #0003;padding:8px;z-index:1200;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px 16px;align-content:start}.gsearch-group{min-width:0}.gsearch-skeleton,.gsearch-empty,.gsearch-viewall,.gsearch-group--photos{grid-column:1 / -1}.service-bar-mobile-controls .gsearch,.service-bar-mobile-controls .gsearch-form,.service-bar-search-mobile .gsearch,.service-bar-search-mobile .gsearch-form{width:100%}.service-bar-mobile-controls .gsearch-dropdown,.service-bar-search-mobile .gsearch-dropdown{left:0;right:auto;width:100%}.gsearch-group{padding:2px 0 6px}.gsearch-group-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.55;padding:6px 8px 2px}.gsearch-hit{display:flex;align-items:center;gap:10px;width:100%;height:auto;min-height:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;color:inherit;text-align:left;padding:6px 8px;border-radius:8px;cursor:pointer;font:inherit}.gsearch-hit:hover{background:var(--bg-secondary, rgba(128, 128, 128, .12))}.gsearch-hit-thumb{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.gsearch-hit-img{width:100%;height:100%;object-fit:cover}.gsm{position:relative;width:100%;height:100%;flex-shrink:0}.gsm .gsm-cover{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:10px;box-shadow:inset 0 0 0 1px #ffffff24,inset 0 -12px 18px -12px #00000073}.gsm .gsm-coverfb{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;border-radius:10px;color:var(--tc);background:color-mix(in srgb,var(--tc) 13%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 22%,transparent)}.gsm-face .gsm-cover{border-radius:50%;box-shadow:0 0 0 2px color-mix(in srgb,var(--tc) 55%,transparent),inset 0 0 0 1px #fff3}.gsm-face .gsm-init{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:15px;font-weight:650;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--tc) 85%,#fff 6%),color-mix(in srgb,var(--tc) 70%,#000 12%));box-shadow:0 0 0 2px color-mix(in srgb,var(--tc) 45%,transparent)}.gsm-group .gsm-gc{position:absolute;width:27px;height:27px;border-radius:50%;box-shadow:0 0 0 2px var(--bg-primary, #fff);display:flex;align-items:center;justify-content:center;color:#fff}.gsm-group .gsm-gc1{left:0;top:0;background:color-mix(in srgb,var(--tc) 45%,#7c93b8)}.gsm-group .gsm-gc2{left:15px;top:6px;background:color-mix(in srgb,var(--tc) 62%,#000 6%)}.gsm-group .gsm-gc3{left:8px;top:15px;background:color-mix(in srgb,var(--tc) 82%,#000 4%);z-index:1}.gsm-stack .gsm-cover,.gsm-stack .gsm-coverfb{z-index:2}.gsm-stack:before,.gsm-stack:after{content:"";position:absolute;border-radius:10px;background:var(--bg-secondary, rgba(128,128,128,.12));box-shadow:inset 0 0 0 1px #0000000f}.gsm-stack:before{top:4px;right:-4px;bottom:-4px;left:4px;opacity:.55}.gsm-stack:after{top:2px;right:-2px;bottom:-2px;left:2px;opacity:.8;z-index:1}.gsm-fan .gsm-cover,.gsm-fan .gsm-coverfb{z-index:3;transform:rotate(-4deg)}.gsm-fan:before,.gsm-fan:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;background:color-mix(in srgb,var(--tc) 22%,var(--bg-secondary, #e9edf2));box-shadow:inset 0 0 0 1px #ffffff1f}.gsm-fan:before{transform:rotate(7deg);z-index:1;opacity:.7}.gsm-fan:after{transform:rotate(2deg);z-index:2;opacity:.85}.gsm-event .gsm-badge{position:absolute;left:3px;top:3px;z-index:3;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:6px;color:var(--tc);background:var(--bg-primary, #fff);box-shadow:0 1px 4px #0000004d}.gsm-story .gsm-ribbon{position:absolute;right:-1px;top:-1px;z-index:3;width:0;height:0;border-top:15px solid var(--tc);border-left:15px solid transparent;border-top-right-radius:10px}.gsm-book .gsm-cover,.gsm-book .gsm-coverfb{border-radius:3px 10px 10px 3px}.gsm-book .gsm-spine{position:absolute;left:0;top:0;bottom:0;width:7px;z-index:3;border-radius:3px 0 0 3px;background:linear-gradient(90deg,color-mix(in srgb,var(--tc) 90%,#000),color-mix(in srgb,var(--tc) 60%,#000));box-shadow:inset -2px 0 3px #00000059}.gsm-collage .gsm-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;border-radius:10px;pointer-events:none;background:linear-gradient(color-mix(in srgb,var(--tc) 55%,transparent),color-mix(in srgb,var(--tc) 55%,transparent)) center / 100% 2px no-repeat,linear-gradient(color-mix(in srgb,var(--tc) 55%,transparent),color-mix(in srgb,var(--tc) 55%,transparent)) center / 2px 100% no-repeat}.gsm-pin{border-radius:10px;background:color-mix(in srgb,var(--tc) 12%,var(--bg-secondary, #eef1f5));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 22%,transparent);background-image:radial-gradient(color-mix(in srgb,var(--tc) 40%,transparent) 1px,transparent 1.4px);background-size:9px 9px}.gsm-pin .gsm-glyph{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--tc)}.gsm-hash{display:flex;align-items:center;justify-content:center;border-radius:11px;font-size:21px;font-weight:800;color:var(--tc);background:color-mix(in srgb,var(--tc) 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 28%,transparent)}.gsm-folder .gsm-tab{position:absolute;left:3px;top:5px;width:18px;height:7px;border-radius:5px 5px 0 0;background:color-mix(in srgb,var(--tc) 68%,#000)}.gsm-folder .gsm-fbody{position:absolute;left:0;right:0;top:10px;bottom:1px;border-radius:6px;background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 82%,transparent),color-mix(in srgb,var(--tc) 58%,transparent));box-shadow:inset 0 1px #ffffff40}.gsearch-mark{background:color-mix(in srgb,var(--tc, var(--accent-color, #4a7dff)) 24%,transparent);color:inherit;border-radius:3px;padding:0 2px;font-weight:650}.gsearch,.gsearch-page{--bg-primary: var(--surface-card);--bg-secondary: var(--surface-sunken);--text-primary: var(--text);--border-color: var(--border);--accent-color: var(--accent)}.gsearch,.gsearch-page{--gs-default: #667085;--gs-person: #e11d63;--gs-person_group: #be185d;--gs-album: #1677ff;--gs-event: #e08600;--gs-place: #0d9488;--gs-tag: #7c3aed;--gs-story: #6366f1;--gs-book: #a2543a;--gs-folder: #64748b;--gs-collage: #db2777;--gs-collection: #0891b2;--gs-photo: #667085}[data-theme=dark] .gsearch,[data-theme=dark] .gsearch-page{--gs-default: #98a2b3;--gs-person: #f2568a;--gs-person_group: #e56aa0;--gs-album: #4a90ff;--gs-event: #f0a640;--gs-place: #2dd4bf;--gs-tag: #a78bfa;--gs-story: #8b8ff7;--gs-book: #cf8a6a;--gs-folder: #94a3b8;--gs-collage: #f472b6;--gs-collection: #22b8d8;--gs-photo: #98a2b3}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .gsearch,:root:not([data-theme=light]):not([data-theme=dark]) .gsearch-page{--gs-default: #98a2b3;--gs-person: #f2568a;--gs-person_group: #e56aa0;--gs-album: #4a90ff;--gs-event: #f0a640;--gs-place: #2dd4bf;--gs-tag: #a78bfa;--gs-story: #8b8ff7;--gs-book: #cf8a6a;--gs-folder: #94a3b8;--gs-collage: #f472b6;--gs-collection: #22b8d8;--gs-photo: #98a2b3}}.gsearch-hit-body{display:flex;flex-direction:column;min-width:0;flex:1}.gsearch-hit-title{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gsearch-hit-snippet{font-size:.75rem;opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gsearch-hit-sub{font-size:.72rem;opacity:.55;flex-shrink:0;white-space:nowrap}.gsearch-photo-strip{display:flex;gap:6px;padding:4px 8px 6px;overflow-x:auto}.gsearch-photo-thumb{border:none;background:none;padding:0;cursor:pointer;width:52px;height:52px;border-radius:8px;overflow:hidden;flex-shrink:0}.gsearch-photo-img{width:100%;height:100%;object-fit:cover;display:block}.gsearch-photo-ph{display:inline-block;width:52px;height:52px;border-radius:8px;background:var(--bg-secondary, rgba(128, 128, 128, .15));flex-shrink:0}.gsearch-photo-ph--loading,.gsearch-skeleton-row{animation:gsearch-pulse 1.2s ease-in-out infinite}.gsearch-skeleton{padding:6px 8px;display:flex;flex-direction:column;gap:8px}.gsearch-skeleton-row{height:34px;border-radius:8px;background:var(--bg-secondary, rgba(128, 128, 128, .15))}@keyframes gsearch-pulse{0%,to{opacity:.45}50%{opacity:1}}.gsearch-empty{padding:14px 10px;font-size:.85rem;opacity:.6;text-align:center}.gsearch-viewall{display:block;width:100%;border:none;background:none;color:var(--accent-color, #4a7dff);font:inherit;font-size:.82rem;text-align:center;padding:8px;cursor:pointer;border-top:1px solid var(--border-color, rgba(128, 128, 128, .18));margin-top:4px}.gsearch-page{max-width:900px;margin:0 auto;padding:24px 16px 48px}.gsearch-page-title{font-size:1.4rem;margin:0 0 14px}.gsearch-page-bar{display:flex;align-items:center;gap:8px;background:var(--bg-secondary, rgba(128, 128, 128, .1));border:1px solid var(--border-color, rgba(128, 128, 128, .25));border-radius:10px;padding:8px 14px;margin-bottom:20px}.gsearch-page-bar .gsearch-input{font-size:1rem}.gsearch-page-section{margin-bottom:22px}.gsearch-page-section-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.55;margin:0 0 6px}.gsearch-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.gsearch-page-tile{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:auto;min-height:0;border:none;background:var(--bg-secondary, rgba(128, 128, 128, .12));padding:0;cursor:pointer;aspect-ratio:1;border-radius:10px;overflow:hidden}.gsearch-page-tile img{width:100%;height:100%;object-fit:cover;display:block}.gsearch-page-empty{padding:40px 0;text-align:center;opacity:.65}:root{--blue-50: #eef5ff;--blue-100: #d9e8ff;--blue-200: #b3d1ff;--blue-300: #7fb0ff;--blue-400: #4a90ff;--blue-500: #1677ff;--blue-600: #0e63e0;--blue-700: #0a4fb8;--gray-0: #ffffff;--gray-25: #fcfcfd;--gray-50: #f6f7f9;--gray-100: #f1f3f5;--gray-200: #e4e7ec;--gray-300: #d0d5dd;--gray-400: #98a2b3;--gray-500: #667085;--gray-600: #475467;--gray-700: #344054;--gray-800: #1d2939;--gray-900: #101828;--dark-bg: #101214;--dark-panel: #17191d;--dark-border: #2a2e34;--dark-text: #e7e9ec;--dark-text-2: #9aa1ab;--green-500: #16a34a;--red-500: #e5484d;--amber-500: #f59e0b;--color-primary: var(--blue-500);--color-primary-hover: var(--blue-600);--color-primary-press: var(--blue-700);--color-primary-soft: var(--blue-50);--color-primary-border: var(--blue-200);--surface-page: var(--gray-50);--surface-card: var(--gray-0);--surface-sunken: var(--gray-100);--surface-hover: var(--gray-50);--surface-inverse: var(--dark-bg);--surface-inverse-card: var(--dark-panel);--border-default: var(--gray-200);--border-focus: var(--blue-500);--border-inverse: var(--dark-border);--text-primary: var(--gray-900);--text-secondary: var(--gray-500);--text-tertiary: var(--gray-400);--text-link: var(--blue-500);--text-on-primary:#ffffff;--text-inverse: var(--dark-text);--text-inverse-2: var(--dark-text-2);--status-success: var(--green-500);--status-danger: var(--red-500);--status-warning: var(--amber-500);--ai-accent: #7c5cff;--ai-accent-soft: #f1edff;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif: Georgia, "Times New Roman", Times, serif;--font-mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;--font-sans-hosted: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display-serif: Georgia, "Times New Roman", Times, serif;--font-display: var(--font-sans-hosted);--text-xs: 12px;--text-sm: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--text-3xl: 28px;--text-4xl: 34px;--text-display-1: clamp(40px, 6vw, 72px);--text-display-2: clamp(28px, 4vw, 44px);--text-lead: 20px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.25;--leading-normal: 1.45;--leading-loose: 1.65;--leading-display: 1.1;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--control-h-sm: 30px;--control-h-md: 36px;--control-h-lg: 42px;--control-h: var(--control-h-md);--panel-w-left: 300px;--panel-w-right: 320px;--content-w-story: 720px;--topbar-h: 56px;--page-max-width: 1240px;--content-gutter: clamp(14px, 2.2vw, 28px);--section-gap: clamp(18px, 2.6vw, 32px);--shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 4px 12px rgba(16, 24, 40, .1);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .16);--shadow-page: 0 2px 16px rgba(16, 24, 40, .1);--focus-ring: 0 0 0 3px rgba(22, 119, 255, .25);--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-page-flip: .6s;--overlay-scrim: rgba(16, 18, 20, .92);--overlay-soft: rgba(16, 24, 40, .45);--caption-scrim: linear-gradient(transparent, rgba(0, 0, 0, .55));--bg: var(--surface-page);--panel: var(--surface-card);--panel-solid: var(--surface-card);--text: var(--text-primary);--muted: var(--text-secondary);--placeholder: var(--text-tertiary);--border: var(--border-default);--border-strong: var(--gray-300);--focus: rgba(22, 119, 255, .25);--accent: var(--blue-500);--accent-hover: var(--blue-600);--accent-light: var(--blue-50);--accent-2: var(--green-500);--danger: var(--red-500);--warning: var(--amber-500);--field-bg: var(--gray-0);--field-hover: var(--gray-50);--field-disabled: var(--gray-100);--blur: 0px;--row-hover: var(--gray-50);--row-selected: var(--blue-50);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--map-marker-size: 36px;--map-marker-size-highlighted: 44px;--map-cluster-size-sm: 36px;--map-cluster-size-md: 42px;--map-cluster-size-lg: 50px;--map-popup-max-width: 280px;--map-timeline-height: 72px;--map-timeline-height-collapsed: 32px;--form-row-gap: 14px;--form-col-gap: 14px;--action-bar-height: 42px;--transition-fast: .12s ease;--transition-normal: .16s ease;--transition-slow: .3s ease;--color-bg-primary: var(--surface-card);--color-bg-secondary: var(--surface-page);--color-bg-tertiary: var(--surface-sunken);--color-bg-hover: var(--surface-hover);--color-text-primary: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-tertiary: var(--text-tertiary);--color-text-inverse: #ffffff;--color-border: var(--border-default);--color-border-light: var(--border-default);--color-border-dark: var(--gray-300);--color-primary-light: var(--blue-50);--color-success: var(--green-500);--color-success-bg: #e7f6ec;--color-success-border: #bbe7c9;--color-success-text: #157f3c;--color-error: var(--red-500);--color-error-bg: #fdebec;--color-error-border: #f8c8ca;--color-error-text: #c2383c;--color-warning: var(--amber-500);--color-warning-bg: #fdf3e1;--color-warning-border: #f6dcab;--color-warning-text: #9a6403;--color-info: var(--blue-400);--color-info-bg: var(--blue-50);--color-info-border: var(--blue-200);--color-info-text: var(--blue-700)}[data-theme=dark]{--color-primary: var(--blue-400);--color-primary-hover: var(--blue-300);--color-primary-press: var(--blue-500);--color-primary-soft: rgba(74, 144, 255, .14);--color-primary-border: rgba(74, 144, 255, .4);--surface-page: var(--dark-bg);--surface-card: var(--dark-panel);--surface-sunken: #1d2025;--surface-hover: #1f2228;--border-default: var(--dark-border);--text-primary: var(--dark-text);--text-secondary: var(--dark-text-2);--text-tertiary: #6b7280;--text-link: var(--blue-400);--ai-accent-soft: rgba(124, 92, 255, .16);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .6);--shadow-page: 0 2px 16px rgba(0, 0, 0, .5);--focus-ring: 0 0 0 3px rgba(74, 144, 255, .3);--focus: rgba(74, 144, 255, .3);--bg: var(--surface-page);--panel: var(--surface-card);--panel-solid: var(--surface-card);--text: var(--text-primary);--muted: var(--text-secondary);--placeholder: var(--text-tertiary);--border: var(--border-default);--border-strong: #3a3f47;--accent: var(--blue-400);--accent-hover: var(--blue-300);--accent-light: rgba(74, 144, 255, .14);--field-bg: #1c1f24;--field-hover: #22262c;--field-disabled: #16181d;--row-hover: rgba(255, 255, 255, .05);--row-selected: rgba(74, 144, 255, .16);--color-bg-primary: var(--surface-card);--color-bg-secondary: var(--surface-page);--color-bg-tertiary: var(--surface-sunken);--color-bg-hover: var(--surface-hover);--color-text-primary: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-tertiary: var(--text-tertiary);--color-text-inverse: #101214;--color-border: var(--border-default);--color-border-light: var(--border-default);--color-border-dark: #3a3f47;--color-primary-light: rgba(74, 144, 255, .14);--color-success-bg: rgba(22, 163, 74, .16);--color-success-border: rgba(22, 163, 74, .35);--color-success-text: #6ed397;--color-error-bg: rgba(229, 72, 77, .16);--color-error-border: rgba(229, 72, 77, .35);--color-error-text: #f19598;--color-warning-bg: rgba(245, 158, 11, .16);--color-warning-border: rgba(245, 158, 11, .35);--color-warning-text: #f5c97b;--color-info: var(--blue-300);--color-info-bg: rgba(74, 144, 255, .14);--color-info-border: rgba(74, 144, 255, .35);--color-info-text: #a8c8ff}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]){--color-primary: var(--blue-400);--color-primary-hover: var(--blue-300);--color-primary-press: var(--blue-500);--color-primary-soft: rgba(74, 144, 255, .14);--color-primary-border: rgba(74, 144, 255, .4);--surface-page: var(--dark-bg);--surface-card: var(--dark-panel);--surface-sunken: #1d2025;--surface-hover: #1f2228;--border-default: var(--dark-border);--text-primary: var(--dark-text);--text-secondary: var(--dark-text-2);--text-tertiary: #6b7280;--text-link: var(--blue-400);--ai-accent-soft: rgba(124, 92, 255, .16);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .6);--shadow-page: 0 2px 16px rgba(0, 0, 0, .5);--focus-ring: 0 0 0 3px rgba(74, 144, 255, .3);--focus: rgba(74, 144, 255, .3);--bg: var(--surface-page);--panel: var(--surface-card);--panel-solid: var(--surface-card);--text: var(--text-primary);--muted: var(--text-secondary);--placeholder: var(--text-tertiary);--border: var(--border-default);--border-strong: #3a3f47;--accent: var(--blue-400);--accent-hover: var(--blue-300);--accent-light: rgba(74, 144, 255, .14);--field-bg: #1c1f24;--field-hover: #22262c;--field-disabled: #16181d;--row-hover: rgba(255, 255, 255, .05);--row-selected: rgba(74, 144, 255, .16);--color-bg-primary: var(--surface-card);--color-bg-secondary: var(--surface-page);--color-bg-tertiary: var(--surface-sunken);--color-bg-hover: var(--surface-hover);--color-text-primary: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-tertiary: var(--text-tertiary);--color-text-inverse: #101214;--color-border: var(--border-default);--color-border-light: var(--border-default);--color-border-dark: #3a3f47;--color-primary-light: rgba(74, 144, 255, .14);--color-success-bg: rgba(22, 163, 74, .16);--color-success-border: rgba(22, 163, 74, .35);--color-success-text: #6ed397;--color-error-bg: rgba(229, 72, 77, .16);--color-error-border: rgba(229, 72, 77, .35);--color-error-text: #f19598;--color-warning-bg: rgba(245, 158, 11, .16);--color-warning-border: rgba(245, 158, 11, .35);--color-warning-text: #f5c97b;--color-info: var(--blue-300);--color-info-bg: rgba(74, 144, 255, .14);--color-info-border: rgba(74, 144, 255, .35);--color-info-text: #a8c8ff}}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/source-serif-4-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/source-serif-4-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}:root{--font-sans-hosted: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display-serif: "Source Serif 4", Georgia, "Times New Roman", Times, serif}.st-display-1{font-family:var(--font-display);font-size:var(--text-display-1);line-height:var(--leading-display);font-weight:var(--weight-bold);letter-spacing:-.02em;margin:0}.st-display-2{font-family:var(--font-display);font-size:var(--text-display-2);line-height:var(--leading-display);font-weight:var(--weight-semibold);letter-spacing:-.01em;margin:0}.st-lead{font-family:var(--font-sans);font-size:var(--text-lead);line-height:var(--leading-normal);font-weight:var(--weight-regular);color:var(--text-secondary);margin:0}@layer base{*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-normal);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-slow),color var(--transition-normal)}#root{min-height:100%;display:flex;flex-direction:column}a{color:var(--text-link)}[data-e2e-mode=true] *,[data-e2e-mode=true] *:before,[data-e2e-mode=true] *:after{transition:none!important;animation:none!important;animation-duration:0s!important;animation-delay:0s!important;transition-duration:0s!important;transition-delay:0s!important}@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}.container{max-width:1200px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom))}.control,.input,input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=url],input[type=tel],input[type=date],input[type=time],input[type=datetime-local],select,textarea{height:var(--control-h);width:100%;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--field-bg);color:var(--text);padding:0 12px;outline:none;transition:border-color var(--transition-normal),background var(--transition-normal),box-shadow var(--transition-normal);font-size:var(--text-md);font-family:var(--font-sans)}.control:hover,.input:hover,input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}.control:focus,.input:focus,input:focus,select:focus,textarea:focus{border-color:var(--border-focus);box-shadow:var(--focus-ring)}.control::placeholder,.input::placeholder,input::placeholder,textarea::placeholder{color:var(--placeholder)}.control:disabled,.input:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.45;cursor:not-allowed;background:var(--field-disabled);box-shadow:none}textarea,textarea.control,textarea.input{height:auto;min-height:110px;padding:10px 12px;resize:vertical;line-height:var(--leading-normal)}select,select.control,select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 12px) 52%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:36px;cursor:pointer}.btn,button{height:var(--control-h);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-card);color:var(--text);padding:0 16px;font-size:var(--text-sm);font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:8px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;white-space:nowrap}.btn:hover,button:hover{background:var(--surface-hover);border-color:var(--border-strong)}.btn:active,button:active{background:var(--surface-sunken)}.btn:focus-visible,button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn:disabled,button:disabled{opacity:.45;cursor:not-allowed;background:var(--field-disabled);box-shadow:none}.btn-primary{background:var(--color-primary);border-color:transparent;color:var(--text-on-primary)}.btn-primary:hover{background:var(--color-primary-hover);border-color:transparent}.btn-primary:active{background:var(--color-primary-press)}.btn-danger{background:var(--status-danger);border-color:transparent;color:#fff}.btn-danger:hover{background:#d13438;border-color:transparent}.btn-danger:active{background:#b92d31}.btn-success{background:var(--status-success);border-color:transparent;color:#fff}.btn-success:hover{background:#128a3e;border-color:transparent}.btn-ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--muted)}.btn-ghost:hover{background:var(--surface-hover);border-color:transparent;color:var(--text)}.btn.icon-only{width:var(--control-h);padding:0}.btn-block{width:100%}.card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-xs);overflow:hidden}.card-header{padding:16px 18px 12px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card-title{margin:0;font-size:15px;font-weight:600}.card-subtitle{margin:6px 0 0;font-size:var(--text-sm);color:var(--muted);line-height:1.35}.card-body{padding:16px 18px 18px}.section{display:grid;gap:14px;padding:14px;border-radius:var(--radius-lg);background:var(--surface-card);border:1px solid var(--border)}.grid{display:grid;gap:16px;grid-template-columns:1fr}@media (min-width: 980px){.grid{grid-template-columns:1fr 1fr}}.row{display:grid;gap:10px}@media (min-width: 560px){.row.cols-2{grid-template-columns:1fr 1fr}.row.cols-3{grid-template-columns:1fr 1fr 1fr}.row.cols-4{grid-template-columns:1fr 1fr 1fr 1fr}}.label,label{font-size:var(--text-xs);color:var(--muted);margin-bottom:6px;display:inline-flex;gap:8px;align-items:center;font-weight:600}.hint{font-size:var(--text-xs);color:var(--muted);margin-top:6px;line-height:1.35}.badge,.pill{font-size:var(--text-xs);font-weight:600;padding:3px 9px;border-radius:var(--radius-pill);border:1px solid transparent;background:var(--surface-sunken);color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.badge-success{background:var(--color-success-bg);color:var(--color-success-text);border-color:transparent}.badge-danger{background:var(--color-error-bg);color:var(--color-error-text);border-color:transparent}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:transparent}.badge-info{background:var(--color-info-bg);color:var(--color-info-text);border-color:transparent}.table-wrap{border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;background:var(--surface-card)}.table-scroller{max-height:500px;overflow:auto}table{width:100%;border-collapse:collapse}thead th{position:sticky;top:0;z-index:1;text-align:left;font-size:var(--text-xs);color:var(--muted);font-weight:600;letter-spacing:.02em;background:var(--surface-card);border-bottom:1px solid var(--border);padding:10px 12px}tbody td{padding:10px 12px;border-bottom:1px solid var(--border);font-size:var(--text-sm);vertical-align:middle}tbody tr:hover{background:var(--row-hover)}tbody tr.selected{background:var(--row-selected)}tbody tr.row-flash{animation:row-flash 1.6s ease-out}@keyframes row-flash{0%{background:var(--color-primary, #1677ff)}15%{background:var(--color-primary, #1677ff)}to{background:var(--row-selected)}}tbody tr:last-child td{border-bottom:none}.switch{display:inline-flex;align-items:center;gap:10px;-webkit-user-select:none;user-select:none;cursor:pointer}.switch input{position:absolute;opacity:0;pointer-events:none}.switch-ui{width:44px;height:26px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--gray-300);position:relative;transition:background var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal);flex:0 0 auto}[data-theme=dark] .switch-ui{background:var(--surface-sunken)}.switch-ui:after{content:"";width:20px;height:20px;border-radius:var(--radius-pill);position:absolute;top:2px;left:2px;background:#fff;box-shadow:var(--shadow-sm);transition:transform .18s ease}.switch input:checked+.switch-ui{background:var(--color-primary);border-color:transparent}.switch input:checked+.switch-ui:after{transform:translate(18px)}.switch input:focus+.switch-ui{box-shadow:var(--focus-ring)}.seg{display:inline-flex;background:var(--surface-sunken);border:none;border-radius:var(--radius-md);padding:2px;gap:2px;overflow:hidden;width:fit-content;max-width:100%}.seg input{position:absolute;opacity:0;pointer-events:none}.seg label{height:30px;padding:0 12px;margin-bottom:0;border-radius:calc(var(--radius-md) - 2px);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;color:var(--muted);cursor:pointer;transition:background var(--transition-normal),color var(--transition-normal);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;white-space:nowrap}.seg input:checked+label{background:var(--surface-card);color:var(--color-primary);box-shadow:var(--shadow-sm)}.status{display:inline-flex;align-items:center;gap:8px}.status .bubble,.dot{width:10px;height:10px;border-radius:var(--radius-pill);background:var(--status-success);box-shadow:0 0 0 4px #16a34a1f;flex:0 0 auto}.status.warn .bubble{background:var(--status-warning);box-shadow:0 0 0 4px #f59e0b29}.status.danger .bubble{background:var(--status-danger);box-shadow:0 0 0 4px #e5484d24}.icon{width:20px;height:20px;display:inline-block;vertical-align:-4px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.icon.sm{width:16px;height:16px;vertical-align:-3px}.icon.lg{width:24px;height:24px;vertical-align:-5px}.icon.xl{width:28px;height:28px;vertical-align:-6px}.icon.solid{fill:currentColor;stroke:none}.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.text-center{text-align:center}.text-right{text-align:right}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-title{font-size:24px;font-weight:700;letter-spacing:-.3px;margin:0}.page-actions{display:flex;gap:10px;align-items:center}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px}.form-row{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.alert{padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-card);margin-bottom:16px;font-size:var(--text-sm)}.alert-success{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success-text)}.alert-danger,.alert-error{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error-text)}.alert-warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning-text)}.alert-info{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info-text)}.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--muted)}.loading-screen{flex:1;display:flex;align-items:center;justify-content:center;min-height:100vh}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--surface-hover) 50%,var(--surface-sunken) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-title{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--text)}.empty-state-description{font-size:var(--text-md);line-height:1.5}.modal-overlay{background:var(--overlay-soft)}.modal-content{border-radius:var(--radius-xl);background:var(--surface-card);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.topbar{position:sticky;top:0;z-index:50;background:var(--surface-card);border-bottom:1px solid var(--border)}.topbar-inner{max-width:1200px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}.divider{display:flex;align-items:center;margin:16px 0;color:var(--muted)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.divider span{padding:0 16px;font-size:.875rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.photo-grid-item{aspect-ratio:1;border-radius:var(--radius-xs);overflow:hidden;cursor:pointer}.photo-grid-item img{width:100%;height:100%;object-fit:cover}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:1000}.lightbox img{max-width:90vw;max-height:90vh;object-fit:contain}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:5px;border:2px solid transparent;background-clip:content-box}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--gray-600);background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--gray-400);background-clip:content-box}.main-layout{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:24px}.toast-container{position:fixed;top:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 24px;border-radius:var(--radius-md);color:#fff;font-weight:500;font-size:var(--text-sm);cursor:pointer;box-shadow:var(--shadow-lg);animation:slideIn .3s ease}.toast-success{background-color:var(--status-success)}.toast-error{background-color:var(--status-danger)}.toast-warning{background-color:var(--status-warning)}.toast-info{background-color:var(--color-primary)}.toast-with-action{display:flex;align-items:center;gap:16px;cursor:default}.toast-action{flex-shrink:0;padding:4px 12px;border:1px solid rgba(255,255,255,.6);border-radius:var(--radius-md);background:#ffffff24;color:#fff;font-weight:600;font-size:var(--text-sm);cursor:pointer}.toast-action:hover{background:#ffffff47}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.h-scroll-fade{--h-scroll-fade-bg: var(--bg);--h-scroll-fade-hint: rgba(0, 0, 0, .16);background-image:linear-gradient(to right,var(--h-scroll-fade-bg) 45%,transparent),linear-gradient(to left,var(--h-scroll-fade-bg) 45%,transparent),linear-gradient(to right,var(--h-scroll-fade-hint),transparent),linear-gradient(to left,var(--h-scroll-fade-hint),transparent);background-position:left center,right center,left center,right center;background-size:32px 100%,32px 100%,14px 100%,14px 100%;background-repeat:no-repeat;background-attachment:local,local,scroll,scroll}[data-theme=dark] .h-scroll-fade{--h-scroll-fade-hint: rgba(255, 255, 255, .18)}}@media (max-width: 768px) and (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .h-scroll-fade{--h-scroll-fade-hint: rgba(255, 255, 255, .18)}}@media (max-width: 768px){.admin-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}}.editor-canvas{flex:1;display:flex;align-items:center;justify-content:center;background:#111;overflow:hidden;position:relative}.editor-canvas__webgl{display:block;max-width:100%;max-height:100%;object-fit:contain}.editor-slider{margin-bottom:6px}.editor-slider__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.editor-slider__label{font-size:11px;color:var(--editor-text-secondary, #aaa);-webkit-user-select:none;user-select:none}.editor-slider__label--modified{color:var(--editor-text-primary, #fff)}.editor-slider__value{font-size:11px;color:var(--editor-text-primary, #fff);min-width:36px;text-align:right;cursor:pointer;font-variant-numeric:tabular-nums}.editor-slider__input{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--editor-slider-track, #444);border-radius:2px;outline:none;cursor:pointer}.editor-slider__input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--editor-accent, #4a9eff);cursor:pointer;border:none}.editor-slider__input::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--editor-accent, #4a9eff);cursor:pointer;border:none}.tone-curve-section{display:flex;flex-direction:column;gap:6px}.tone-curve-tabs{display:flex;gap:4px}.tone-curve-tab{background:transparent;border:1px solid #444;border-radius:3px;padding:2px 8px;font-size:11px;cursor:pointer;flex:1}.tone-curve-tab--active{background:#333;border-color:#666}.tone-curve-canvas{width:100%;aspect-ratio:1;background:#1a1a1a;border-radius:4px;cursor:crosshair}.hsl-section{display:flex;flex-direction:column;gap:6px}.hsl-tabs{display:flex;gap:4px}.hsl-tab{background:transparent;border:1px solid #444;border-radius:3px;padding:2px 6px;font-size:11px;color:#aaa;cursor:pointer;flex:1}.hsl-tab--active{background:#333;border-color:#666;color:#fff}.hsl-sliders{display:flex;flex-direction:column}.editor-histogram{padding:8px;background:#1a1a1a;border-radius:4px;margin-bottom:8px}.editor-histogram__canvas{width:100%;height:60px;display:block}.editor-panel{width:280px;min-width:280px;background:var(--editor-bg, #222);color:var(--editor-text-primary, #eee);display:flex;flex-direction:column;overflow-y:auto;border-left:1px solid #333;font-size:12px}.editor-panel__sections{flex:1;overflow-y:auto;padding:0 8px 8px}.editor-panel__section{border-bottom:1px solid #333}.editor-panel__section-header{width:100%;background:transparent;border:none;color:var(--editor-text-primary, #eee);font-size:12px;font-weight:600;padding:8px 0;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.editor-panel__section-header:hover{color:#fff}.editor-panel__section-arrow{font-size:9px;width:12px;text-align:center}.editor-panel__section-body{padding:0 0 8px}.editor-toolbar{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:var(--editor-bg, #222);border-top:1px solid #333;gap:8px}.editor-toolbar__left,.editor-toolbar__right{display:flex;align-items:center;gap:6px}.editor-toolbar__btn{background:#333;border:1px solid #444;color:#ddd;padding:4px 10px;border-radius:4px;font-size:12px;cursor:pointer;white-space:nowrap}.editor-toolbar__btn:hover:not(:disabled){background:#444;color:#fff}.editor-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.editor-toolbar__btn--primary{background:var(--editor-accent, #4a9eff);border-color:transparent;color:#fff}.editor-toolbar__btn--primary:hover:not(:disabled){background:#3a8eef}.editor-toolbar__btn--accent{background:#2d7d46;border-color:transparent;color:#fff}.editor-toolbar__btn--accent:hover:not(:disabled){background:#3d8d56}.editor-toolbar__divider{width:1px;height:20px;background:#444}.editor-toolbar__presets-wrapper{position:relative}.editor-toolbar__presets-dropdown{position:absolute;bottom:100%;left:0;background:#2a2a2a;border:1px solid #444;border-radius:6px;padding:6px;min-width:180px;z-index:10;margin-bottom:4px;max-height:300px;overflow-y:auto}.editor-toolbar__presets-group{border-bottom:1px solid #333;padding-bottom:4px;margin-bottom:4px}.editor-toolbar__presets-label{font-size:10px;color:#888;text-transform:uppercase;padding:2px 4px}.editor-toolbar__preset-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:#ddd;padding:4px 8px;font-size:12px;cursor:pointer;border-radius:3px}.editor-toolbar__preset-item:hover{background:#444}.editor-toolbar__preset-row{display:flex;align-items:center}.editor-toolbar__preset-row .editor-toolbar__preset-item{flex:1}.editor-toolbar__preset-delete{background:transparent;border:none;color:#888;font-size:14px;cursor:pointer;padding:2px 6px}.editor-toolbar__preset-delete:hover{color:#e54}.editor-toolbar__preset-save{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--editor-accent, #4a9eff);padding:4px 8px;font-size:12px;cursor:pointer}.editor-toolbar__preset-save:hover{text-decoration:underline}.photo-editor{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10001;background:#111;display:flex;flex-direction:column;color:#eee;--editor-bg: #222;--editor-text-primary: #eee;--editor-text-secondary: #aaa;--editor-accent: #4a9eff;--editor-slider-track: #444}.photo-editor__main{flex:1;display:flex;overflow:hidden}.ve-timeline{position:relative;height:100px;background:#1a1a1a;border-top:1px solid #2a2a2a;flex-shrink:0;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.ve-timeline--editor{height:140px}.ve-thumbnail-strip{position:absolute;top:0;left:0;right:0;height:60px;display:flex;overflow:hidden}.ve-thumbnail-strip__frame{flex-shrink:0;background-repeat:no-repeat;height:100%}.ve-scrub-preview{position:absolute;bottom:100%;transform:translate(-50%);margin-bottom:8px;pointer-events:none;z-index:10;display:flex;flex-direction:column;align-items:center}.ve-scrub-preview__thumb{width:160px;height:90px;background-repeat:no-repeat;border-radius:4px;border:2px solid #444;background-color:#222;box-shadow:0 4px 12px #0009}.ve-scrub-preview__time{margin-top:4px;font-size:11px;color:#aaa;background:#000000b3;padding:2px 6px;border-radius:3px;font-variant-numeric:tabular-nums}.ve-playhead{position:absolute;top:0;bottom:0;width:2px;background:var(--accent, #4a9eff);pointer-events:none;z-index:5;will-change:transform}.ve-playhead__handle{position:absolute;top:-4px;left:-5px;width:12px;height:12px;background:var(--accent, #4a9eff);border-radius:2px;transform:rotate(45deg);pointer-events:auto;cursor:ew-resize}.ve-trim-overlay-left,.ve-trim-overlay-right{position:absolute;top:0;bottom:0;background:#0000008c;z-index:3;pointer-events:none}.ve-trim-overlay-left{left:0}.ve-trim-overlay-right{right:0}.ve-trim-handle{position:absolute;top:0;bottom:0;width:12px;z-index:6;cursor:ew-resize;display:flex;align-items:center;justify-content:center;touch-action:none}.ve-trim-handle--in{border-left:3px solid #ff6b6b;background:#ff6b6b1a}.ve-trim-handle--out{border-right:3px solid #ff6b6b;background:#ff6b6b1a}.ve-trim-handle__grip{width:4px;height:24px;display:flex;flex-direction:column;gap:2px}.ve-trim-handle__grip span{width:4px;height:2px;background:#fff6;border-radius:1px}.ve-waveform{position:absolute;bottom:0;left:0;right:0;height:64px;background-repeat:no-repeat;background-size:100% 100%;opacity:.5}.ve-timeline__hover-line{position:absolute;top:0;bottom:0;width:1px;background:#ffffff4d;pointer-events:none;z-index:4}.ve-timeline__click-area{position:absolute;top:0;left:0;right:0;bottom:0;z-index:2}.video-editor{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10001;background:#111;display:flex;flex-direction:column;color:#e0e0e0;font-family:-apple-system,Segoe UI,Roboto,sans-serif;-webkit-user-select:none;user-select:none;overflow:hidden}.video-editor__canvas-area{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000;min-height:0}.video-editor__canvas-area video,.video-editor__canvas-area canvas{max-width:100%;max-height:100%;object-fit:contain}.video-editor__canvas-area video.ve-hidden,.video-editor__canvas-area canvas.ve-hidden{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.video-editor__proxy-loading{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 14px;background:#000000b3;border-radius:20px;font-size:12px;color:#aaa;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.video-editor__proxy-bar{width:120px;height:3px;background:#ffffff26;border-radius:2px;overflow:hidden}.video-editor__proxy-bar-fill{height:100%;background:var(--accent, #4a9eff);border-radius:2px;transition:width .2s ease}.video-editor__controls{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#1a1a1a;border-top:1px solid #2a2a2a;flex-shrink:0;min-height:40px}.video-editor__controls-left{display:flex;align-items:center;gap:4px}.video-editor__controls-center{flex:1;display:flex;align-items:center;justify-content:center;gap:6px}.video-editor__controls-right{display:flex;align-items:center;gap:4px}.ve-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:#ccc;cursor:pointer;padding:4px 8px;border-radius:4px;font-size:13px;line-height:1;transition:background-color .15s,color .15s;white-space:nowrap}.ve-btn:hover{background:#ffffff1a;color:#fff}.ve-btn:active{background:#ffffff26}.ve-btn:disabled{opacity:.35;cursor:default}.ve-btn--active{color:var(--accent, #4a9eff)}.ve-btn--icon{padding:4px;width:32px;height:32px}.ve-btn svg{width:18px;height:18px;fill:currentColor}.ve-divider{width:1px;height:20px;background:#333;margin:0 4px}.ve-time{font-size:12px;font-variant-numeric:tabular-nums;color:#aaa;padding:0 6px;min-width:90px;text-align:center}.ve-time__current{color:#e0e0e0}.ve-time__frame{font-size:11px;color:#777;margin-left:6px}.ve-volume{display:flex;align-items:center;gap:4px}.ve-volume__slider{width:60px;height:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#333;border-radius:2px;outline:none;cursor:pointer}.ve-volume__slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:#ccc;cursor:pointer}.ve-speed{position:relative}.ve-speed__menu{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#222;border:1px solid #333;border-radius:6px;padding:4px 0;min-width:70px;z-index:10;box-shadow:0 4px 16px #00000080}.ve-speed__option{display:block;width:100%;padding:6px 12px;background:transparent;border:none;color:#ccc;font-size:12px;cursor:pointer;text-align:center}.ve-speed__option:hover{background:#ffffff1a}.ve-speed__option--active{color:var(--accent, #4a9eff)}.ve-quality{position:relative}.ve-quality__menu{position:absolute;bottom:100%;right:0;background:#222;border:1px solid #333;border-radius:6px;padding:4px 0;min-width:90px;z-index:10;box-shadow:0 4px 16px #00000080}.ve-quality__option{display:block;width:100%;padding:6px 12px;background:transparent;border:none;color:#ccc;font-size:12px;cursor:pointer;text-align:left}.ve-quality__option:hover{background:#ffffff1a}.ve-quality__option--active{color:var(--accent, #4a9eff)}.video-editor__toolbar{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#1a1a1a;border-top:1px solid #2a2a2a;flex-shrink:0;min-height:40px}.video-editor__toolbar-section{display:flex;align-items:center;gap:4px}.video-editor__toolbar-spacer{flex:1}.ve-mode-toggle{display:flex;background:#252525;border-radius:4px;overflow:hidden}.ve-mode-toggle__btn{padding:4px 10px;background:transparent;border:none;color:#888;font-size:11px;cursor:pointer;transition:background .15s,color .15s}.ve-mode-toggle__btn--active{background:#ffffff1a;color:#e0e0e0}.video-editor__close{position:absolute;top:12px;right:12px;z-index:5;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#00000080;border:none;border-radius:50%;color:#aaa;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .15s,color .15s}.video-editor__close:hover{background:#ffffff26;color:#fff}.ve-info{display:flex;align-items:center;gap:12px;padding:4px 12px;background:#161616;font-size:11px;color:#666;border-top:1px solid #222;flex-shrink:0}.ve-info__item{white-space:nowrap}.ve-screenshots{position:absolute;right:0;top:0;bottom:0;width:220px;background:#141414f2;border-left:1px solid #2a2a2a;display:flex;flex-direction:column;z-index:4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ve-screenshots__header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #2a2a2a;font-size:12px;font-weight:500;color:#ccc}.ve-screenshots__list{flex:1;overflow-y:auto;padding:8px}.ve-screenshots__item{display:flex;gap:8px;padding:6px;border-radius:4px;cursor:pointer;transition:background .15s;margin-bottom:4px}.ve-screenshots__item:hover{background:#ffffff0d}.ve-screenshots__thumb{width:48px;height:36px;border-radius:3px;object-fit:cover;background:#222}.ve-screenshots__meta{flex:1;font-size:11px}.ve-screenshots__time{color:#aaa}.ve-screenshots__status{color:#666;font-size:10px}.ve-screenshots__status--ready{color:#4caf50}.ve-screenshots__status--processing{color:#ff9800}.ve-trim-panel{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#1a1a1a;border-top:1px solid #2a2a2a;flex-shrink:0}.ve-trim-panel__field{display:flex;flex-direction:column;gap:2px}.ve-trim-panel__label{font-size:10px;color:#666;text-transform:uppercase;letter-spacing:.5px}.ve-trim-panel__actions{display:flex;gap:6px;margin-left:auto}.ve-btn--primary{background:var(--accent, #4a9eff);color:#fff}.ve-btn--primary:hover{background:#3a8eef}.ve-btn--danger{background:#c0392b;color:#fff}.ve-btn--danger:hover{background:#e74c3c}.ve-batch-panel{position:absolute;bottom:100%;left:0;background:#222;border:1px solid #333;border-radius:8px;padding:12px;min-width:260px;z-index:10;box-shadow:0 4px 20px #0009}.ve-batch-panel__title{font-size:13px;font-weight:500;color:#ddd;margin-bottom:10px}.ve-batch-panel__row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ve-batch-panel__row label{font-size:12px;color:#aaa;min-width:70px}.ve-batch-panel__input{width:80px;padding:4px 8px;background:#1a1a1a;border:1px solid #333;border-radius:4px;color:#ddd;font-size:12px;font-variant-numeric:tabular-nums}.ve-batch-panel__input:focus{border-color:var(--accent, #4a9eff);outline:none}.ve-batch-panel__footer{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.ve-timecode-input{width:100px;padding:4px 6px;background:#1a1a1a;border:1px solid #333;border-radius:4px;color:#ddd;font-size:12px;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-variant-numeric:tabular-nums;text-align:center}.ve-timecode-input:focus{border-color:var(--accent, #4a9eff);outline:none}.ve-timecode-input--invalid{border-color:#c0392b}.ve-jkl-indicator{font-size:11px;font-weight:500;padding:2px 6px;border-radius:3px;min-width:40px;text-align:center}.ve-jkl-indicator--reverse{color:#ff6b6b;background:#ff6b6b1a}.ve-jkl-indicator--forward{color:#51cf66;background:#51cf661a}.ve-jkl-indicator--stopped{color:#666}.video-editor__error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:2rem;color:#999;text-align:center}.video-editor__error-message{font-size:14px}@media (max-width: 768px){.video-editor__controls{padding:4px 8px;gap:3px}.ve-btn{padding:6px;font-size:12px}.ve-time{font-size:11px;min-width:auto}.ve-volume__slider{width:40px}.ve-screenshots{width:180px}}.ve-btn-wrap{display:flex;flex-direction:column;align-items:center}.ve-btn-shortcut{font-size:9px;color:#666;margin-top:1px;letter-spacing:.05em;-webkit-user-select:none;user-select:none;white-space:nowrap}.help-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem;animation:fadeIn .2s ease-out}.help-content{background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;max-width:600px;width:100%;box-shadow:var(--shadow-lg);animation:modalSlideIn .3s ease-out;max-height:80vh;overflow-y:auto}.help-dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.help-title{margin:0;font-size:1.25rem;font-weight:700;color:var(--text)}.help-dialog-nav{display:flex;gap:.5rem}.help-nav-button{padding:.25rem .5rem;background:var(--field-bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;color:var(--text);transition:all .2s}.help-nav-button:hover{background:var(--field-hover);border-color:var(--accent)}.help-dialog-body{margin-bottom:1.5rem;max-height:60vh;overflow-y:auto;line-height:1.6;color:var(--text)}.help-paragraph{margin:0 0 1rem}.help-heading{margin:1.5rem 0 1rem;font-size:1.1rem;font-weight:700;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:.5rem}.help-heading:first-child{margin-top:0}.help-list{margin:1rem 0;padding-left:1.5rem}.help-list-item{margin:.25rem 0}.help-actions{display:flex;gap:.5rem;justify-content:flex-end}.help-button{padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;font-weight:500;min-height:44px;transition:all .2s}.help-button-primary{background:var(--accent);color:#fff}.help-button-primary:hover{background:var(--accent-hover)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width: 768px){.help-content{max-width:100%;max-height:90vh;padding:1rem}.help-dialog-header{flex-direction:column;align-items:flex-start}.help-dialog-body{max-height:50vh}}.help-button{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--field-bg);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;transition:all .2s;padding:0;margin:0}.help-button:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:scale(1.1)}.help-button:active{transform:scale(.95)}.help-button-icon{line-height:1;-webkit-user-select:none;user-select:none}.navigation-sidebar{width:260px;background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));padding:16px 0;overflow-y:auto;border-right:1px solid var(--border);flex-shrink:0}.navigation-groups{padding:0 8px}.nav-group{margin-bottom:2px}.nav-group__header{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:none;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:color .2s,background .2s;border-radius:var(--radius-md);font-family:inherit}.nav-group__header:hover{color:var(--text);background:#00000008}[data-theme=dark] .nav-group__header:hover{background:#ffffff0d}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .nav-group__header:hover{background:#ffffff0d}}.nav-group--active>.nav-group__header{color:var(--accent)}.nav-group__header svg{flex-shrink:0;opacity:.7}.nav-group--active>.nav-group__header svg{opacity:1}.nav-group__label{flex:1;text-align:left}.nav-group__chevron{display:flex;align-items:center;margin-left:auto;transition:transform .2s ease}.nav-group__chevron--expanded{transform:rotate(180deg)}.nav-group__items{max-height:0;overflow:hidden;transition:max-height .25s ease-out}.nav-group__items--expanded{max-height:600px;transition:max-height .3s ease-in}.nav-item{display:block;padding:7px 12px 7px 38px;color:var(--text);text-decoration:none;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;border-left:2px solid transparent;border-radius:0 var(--radius-md) var(--radius-md) 0;margin-left:12px}.nav-item:hover{color:var(--text);background:#0000000a}[data-theme=dark] .nav-item:hover{background:#ffffff0f}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .nav-item:hover{background:#ffffff0f}}.nav-item--active{color:var(--accent);background:var(--accent-light);border-left-color:var(--accent);font-weight:700}.navigation-header-controls{display:flex;gap:10px;align-items:center}.navigation-logout-button{height:var(--control-h);padding:0 16px;background:linear-gradient(180deg,#e5484df2,#e5484dbf);color:#fff;border:1px solid rgba(0,0,0,.06);border-radius:14px;cursor:pointer;font-size:14px;font-weight:700;font-family:var(--font-sans);transition:transform var(--transition-fast),background var(--transition-normal);box-shadow:0 10px 26px #e5484d33;display:inline-flex;align-items:center;justify-content:center;gap:8px}.navigation-logout-button:hover{background:linear-gradient(180deg,#e5484d,#e5484dd1)}.navigation-logout-button:active{transform:translateY(1px) scale(.99)}.navigation-brand{padding:0 14px 16px;margin-bottom:8px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.navigation-logo{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,#1677fff2,#16a34abf);box-shadow:var(--shadow-sm);flex:0 0 auto}.navigation-brand-text h1{font-size:15px;font-weight:800;margin:0;letter-spacing:.2px}.navigation-brand-text p{font-size:12px;color:var(--muted);margin:2px 0 0}.navigation-user{padding:12px 14px;margin:0 12px 12px;background:#ffffff73;border-radius:var(--radius-md);border:1px solid var(--border)}[data-theme=dark] .navigation-user{background:#ffffff0f}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .navigation-user{background:#ffffff0f}}.navigation-user-name{font-size:14px;font-weight:700;margin:0 0 4px}.navigation-user-role{font-size:12px;color:var(--muted)}@media (max-width: 768px){.navigation-sidebar{display:none}}.navigation-drawer{display:none}@media (max-width: 768px){.navigation-drawer{display:block;position:fixed;top:0;left:0;bottom:0;width:min(85vw,320px);background:var(--panel-solid, #ffffff);border-right:1px solid var(--border);box-shadow:8px 0 32px #00000040;padding:16px 0;overflow-y:auto;z-index:960}.navigation-drawer .nav-item{padding-top:12px;padding-bottom:12px}.navigation-drawer .nav-group__header{min-height:44px}}.page-shell{width:100%;max-width:var(--page-max-width);margin:0 auto;padding:var(--content-gutter)}.page-shell--sm{max-width:760px}.page-shell--md{max-width:960px}.page-shell--lg{max-width:var(--page-max-width)}.page-shell--centered{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center}.page-header-std{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:var(--section-gap)}.page-header-std-main{display:flex;flex-direction:column;gap:8px}.page-header-std-title{margin:0;font-size:30px;line-height:1.15;letter-spacing:-.4px}.page-header-std-subtitle{margin:0;color:var(--muted);line-height:1.5;max-width:72ch}.page-header-std-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.page-section{margin-bottom:var(--section-gap)}.page-section:last-child{margin-bottom:0}.page-section--card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm);padding:clamp(16px,2vw,28px)}.page-section--flat{padding:0}@media (max-width: 768px){.page-header-std{flex-direction:column;gap:12px}.page-header-std-title{font-size:24px}.page-header-std-actions{width:100%}}@media (max-width: 480px){.page-header-std-title{font-size:20px}.page-shell{padding:0}.page-section--card{border-radius:var(--radius-md)}}.auth-page{flex:1;display:flex;flex-direction:column;align-items:stretch;padding:var(--content-gutter)}.auth-page-shell{width:100%;max-width:460px;margin:0 auto}.auth-card{width:100%;max-width:460px;padding:clamp(22px,3vw,34px);background:var(--panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--border);display:flex;flex-direction:column;gap:16px}.auth-card-header{display:flex;flex-direction:column;gap:8px}.auth-card h1{margin:0;text-align:left;font-size:30px;letter-spacing:-.4px}.auth-card-subtitle{margin:0;color:var(--muted);line-height:1.45}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form-grid{display:grid;grid-template-columns:1fr;gap:var(--form-row-gap)}.auth-links{margin-top:0;text-align:center}.auth-links-row{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.auth-links a{color:var(--accent);font-weight:600}.oauth-section{margin-top:0}.oauth-buttons{display:grid;grid-template-columns:1fr;gap:10px}.btn-oauth{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px}.oauth-icon{font-weight:700;line-height:1}.auth-resend-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;font-size:13px;color:var(--text-2, rgba(0, 0, 0, .6))}.auth-forgot-row{display:flex;justify-content:flex-end}.auth-forgot-row a{font-size:13px;color:var(--accent);font-weight:600}.auth-password-hint{font-size:12px;color:var(--gray-500, #667085)}.auth-password-hint.is-valid{color:var(--green-500, #16a34a)}@media (max-width: 640px){.auth-page-shell,.auth-card{max-width:100%}.auth-card h1{font-size:26px}}@media (max-width: 480px){.auth-page{padding:16px 12px}.auth-card{padding:20px 16px;border-radius:var(--radius-md)}.auth-card h1{font-size:24px}}.profile-page{width:100%}.profile-loading{display:flex;justify-content:center;padding:48px}.profile-card{padding:clamp(18px,2vw,30px)}.profile-actions{display:flex;gap:10px;flex-wrap:wrap}.profile-section{margin-bottom:var(--section-gap);padding-bottom:var(--section-gap);border-bottom:1px solid var(--border)}.profile-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.profile-section h2{font-size:1.125rem;margin-bottom:16px}.profile-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.profile-section-header h2{margin:0}.profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.profile-field{display:flex;flex-direction:column;gap:4px;min-width:0}.profile-field-label{font-size:.875rem;color:var(--muted)}.profile-field-value{font-weight:500;overflow-wrap:anywhere}.profile-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--form-row-gap) var(--form-col-gap)}.profile-form-actions{margin-top:20px}.profile-danger-zone{background:#e5484d0d;border-radius:var(--radius-md);padding:24px;border:1px solid rgba(229,72,77,.2)}.profile-danger-zone h2{color:var(--danger)}.profile-danger-text{color:var(--muted);font-size:.875rem;margin-bottom:16px}.profile-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.profile-modal{background:var(--panel);border-radius:var(--radius-lg);padding:24px;max-width:420px;width:min(92vw,420px);box-shadow:0 4px 24px #0003}.profile-modal h3{margin-bottom:12px}.profile-modal p{color:var(--muted);margin-bottom:16px}.profile-modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}@media (max-width: 768px){.profile-fields,.profile-form-grid{grid-template-columns:1fr}}@media (max-width: 640px){.profile-card{padding:18px 14px}.profile-section-header{flex-direction:column;align-items:flex-start}.profile-modal-actions{flex-direction:column}}.toast-container{position:fixed;top:var(--spacing-md);right:var(--spacing-md);z-index:10000;display:flex;flex-direction:column;gap:var(--spacing-sm);max-width:400px}.toast{padding:var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-md);animation:slideIn .3s ease-out;transition:all var(--transition-fast)}.toast:hover{transform:translate(-4px);box-shadow:var(--shadow-lg)}.toast-success{background-color:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border)}.toast-error{background-color:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border)}.toast-info{background-color:var(--color-info-bg);color:var(--color-info-text);border:1px solid var(--color-info-border)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.toast-container{top:var(--spacing-sm);right:var(--spacing-sm);left:var(--spacing-sm);max-width:none}}.toast{display:flex;align-items:center;gap:12px}.toast-message{flex:1}.toast-action{border:none;background:#ffffff2e;color:inherit;font:inherit;font-weight:700;padding:4px 12px;border-radius:99px;cursor:pointer;white-space:nowrap;flex-shrink:0}.toast-action:hover{background:#ffffff4d}.onbj-empty-link{display:inline-block;margin-top:10px;border:none;background:transparent;color:var(--accent);font-size:.8125rem;font-weight:500;cursor:pointer;padding:4px 8px;border-radius:8px;transition:background .15s}.onbj-empty-link:hover{background:var(--accent-light)}.st-fab{display:none}@media (max-width: 768px){.st-fab{position:fixed;right:16px;bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:890;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:56px;height:56px;padding:0 18px;border:none;border-radius:28px;background:var(--accent, #1677ff);color:#fff;font-family:inherit;font-size:15px;font-weight:700;box-shadow:0 6px 20px #1677ff66;cursor:pointer}.st-fab:not(.st-fab--extended){width:56px;padding:0}.st-fab:active{transform:scale(.96)}.st-fab-icon{display:inline-flex}}.esg-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.esg-modal{background:var(--surface-card, #fff);color:var(--text-primary, #1a1a1a);border:1px solid var(--border-default, #e5e7eb);border-radius:var(--radius-lg, 14px);box-shadow:var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, .25));width:100%;max-width:460px;max-height:90vh;overflow-y:auto;padding:18px}.esg-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.esg-head-icon{display:inline-flex;color:var(--accent, #1677ff)}.esg-title{margin:0;font-size:17px;font-weight:600;flex:1}.esg-close{background:transparent;border:none;cursor:pointer;color:var(--text-secondary, #6b7280);padding:4px;border-radius:8px;display:inline-flex}.esg-close:hover{background:var(--surface-hover, #f3f4f6)}.esg-sub{color:var(--text-secondary, #6b7280);font-size:13px;margin-bottom:12px}.esg-loading{padding:28px 8px;text-align:center;color:var(--text-secondary, #6b7280)}.esg-group-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #6b7280);margin:14px 0 6px}.esg-radio{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border-default, #e5e7eb);border-radius:var(--radius-md, 10px);cursor:pointer;margin-bottom:6px;transition:border-color .12s,background .12s}.esg-radio:hover{background:var(--surface-hover, #f8fafc)}.esg-radio.checked{border-color:var(--accent, #1677ff);background:var(--accent-soft, rgba(22, 119, 255, .06))}.esg-radio input{position:absolute;opacity:0;pointer-events:none}.esg-radio-dot{flex:0 0 auto;width:16px;height:16px;margin-top:2px;border-radius:50%;border:2px solid var(--border-strong, #cbd5e1);position:relative}.esg-radio.checked .esg-radio-dot{border-color:var(--accent, #1677ff)}.esg-radio.checked .esg-radio-dot:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:50%;background:var(--accent, #1677ff)}.esg-radio-body{display:flex;flex-direction:column;gap:2px}.esg-radio-title{font-size:14px;font-weight:500}.esg-radio-hint{font-size:12px;color:var(--text-secondary, #6b7280)}.esg-check{display:flex;align-items:center;gap:8px;font-size:13.5px;margin:10px 0 2px;cursor:pointer}.esg-check input{width:16px;height:16px;accent-color:var(--accent, #1677ff)}.esg-check-hint{margin:0 0 6px 24px}.esg-note{font-size:12px;color:var(--text-secondary, #6b7280);background:var(--surface-sunken, #f8fafc);border-radius:8px;padding:7px 10px;margin-top:6px}.esg-dedup{margin-bottom:4px}.esg-dedup-row{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;padding:8px 10px;border:1px solid var(--border-default, #e5e7eb);border-radius:8px;background:var(--surface-sunken, #f8fafc);cursor:pointer;margin-bottom:4px}.esg-dedup-row:hover{border-color:var(--accent, #1677ff)}.esg-dedup-name{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.esg-dedup-open{font-size:12px;color:var(--accent, #1677ff);flex:0 0 auto}.esg-result{padding:8px 2px 2px}.esg-result-title{font-size:15px;font-weight:600;margin-bottom:6px}.esg-result-sum{font-size:13.5px;color:var(--text-secondary, #6b7280)}.esg-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.move-album-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.move-album-dialog{background:#fff;border-radius:8px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #0000004d}.move-album-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #dee2e6}.move-album-header h2{margin:0;font-size:1.2rem;font-weight:600;color:#333}.move-album-count{color:#888;font-weight:400}.move-album-close{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.move-album-close:hover{background:#f8f9fa}.move-album-hint{margin:0;padding:.75rem 1.5rem 0;font-size:.875rem;color:#666}.move-album-search{margin:.75rem 1.5rem;padding:.6rem .75rem;border:1px solid #dee2e6;border-radius:6px;font-size:.95rem;font-family:inherit;min-height:40px}.move-album-search:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.move-album-tree{flex:1;overflow-y:auto;min-height:160px;max-height:46vh;margin:0 .75rem;padding:.25rem;border:1px solid #eef0f2;border-radius:6px}.move-album-row{display:flex;align-items:center;gap:.35rem;padding:.4rem .5rem;border-radius:6px;cursor:pointer;min-height:40px;transition:background-color .15s}.move-album-row:hover{background:#f5f7fa}.move-album-row--selected{background:#e7f1ff}.move-album-row--selected:hover{background:#dbe9ff}.move-album-caret{flex:0 0 auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:4px;color:#888;font-size:.8rem;cursor:pointer;padding:0}.move-album-caret:hover:not(.move-album-caret--empty){background:#0000000f;color:#333}.move-album-caret--empty{cursor:default}.move-album-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333;font-size:.95rem}.move-album-check{color:#007bff;font-weight:700}.move-album-status{padding:1.5rem;text-align:center;color:#888;font-size:.9rem}.move-album-status--error{color:#b02a37}.move-album-error{margin:.75rem 1.5rem 0;padding:.6rem .75rem;background:#f8d7da;color:#721c24;border-radius:6px;font-size:.85rem}.move-album-actions{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.move-album-btn{padding:.65rem 1.4rem;border:1px solid #dee2e6;border-radius:6px;font-size:.95rem;cursor:pointer;transition:background-color .2s,border-color .2s;min-height:44px;min-width:100px}.move-album-btn:disabled{opacity:.6;cursor:not-allowed}.move-album-btn--cancel{background:#fff;color:#333}.move-album-btn--cancel:hover:not(:disabled){background:#f8f9fa}.move-album-btn--primary{background:#007bff;color:#fff;border-color:#007bff}.move-album-btn--primary:hover:not(:disabled){background:#0e63e0;border-color:#0e63e0}@media (max-width: 768px){.move-album-overlay{padding:0;align-items:flex-end}.move-album-dialog{max-width:100%;max-height:92vh;border-radius:16px 16px 0 0}.move-album-tree{max-height:50vh}.move-album-actions{flex-direction:column-reverse}.move-album-btn{width:100%}}.photo-marquee{position:absolute;z-index:40;border:1px solid #1677ff;background:#1677ff24;border-radius:2px;pointer-events:none}.photo-tile-focused{outline:2px solid #1677ff;outline-offset:-2px}.photo-grid-focusable:focus,.photo-grid-focusable:focus-visible{outline:none}.photo-grid-marquee-active,.photo-grid-marquee-active *{-webkit-user-select:none;user-select:none}.retention-banner{display:flex;align-items:center;gap:10px;border:1px solid var(--color-error, #dc3545);border-radius:8px;padding:8px 14px;margin-bottom:12px;background:var(--surface-secondary, rgba(220, 53, 69, .06));font-size:13px}.retention-banner-icon{flex-shrink:0;width:18px;height:18px;border-radius:50%;background:var(--color-error, #dc3545);color:#fff;font-weight:700;font-size:12px;line-height:18px;text-align:center}.retention-banner-text{flex:1;color:var(--text-primary, #222)}.retention-banner-link{color:var(--color-error, #dc3545);font-weight:600;text-decoration:none;white-space:nowrap}.retention-banner-link:hover{text-decoration:underline}.retention-banner-dismiss{flex-shrink:0;background:none;border:none;color:var(--text-secondary, #666);font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.retention-banner-dismiss:hover{color:var(--text-primary, #222)}.photo-searchbar{display:flex;align-items:center;gap:8px;width:100%;max-width:460px;height:38px;padding:0 14px;border-radius:999px;background:var(--field-bg, var(--panel, rgba(255, 255, 255, .6)));border:1px solid var(--border, #ddd);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .15s,box-shadow .15s}.photo-searchbar:focus-within{border-color:var(--accent, #007bff);box-shadow:0 0 0 3px #007bff1f}.photo-searchbar-icon{display:inline-flex;align-items:center;color:var(--muted, #888);flex-shrink:0}.photo-searchbar-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:13.5px;color:var(--text, #222);padding:0;box-shadow:none}.photo-searchbar-input::placeholder{color:var(--muted, #999);opacity:.9}.photo-searchbar-input::-webkit-search-decoration{-webkit-appearance:none}@media (max-width: 768px){.photo-searchbar{max-width:none;height:36px}}.vsp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;background:transparent}.vsp-panel{position:fixed;top:var(--vsp-top, 64px);right:var(--vsp-right, 16px);z-index:3001;width:320px;max-height:calc(100vh - var(--vsp-top, 64px) - 16px);overflow-y:auto;padding:14px 16px 16px;background:var(--panel-solid, var(--gray-0));border:1px solid var(--border, var(--gray-200));border-radius:14px;box-shadow:var(--shadow-lg, 0 12px 32px rgba(16, 24, 40, .16));animation:vspPopIn .16s ease both}@keyframes vspPopIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes vspSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.vsp-handle{display:none}.vsp-title{font-size:13px;font-weight:700;color:var(--text);letter-spacing:-.1px;margin-bottom:8px}.vsp-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-height:38px}.vsp-row--stack{flex-direction:column;align-items:flex-start;gap:6px;padding:6px 0}.vsp-row-label{flex:1;font-size:13px;font-weight:500;color:var(--text);white-space:nowrap}.vsp-row--stack .vsp-row-label{flex:none}.vsp-switch{position:relative;width:38px;height:22px;flex-shrink:0;border-radius:999px;border:1px solid var(--border, var(--gray-200));background:var(--field-bg, var(--gray-100));cursor:pointer;padding:0;transition:background .18s ease,border-color .18s ease}.vsp-switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--gray-0, #fff);box-shadow:0 1px 3px #10182840;transition:transform .18s ease}.vsp-switch.on{background:var(--accent);border-color:var(--accent)}.vsp-switch.on .vsp-switch-knob{transform:translate(16px)}.vsp-seg{display:flex;gap:2px;padding:3px;background:var(--field-bg, var(--gray-50));border:1px solid var(--border, var(--gray-200));border-radius:10px}.vsp-seg-btn{height:26px;padding:0 10px;border:none;border-radius:7px;background:transparent;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.vsp-seg-btn:hover:not(.active){color:var(--text)}.vsp-seg-btn.active{background:var(--panel-solid, var(--gray-0));color:var(--text);box-shadow:0 2px 8px #00000014}.vsp-chips{display:flex;flex-wrap:wrap;gap:6px}.vsp-chip{height:28px;padding:0 12px;border-radius:999px;border:1px solid var(--border, var(--gray-200));background:var(--field-bg, var(--gray-0));font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.vsp-chip:hover:not(.active){color:var(--text);border-color:var(--border-strong, var(--gray-300))}.vsp-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.vsp-slider{display:flex;align-items:center;gap:8px;min-width:130px}.vsp-slider input[type=range]{flex:1;height:4px;border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border, var(--gray-200));outline:none;cursor:pointer}.vsp-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 1px 4px #00000026}.vsp-slider-value{min-width:16px;text-align:center;font-size:12px;font-weight:700;color:var(--muted);font-family:var(--font-mono, monospace)}@media (max-width: 768px){.vsp-backdrop{background:#0006}.vsp-panel{top:auto;bottom:0;left:0;right:0;width:auto;max-height:75vh;border-radius:16px 16px 0 0;border-left:none;border-right:none;border-bottom:none;padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px));animation:vspSlideUp .25s cubic-bezier(.22,1,.36,1) both}.vsp-handle{display:block;width:36px;height:4px;margin:4px auto 10px;border-radius:2px;background:var(--gray-300, #d0d5dd)}.vsp-row{min-height:44px}}@media (prefers-reduced-motion: reduce){.vsp-panel{animation:none!important}.vsp-switch,.vsp-switch-knob{transition:none}}.st-pagehead{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.st-pagehead-main{flex:1;min-width:200px}.st-pagehead-title{margin:0;font-size:28px;font-weight:800;letter-spacing:-.025em;color:var(--text-primary)}.st-pagehead-sub{margin:4px 0 0;font-size:14px;color:var(--text-secondary)}.st-pagehead-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media (max-width: 768px){.st-pagehead-title{font-size:24px}}.st-statchips{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}.st-statchip{flex:1 1 0;min-width:132px;display:flex;align-items:center;gap:12px;padding:14px 16px;height:auto;text-align:left;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);cursor:pointer;font-family:inherit;transition:box-shadow .15s ease,border-color .15s}.st-statchip:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.st-statchip-icon{width:40px;height:40px;flex:none;border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center}.st-statchip-text{min-width:0}.st-statchip-n{display:block;font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--text-primary);line-height:1.05}.st-statchip-label{display:block;font-size:12.5px;color:var(--text-secondary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-sectionhead{display:flex;align-items:baseline;gap:10px;margin:0 0 12px}.st-sectionhead-title{margin:0;font-size:17px;font-weight:800;letter-spacing:-.01em;color:var(--text-primary)}.st-sectionhead-count{font-size:13px;color:var(--text-tertiary);font-weight:500}.st-sectionhead-spacer{flex:1}.st-sectionhead-action{display:inline-flex;align-items:center;gap:4px;border:none;background:transparent;color:var(--color-primary);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:0}.memories-widget{margin:0 0 1.25rem;padding:12px 14px;border-radius:12px;background:var(--card-bg, #f8f9fa);border:1px solid var(--border, #e9ecef)}.memories-widget-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.memories-widget-title{font-size:1rem;font-weight:600;color:var(--text, #222);margin:0}.memories-widget-link{font-size:.85rem;font-weight:600;color:var(--accent, #007bff);text-decoration:none;white-space:nowrap}.memories-widget-link:hover{text-decoration:underline}.memories-widget-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.memories-widget-tile{position:relative;flex:0 0 auto;width:96px;height:96px;border-radius:10px;overflow:hidden;cursor:pointer;background:var(--skeleton, #e9ecef);transition:transform .15s,box-shadow .15s}.memories-widget-tile:hover{transform:translateY(-2px);box-shadow:0 4px 14px #00000026}.memories-widget-thumb{width:100%;height:100%;object-fit:cover;display:block}.memories-widget-placeholder{width:100%;height:100%;background:var(--skeleton, #e9ecef)}.memories-widget-year{position:absolute;left:6px;bottom:6px;padding:1px 6px;border-radius:6px;background:#0000008c;color:#fff;font-size:.68rem;font-weight:600;pointer-events:none}@media (max-width: 768px){.memories-widget{padding:10px 12px}.memories-widget-tile{width:78px;height:78px}}.gallery-page{padding:0;animation:galFadeIn .4s ease both}@keyframes galFadeIn{0%{opacity:0}to{opacity:1}}.gallery-header{display:flex;flex-direction:column;gap:14px;margin-bottom:28px;animation:galSlideIn .5s ease both}@keyframes galSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.gallery-hero{display:flex;align-items:baseline;gap:14px}.gallery-title{font-family:"Bricolage Grotesque",var(--font-sans);font-size:clamp(28px,4vw,42px);font-weight:800;letter-spacing:-1px;line-height:1.1;margin:0;color:var(--text)}.gallery-count-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:700;color:var(--muted);background:var(--panel);border:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);letter-spacing:-.2px;white-space:nowrap;flex-shrink:0}.gallery-count-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px #16a34a26;flex-shrink:0}.gallery-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gallery-toolbar-group{display:flex;align-items:center;gap:8px}.gallery-toolbar-group+.gallery-toolbar-group{margin-left:auto}.gallery-segmented{display:flex;background:var(--field-bg);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}.gallery-seg-btn{height:30px;padding:0 12px;border-radius:7px;font-size:12px;font-weight:700;color:var(--muted);border:none;background:transparent;cursor:pointer;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal);white-space:nowrap}.gallery-seg-btn.active{background:var(--panel-solid);color:var(--text);box-shadow:0 2px 8px #00000014}.gallery-seg-btn:hover:not(.active){color:var(--text)}.gallery-pill{height:32px;padding:0 14px;border-radius:10px;font-size:12px;font-weight:700;color:var(--muted);background:var(--field-bg);border:1px solid var(--border);cursor:pointer;transition:background var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal);white-space:nowrap;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.gallery-pill:hover{color:var(--text);border-color:var(--border-strong)}.gallery-pill.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 3px 12px #1677ff38}.gallery-pill.active:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.gallery-selection-bar{display:flex;align-items:center;gap:14px;padding:10px 16px;background:var(--panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--accent-light);border-radius:var(--radius-md);animation:galSlideIn .3s ease both}.gallery-selection-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;font-weight:800;flex-shrink:0}.gallery-selection-actions{display:flex;gap:6px;flex-wrap:wrap;flex:1}.gallery-action-btn{height:32px;padding:0 14px;border-radius:8px;font-size:12px;font-weight:700;color:var(--text);background:var(--field-bg);border:1px solid var(--border);cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal);white-space:nowrap;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.gallery-action-btn:hover{border-color:var(--border-strong);box-shadow:0 2px 8px #0000000f}.gallery-action-btn--danger{color:var(--danger);border-color:#e5484d33}.gallery-action-btn--danger:hover{background:#e5484d14;border-color:#e5484d59}.gallery-controls{display:flex;flex-direction:column;gap:0;padding:0;background:none;border:none}.gallery-controls-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.gallery-controls-sep{width:1px;height:20px;background:var(--border);flex-shrink:0}.gallery-seg-btn .sort-arrow{font-size:11px;opacity:.8}.gallery-date-groups{display:flex;flex-direction:column;gap:28px}.gallery-date-section{animation:cardReveal .45s ease both}.gallery-date-header{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.gallery-date-title{font-family:"Bricolage Grotesque",var(--font-sans);font-size:18px;font-weight:700;color:var(--text);margin:0;letter-spacing:-.3px}.gallery-date-count{font-size:12px;font-weight:600;color:var(--muted);background:var(--panel);border:1px solid var(--border);padding:2px 8px;border-radius:999px}.gallery-grid{display:grid;gap:14px}.gallery-grid:not([data-size]){grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.gallery-grid[data-size="1"]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.gallery-grid[data-size="2"]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.gallery-grid[data-size="3"]{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.gallery-grid[data-size="4"]{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.gallery-grid[data-size="5"]{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.gallery-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;background:var(--panel);border:1px solid var(--border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .3s ease,border-color .25s ease;animation:cardReveal .45s ease both}@keyframes cardReveal{0%{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.gallery-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.gallery-card:active{transform:translateY(-1px) scale(.995)}.gallery-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light),var(--shadow-sm)}.gallery-card-select{position:absolute;top:10px;left:10px;width:28px;height:28px;border-radius:50%;background:#ffffffd9;border:2px solid rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;z-index:3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .18s ease,border-color .18s ease,transform .18s ease;cursor:pointer;box-shadow:0 2px 8px #0000001f}.gallery-card.selected .gallery-card-select{background:var(--accent);border-color:var(--accent);transform:scale(1.05)}.gallery-card-check{color:#fff;font-size:13px;font-weight:800;line-height:1}.gallery-card-thumb{width:100%;height:200px;object-fit:cover;display:block;transition:opacity .4s ease,transform .35s ease;will-change:opacity}.gallery-card:hover .gallery-card-thumb{transform:scale(1.03)}.gallery-card-placeholder{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background:var(--field-bg);color:var(--placeholder);font-size:12px;font-weight:600}.gallery-card-loading{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background:var(--field-bg);position:relative;overflow:hidden}.gallery-card-loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.06) 50%,transparent 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.gallery-card-loading>div{color:var(--placeholder);font-size:12px;font-weight:600;position:relative;z-index:1}.gallery-card-info{padding:10px 12px}.gallery-card-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.gallery-card-status{width:7px;height:7px;border-radius:50%;flex-shrink:0}.gallery-card-status.ready{background:var(--accent-2)}.gallery-card-status.processing{background:var(--warning);animation:statusPulse 2s ease-in-out infinite}.gallery-card-status.error{background:var(--danger)}.gallery-card-status.default{background:var(--placeholder)}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.4}}.gallery-card-rating{display:flex;align-items:center;margin-left:auto}.gallery-card-filename{margin:0;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);letter-spacing:-.1px}.gallery-card-date{margin:2px 0 0;font-size:12px;color:var(--muted, var(--gray-500));font-weight:500}.gallery-card-rating--unrated{opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease}.gallery-card:hover .gallery-card-rating--unrated,.gallery-card:focus-within .gallery-card-rating--unrated{opacity:1;visibility:visible}@media (hover: none){.gallery-card-rating--unrated{opacity:1;visibility:visible}}.gallery-card-skeleton{position:relative;width:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.gallery-card-preparing-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;background:#101828a6;color:#fff;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:-.1px}.gallery-grid.compact{gap:3px;grid-template-columns:repeat(auto-fill,minmax(155px,1fr))!important}@media (max-width: 768px){.gallery-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))!important}}.gallery-grid.compact .gallery-card{border:none;border-radius:4px;backdrop-filter:none;-webkit-backdrop-filter:none;background:transparent}.gallery-grid.compact .gallery-card:hover{transform:none;box-shadow:none;border-color:transparent}.gallery-grid.compact .gallery-card:hover .gallery-card-thumb{opacity:.88;transform:none}.gallery-grid.compact .gallery-card-info{display:none}.gallery-grid.compact .gallery-card-thumb,.gallery-grid.compact .gallery-card-placeholder,.gallery-grid.compact .gallery-card-loading{border-radius:4px}.gallery-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.gallery-skeleton-card{border-radius:var(--radius-lg);overflow:hidden;background:var(--panel);border:1px solid var(--border);animation:cardReveal .45s ease both}.gallery-skeleton-thumb{width:100%;height:200px;background:linear-gradient(90deg,var(--field-bg) 25%,var(--field-hover) 50%,var(--field-bg) 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.gallery-skeleton-info{padding:12px;display:flex;flex-direction:column;gap:8px}.gallery-skeleton-line{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--field-bg) 25%,var(--field-hover) 50%,var(--field-bg) 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite;width:80%}.gallery-skeleton-line.short{width:45%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.gallery-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;animation:galSlideIn .5s ease both}.gallery-error-icon{width:56px;height:56px;border-radius:16px;background:var(--color-error-bg);color:var(--danger);font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.gallery-error p{color:var(--muted);font-size:15px;font-weight:500;margin:0;text-align:center;max-width:400px}.gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;animation:galSlideIn .5s ease both;animation-delay:.1s}.gallery-empty-icon{width:80px;height:80px;border-radius:22px;background:var(--accent-light);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:20px}.gallery-empty h2{font-family:"Bricolage Grotesque",var(--font-sans);font-size:22px;font-weight:800;letter-spacing:-.5px;margin:0 0 16px;color:var(--text)}.gallery-empty-cta{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 24px;border-radius:12px;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent),#5856d6);border:none;cursor:pointer;box-shadow:0 4px 14px #1677ff40;transition:transform .2s ease,box-shadow .25s ease;backdrop-filter:none;-webkit-backdrop-filter:none}.gallery-empty-cta:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1677ff59;color:#fff;background:linear-gradient(135deg,var(--accent),#5856d6)}.gallery-empty-cta:active{transform:translateY(0) scale(.98)}.gallery-load-more-container{margin-top:32px;text-align:center;padding-bottom:16px}.gallery-load-more-btn{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 32px;border-radius:12px;font-size:14px;font-weight:700;color:var(--text);background:var(--panel);border:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;transition:transform .2s ease,box-shadow .25s ease,border-color .2s ease;box-shadow:none}.gallery-load-more-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.gallery-load-more-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.gallery-load-more-btn:disabled{opacity:.5;cursor:not-allowed}.gallery-load-more-loading{text-align:center;padding:24px;color:var(--muted);font-size:13px;font-weight:600}.gallery-observer-target{height:20px;margin-top:12px}.gallery-all-loaded{color:var(--placeholder);font-size:13px;font-weight:600;margin-top:12px;letter-spacing:-.1px}[data-theme=dark] .gallery-card-select{background:#282a36d9;border-color:#ffffff26}[data-theme=dark] .gallery-card.selected .gallery-card-select{background:var(--accent);border-color:var(--accent)}[data-theme=dark] .gallery-seg-btn.active{box-shadow:0 2px 10px #00000059}[data-theme=dark] .gallery-card-skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--surface-hover) 50%,var(--surface-sunken) 75%);background-size:200% 100%}[data-theme=dark] .gallery-pill.active{box-shadow:0 3px 14px #1677ff47}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .gallery-card-select{background:#282a36d9;border-color:#ffffff26}:root:not([data-theme=light]):not([data-theme=dark]) .gallery-card.selected .gallery-card-select{background:var(--accent);border-color:var(--accent)}:root:not([data-theme=light]):not([data-theme=dark]) .gallery-seg-btn.active{box-shadow:0 2px 10px #00000059}}@media (max-width: 768px){.gallery-header{gap:12px;margin-bottom:20px}.gallery-hero{flex-wrap:wrap;gap:10px}.gallery-title{font-size:26px;letter-spacing:-.8px}.gallery-toolbar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;padding-bottom:4px}.gallery-toolbar::-webkit-scrollbar{display:none}.gallery-toolbar-group{flex-shrink:0}.gallery-toolbar-group+.gallery-toolbar-group{margin-left:0}.gallery-controls-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;padding-bottom:4px}.gallery-controls-row::-webkit-scrollbar{display:none}.gallery-controls-row>*{flex-shrink:0}.gallery-selection-bar{flex-direction:column;gap:8px;align-items:stretch}.gallery-selection-count{align-self:flex-start}.gallery-selection-actions{flex-wrap:wrap;gap:6px}.gallery-grid,.gallery-skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(min(150px,calc((100% - 8px)/2)),1fr));gap:8px}.gallery-grid[data-size]{grid-template-columns:repeat(auto-fill,minmax(min(150px,calc((100% - 8px)/2)),1fr))}.gallery-card-thumb,.gallery-card-placeholder,.gallery-card-loading,.gallery-skeleton-thumb{height:150px}.gallery-card{border-radius:var(--radius-md)}.gallery-card:hover{transform:none}}@media (max-width: 480px){.gallery-header{gap:8px;margin-bottom:14px}.gallery-title{font-size:22px}.gallery-grid,.gallery-skeleton-grid{grid-template-columns:repeat(2,1fr);gap:6px}.gallery-grid[data-size]{grid-template-columns:repeat(2,1fr)}.gallery-card-thumb,.gallery-card-placeholder,.gallery-card-loading,.gallery-skeleton-thumb{height:120px}.gallery-date-header{gap:6px;margin-bottom:8px}.gallery-date-title{font-size:15px}}@media (min-width: 769px) and (max-width: 1024px){.gallery-grid,.gallery-skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(185px,1fr))}}@media (prefers-reduced-motion: reduce){.gallery-page,.gallery-header,.gallery-card,.gallery-skeleton-card,.gallery-empty,.gallery-error,.gallery-selection-bar{animation:none!important}.gallery-page,.gallery-header,.gallery-card,.gallery-empty,.gallery-error{opacity:1!important;transform:none!important}.gallery-card:hover,.gallery-card:hover .gallery-card-thumb{transform:none}.gallery-card-status.processing{animation:none}}.gallery-dashboard{padding:0 0 32px}.gallery-stats-bar{display:flex;gap:24px;padding:20px 24px;background:var(--card-bg, #f8f9fa);border-radius:12px;margin-bottom:28px}.gallery-stat{display:flex;flex-direction:column;gap:2px}.gallery-stat-value{font-size:1.5rem;font-weight:700;color:var(--text, #111);line-height:1.2}.gallery-stat-label{font-size:.78rem;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.04em}.gallery-section{margin-bottom:28px}.gallery-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding:0 4px}.gallery-section-title{font-size:1.15rem;font-weight:600;color:var(--text, #222);margin:0}.gallery-recent-scroll{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:4px 0 12px}.gallery-recent-card{cursor:pointer;border-radius:10px;overflow:hidden;background:var(--card-bg, #f8f9fa);transition:transform .15s,box-shadow .15s}.gallery-recent-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0000001f}.gallery-recent-thumb{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block}.gallery-recent-placeholder{width:100%;aspect-ratio:4 / 3;background:var(--skeleton, #e9ecef)}.gallery-recent-name{padding:6px 8px;font-size:.72rem;color:var(--text-secondary, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.gallery-year-card{cursor:pointer;border-radius:12px;overflow:hidden;background:var(--card-bg, #f8f9fa);border:1px solid var(--border, #e9ecef);transition:transform .15s,box-shadow .15s,border-color .15s}.gallery-year-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001f;border-color:var(--accent, #007bff)}.gallery-year-cover{position:relative;width:100%;aspect-ratio:16 / 10;overflow:hidden}.gallery-year-cover-img{width:100%;height:100%;object-fit:cover;display:block}.gallery-year-cover-empty{width:100%;height:100%;background:linear-gradient(135deg,var(--skeleton, #e9ecef) 0%,var(--card-bg, #f0f0f0) 100%)}.gallery-year-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;padding:12px;background:linear-gradient(transparent 40%,#0000008c)}.gallery-year-label{font-size:1.6rem;font-weight:800;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.4);letter-spacing:-.02em}.gallery-year-info{padding:8px 12px}.gallery-year-count{font-size:.82rem;color:var(--text-secondary, #666);font-weight:500}.gallery-browse-all-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border:2px dashed var(--border, #ddd);border-radius:12px;background:transparent;color:var(--text-secondary, #666);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s}.gallery-browse-all-btn:hover{border-color:var(--accent, #007bff);color:var(--accent, #007bff);background:var(--accent-bg, #f0f8ff)}.gallery-year-filter-badge{display:inline-flex;align-items:center;padding:4px 12px;background:var(--accent, #007bff);color:#fff;border-radius:20px;font-size:.85rem;font-weight:600}.gallery-dashboard-loading{padding:20px 0}.gallery-statchips{display:none}@media (max-width: 768px){.gallery-stats-bar{display:none}.gallery-statchips{display:block}}@media (max-width: 600px){.gallery-stats-bar{flex-direction:column;gap:12px;padding:16px}.gallery-year-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.gallery-recent-thumb,.gallery-recent-placeholder{aspect-ratio:4 / 3}}.gallery-upload-hint{display:flex;align-items:center;gap:10px;padding:10px 16px;margin:0 16px 12px;background:var(--color-info-bg, #e3f2fd);border:1px solid rgba(25,118,210,.15);border-radius:8px;font-size:13px;color:var(--color-text, #333);animation:gallery-hint-in .3s ease}@keyframes gallery-hint-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.gallery-upload-hint-icon{font-size:16px;flex-shrink:0;animation:gallery-hint-spin 3s linear infinite}@keyframes gallery-hint-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gallery-upload-hint-text{flex:1}.gallery-upload-hint-link{color:var(--color-info, #1976d2);text-decoration:none;white-space:nowrap;font-weight:500}.gallery-upload-hint-link:hover{text-decoration:underline}.gallery-upload-hint-dismiss{background:none;border:none;cursor:pointer;font-size:18px;color:var(--color-text-secondary, #888);padding:0 4px;line-height:1}.gallery-card{position:relative}.gallery-card-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5);pointer-events:none;z-index:1}.gallery-card-duration{position:absolute;bottom:4px;right:6px;background:#000000b3;color:#fff;padding:0 4px;border-radius:2px;font-size:11px;z-index:1}.gallery-filter-group{display:flex;align-items:center;gap:4px}.gallery-filter-btn{padding:4px 14px;border:1px solid var(--color-border, #ddd);border-radius:16px;background:var(--color-bg, #fff);color:var(--color-text-secondary, #666);cursor:pointer;font-size:13px;transition:all .15s}.gallery-filter-btn:hover{background:var(--color-bg-hover, #f0f0f0)}.gallery-filter-btn.active{background:var(--color-primary, #4a7cf7);color:#fff;border-color:var(--color-primary, #4a7cf7)}.memories-page{padding:1rem 1.5rem 2rem;max-width:1400px;margin:0 auto}.memories-header{display:flex;align-items:center;gap:12px;margin-bottom:1.25rem}.memories-title{font-size:1.5rem;font-weight:700;color:var(--text, #222);margin:0}.memories-date-badge{padding:4px 12px;border-radius:999px;background:var(--accent-light, #e7f1ff);color:var(--accent, #007bff);font-size:.85rem;font-weight:600}.memories-loading,.memories-empty{padding:3rem 1.5rem;text-align:center;color:var(--text-secondary, #666)}.memories-empty h2{color:var(--text, #222);margin:0 0 .75rem}.memories-empty-hint{font-size:.85rem;color:var(--text-secondary, #888)}.memories-year{margin-bottom:1.75rem}.memories-year-header{display:flex;align-items:baseline;gap:10px;margin-bottom:.6rem}.memories-year-title{font-size:1.15rem;font-weight:600;color:var(--text, #222);margin:0}.memories-year-ago{font-size:.85rem;font-weight:600;color:var(--accent, #007bff)}.memories-year-count{font-size:.8rem;color:var(--text-secondary, #666)}.memories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.memories-tile{position:relative;cursor:pointer;border-radius:10px;overflow:hidden;background:var(--card-bg, #f8f9fa);transition:transform .15s,box-shadow .15s}.memories-tile:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0000001f}.memories-tile-img{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.memories-tile-placeholder{width:100%;aspect-ratio:1 / 1;background:var(--skeleton, #e9ecef)}.memories-tile-placeholder--loading{animation:memories-pulse 1.2s ease-in-out infinite}.memories-tile-play{position:absolute;right:6px;bottom:6px;width:24px;height:24px;border-radius:50%;background:#0000008c;color:#fff;font-size:.6rem;display:flex;align-items:center;justify-content:center;pointer-events:none}@keyframes memories-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (max-width: 768px){.memories-page{padding:.75rem .75rem 1.5rem}.memories-grid{grid-template-columns:repeat(3,1fr);gap:8px}}.map-view-container{width:100%;height:100%;position:relative}.map-cluster-icon-wrapper{background:transparent!important;border:none!important}.map-cluster-icon{display:flex;align-items:center;justify-content:center;background:var(--panel);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:2px solid var(--accent);border-radius:50%;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.map-cluster-icon:hover{transform:scale(1.1)}.map-cluster-count{font-weight:700;color:var(--accent);line-height:1;font-family:var(--font-sans)}.map-popup-content{display:flex;flex-direction:column;gap:8px;min-width:200px;background-color:var(--panel-solid);color:var(--text)}.map-popup-thumbnail{width:100%;max-width:200px;height:auto;border-radius:var(--radius-sm);object-fit:cover}.map-popup-info{display:flex;flex-direction:column;gap:4px}.map-popup-filename{font-weight:600;font-size:14px;word-break:break-word;color:var(--text)}.map-popup-date{font-size:12px;color:var(--muted)}.map-popup-button{margin-top:8px;padding:6px 12px;background-color:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:12px;font-weight:500;transition:background-color var(--transition-fast);min-height:28px}.map-popup-button:hover{background-color:var(--accent-hover)}.map-marker-highlighted{filter:drop-shadow(0 0 8px rgba(255,193,7,.8));z-index:1000!important}:global(.leaflet-popup-content-wrapper){background-color:var(--panel-solid);color:var(--text);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}:global(.leaflet-popup-tip){background-color:var(--panel-solid)}:global(.leaflet-popup-content){color:var(--text);margin:0}.map-event-icon{background:transparent!important;border:none!important}.map-event-marker{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:24px;background:var(--panel-solid);border-radius:50%;box-shadow:var(--shadow-sm);border:2px solid var(--accent)}.map-event-marker.map-event-level-2{border-color:var(--accent-2);background:var(--color-success-bg)}.map-event-marker.map-event-level-1{border-color:var(--warning);background:var(--color-warning-bg)}.map-event-marker.map-event-level-0{border-color:var(--muted);background:var(--field-bg)}.map-popup-event{min-width:220px}.map-popup-event-title{font-weight:600;font-size:14px;color:var(--text);margin-bottom:4px}.map-popup-event-location{font-size:13px;color:var(--muted)}.map-popup-event-meta{font-size:12px;color:var(--accent-2);font-weight:500;margin-top:4px}.map-route-arrow{background:transparent!important;border:none!important}@media (max-width: 768px){.map-popup-button{min-height:var(--control-h);padding:8px 16px;font-size:14px}.map-popup-thumbnail{max-width:150px}}.album-table-view{display:flex;flex-direction:column;height:100%;background:var(--bg-primary, #fff)}.album-table-loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-secondary, #6c757d)}.album-table-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color, #e9ecef);flex-shrink:0}.album-table-title{display:flex;align-items:baseline;gap:.75rem}.album-table-title h2{margin:0;font-size:1.25rem;color:var(--text-primary, #333)}.album-table-count{color:var(--text-secondary, #6c757d);font-size:.9rem}.album-table-actions{display:flex;gap:.5rem}.album-table-btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s;background:var(--primary-color, #007bff);color:#fff}.album-table-btn:hover{background:var(--primary-hover, #0e63e0)}.album-table-btn-secondary{background:var(--bg-secondary, #6c757d)}.album-table-btn-secondary:hover{background:var(--text-secondary, #545b62)}.album-table-btn-icon{padding:.5rem .75rem;min-width:auto}.album-table-btn-icon:disabled{opacity:.6;cursor:not-allowed}.album-table-container{flex:1;overflow:auto;padding:0 1rem 1rem}.album-table{width:100%;border-collapse:collapse;font-size:.9rem}.album-table-th{position:sticky;top:0;background:var(--bg-secondary, #f8f9fa);padding:.75rem 1rem;text-align:left;font-weight:600;color:var(--text-primary, #333);border-bottom:2px solid var(--border-color, #dee2e6);white-space:nowrap;z-index:1}.album-table-th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.album-table-th.sortable:hover{background:var(--bg-hover, #e9ecef)}.album-table-row{cursor:pointer;transition:background-color .15s}.album-table-row:hover{background:var(--bg-hover, #f8f9fa)}.album-table-row:nth-child(2n){background:var(--bg-alt, #fafafa)}.album-table-row:nth-child(2n):hover{background:var(--bg-hover, #f0f0f0)}.album-table-td{padding:.6rem 1rem;border-bottom:1px solid var(--border-color, #e9ecef);color:var(--text-primary, #333);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-table-filename{font-weight:500;color:var(--primary-color, #007bff)}.album-table-empty{text-align:center;padding:3rem;color:var(--text-secondary, #6c757d)}.album-table-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.album-table-modal{background:var(--bg-primary, white);border-radius:8px;padding:1.5rem;max-width:500px;width:90%;max-height:80vh;display:flex;flex-direction:column}.album-table-modal h3{margin:0 0 1rem;color:var(--text-primary, #333)}.album-table-column-list{flex:1;overflow-y:auto;max-height:400px;border:1px solid var(--border-color, #e9ecef);border-radius:4px;padding:.5rem}.album-table-column-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;cursor:pointer;border-radius:4px}.album-table-column-item:hover{background:var(--bg-hover, #f8f9fa)}.album-table-column-item input{width:18px;height:18px}.album-table-column-item span{color:var(--text-primary, #333);font-family:monospace;font-size:.9rem}.album-table-no-keys{text-align:center;padding:2rem;color:var(--text-secondary, #6c757d)}.album-table-modal-actions{display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #e9ecef)}.album-table-modal-wide{max-width:700px}.album-table-column-search{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color, #e9ecef);border-radius:6px;font-size:.9rem;margin-bottom:1rem}.album-table-column-search:focus{outline:none;border-color:var(--primary-color, #007bff)}.album-table-column-group{margin-bottom:.5rem}.album-table-column-group-header{display:flex;align-items:center;gap:.5rem;padding:.5rem;cursor:pointer;background:var(--bg-secondary, #f8f9fa);border-radius:4px;-webkit-user-select:none;user-select:none}.album-table-column-group-header:hover{background:var(--bg-hover, #e9ecef)}.album-table-column-arrow{font-size:.7rem;color:var(--text-secondary, #6c757d);transition:transform .2s}.album-table-column-arrow.expanded{transform:rotate(90deg)}.album-table-column-group-name{font-weight:600;color:var(--text-primary, #333)}.album-table-column-group-count{font-size:.8rem;color:var(--text-secondary, #6c757d);margin-left:auto}.album-table-column-group-items{padding-left:1.5rem;margin-top:.25rem}.album-table-column-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;cursor:pointer;border-radius:4px}.album-table-column-label{color:var(--text-primary, #333);font-size:.9rem}.album-table-column-key{font-size:.75rem;color:var(--text-secondary, #adb5bd);font-family:monospace;margin-left:auto}.album-table-selection-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--primary-color, #007bff);color:#fff;flex-shrink:0}.album-table-selection-count{font-weight:500}.album-table-selection-actions{display:flex;gap:.5rem}.album-table-btn-action{background:#fff3;border:1px solid rgba(255,255,255,.3)}.album-table-btn-action:hover{background:#ffffff4d}.album-table-th-checkbox,.album-table-td-checkbox{width:40px;text-align:center}.album-table-td-checkbox input,.album-table-th-checkbox input{width:18px;height:18px;cursor:pointer}.album-table-row.selected{background:var(--primary-bg, rgba(0, 123, 255, .1))!important}.album-table-row.focused{outline:2px solid var(--primary-color, #007bff);outline-offset:-2px}.album-table-row.focused.selected{outline-color:var(--primary-hover, #0e63e0)}.album-table-view:focus{outline:none}.album-table-view:focus-visible{outline:none}.album-table-modal-subtitle{color:var(--text-secondary, #6c757d);margin-bottom:1rem;font-size:.9rem}.album-table-form-group{margin-bottom:1rem}.album-table-form-group label{display:block;margin-bottom:.25rem;font-weight:500;color:var(--text-primary, #333)}.album-table-input,.album-table-select{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color, #e9ecef);border-radius:6px;font-size:.9rem}.album-table-input:focus,.album-table-select:focus{outline:none;border-color:var(--primary-color, #007bff)}.album-table-hint{display:block;margin-top:.25rem;font-size:.8rem;color:var(--text-secondary, #6c757d)}.album-table-no-templates{text-align:center;padding:1rem;color:var(--text-secondary, #6c757d);background:var(--bg-secondary, #f8f9fa);border-radius:6px}.album-table-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.album-table-size-control{display:flex;align-items:center;gap:.5rem;background:var(--bg-secondary, #f8f9fa);padding:.35rem .75rem;border-radius:6px}.album-table-size-label{font-size:.85rem;color:var(--text-secondary, #6c757d);white-space:nowrap}.album-table-size-slider{width:80px;cursor:pointer}.album-table-size-value{font-size:.8rem;color:var(--text-secondary, #6c757d);min-width:40px;text-align:center}.album-table-th-thumb{width:1%;white-space:nowrap}.album-table-td-thumb{padding:.35rem .5rem;width:1%}.album-table-thumbnail{border-radius:4px;overflow:hidden;background:var(--bg-secondary, #f8f9fa);display:flex;align-items:center;justify-content:center;flex-shrink:0}.album-table-thumb-img{width:100%;height:100%;object-fit:cover}.album-table-thumb-placeholder{color:var(--text-secondary, #adb5bd);font-size:.8rem}.album-table-column-group-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem;background:var(--bg-secondary, #f8f9fa);border-radius:4px;-webkit-user-select:none;user-select:none}.album-table-column-group-title{display:flex;align-items:center;gap:.5rem;cursor:pointer;flex:1}.album-table-column-group-title:hover{opacity:.8}.album-table-column-group-buttons{display:flex;gap:.25rem}.album-table-group-btn{width:24px;height:24px;padding:0;border:1px solid var(--border-color, #dee2e6);border-radius:4px;background:var(--bg-primary, white);cursor:pointer;font-size:1rem;line-height:1;color:var(--text-primary, #333);display:flex;align-items:center;justify-content:center}.album-table-group-btn:hover:not(:disabled){background:var(--primary-color, #007bff);border-color:var(--primary-color, #007bff);color:#fff}.album-table-group-btn:disabled{opacity:.4;cursor:not-allowed}.album-table-btn-link{background:none;border:none;color:var(--primary-color, #007bff);cursor:pointer;font-size:.85rem;padding:0;text-decoration:underline}.album-table-btn-link:hover{color:var(--primary-hover, #0e63e0)}.album-table-clear-filters{margin-left:.5rem}.album-table-th-filterable{position:relative}.album-table-th-content{display:flex;align-items:center;gap:.25rem}.album-table-th-sort{cursor:pointer;flex:1;white-space:nowrap}.album-table-th-sort:hover{color:var(--primary-color, #007bff)}.album-table-filter-container{position:relative}.album-table-filter-btn{background:none;border:none;cursor:pointer;padding:.15rem .3rem;font-size:.6rem;color:var(--text-secondary, #adb5bd);border-radius:2px;transition:all .15s}.album-table-filter-btn:hover{background:var(--bg-hover, #e9ecef);color:var(--text-primary, #333)}.album-table-filter-btn.active{color:var(--primary-color, #007bff);background:#007bff1a}.album-table-filter-dropdown{position:absolute;top:100%;left:0;min-width:220px;max-width:300px;background:var(--bg-primary, white);border:1px solid var(--border-color, #dee2e6);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:100;display:flex;flex-direction:column}.album-table-filter-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--border-color, #e9ecef)}.album-table-filter-title{font-weight:600;font-size:.85rem;color:var(--text-primary, #333)}.album-table-filter-close{background:none;border:none;cursor:pointer;color:var(--text-secondary, #6c757d);font-size:.9rem;padding:.15rem .3rem;border-radius:3px}.album-table-filter-close:hover{background:var(--bg-hover, #e9ecef);color:var(--text-primary, #333)}.album-table-filter-search{margin:.5rem;padding:.4rem .6rem;border:1px solid var(--border-color, #dee2e6);border-radius:4px;font-size:.85rem}.album-table-filter-search:focus{outline:none;border-color:var(--primary-color, #007bff)}.album-table-filter-actions{display:flex;gap:.5rem;padding:0 .5rem .5rem;border-bottom:1px solid var(--border-color, #e9ecef)}.album-table-filter-action-btn{flex:1;padding:.3rem .5rem;font-size:.75rem;background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #dee2e6);border-radius:4px;cursor:pointer;color:var(--text-primary, #333)}.album-table-filter-action-btn:hover{background:var(--bg-hover, #e9ecef)}.album-table-filter-values{max-height:250px;overflow-y:auto;padding:.25rem}.album-table-filter-value{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;cursor:pointer;border-radius:3px}.album-table-filter-value:hover{background:var(--bg-hover, #f8f9fa)}.album-table-filter-value input{width:16px;height:16px;cursor:pointer}.album-table-filter-value-text{font-size:.85rem;color:var(--text-primary, #333);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-table-filter-no-values{padding:1rem;text-align:center;color:var(--text-secondary, #6c757d);font-size:.85rem}.album-map-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1200}.album-map-panel{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:min(520px,92vw);background:var(--panel, #fff);border-left:1px solid var(--border, #e5e7eb);box-shadow:-8px 0 24px #0000002e;z-index:1201;display:flex;flex-direction:column;animation:album-map-slide-in .22s ease}@keyframes album-map-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.album-map-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb);flex:0 0 auto}.album-map-panel-title{display:flex;flex-direction:column;font-weight:600;font-size:1rem;line-height:1.2}.album-map-panel-subtitle{font-weight:400;font-size:.8rem;color:var(--muted, #6b7280);margin-top:2px}.album-map-panel-close{background:none;border:none;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--muted, #6b7280);padding:0 4px}.album-map-panel-close:hover{color:var(--text, #111)}.album-map-panel-body{flex:1 1 auto;min-height:0;display:flex}.album-map-panel-map{flex:1 1 auto;min-height:0}.album-map-panel-map .map-view-container{height:100%;width:100%}.album-map-panel-state{flex:1 1 auto;display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem;color:var(--muted, #6b7280)}.album-map-panel-error{color:var(--danger, #dc2626)}.batch-ai-modal{max-width:520px}.batch-ai-info{margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text-secondary)}.batch-ai-config{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.batch-ai-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.batch-ai-field>label{font-size:.85rem;font-weight:500;color:var(--color-text-secondary)}.batch-ai-field input[type=number]{width:80px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem;background-color:var(--color-bg-primary);color:var(--color-text-primary);min-height:36px}.batch-ai-field select{width:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem;background-color:var(--color-bg-primary);color:var(--color-text-primary);min-height:36px}.batch-ai-field input[type=number]:focus{outline:none;border-color:var(--color-primary)}.batch-ai-field select:focus{outline:none;border-color:var(--color-primary)}.batch-ai-radio-group{display:flex;gap:var(--spacing-xs)}.batch-ai-radio{display:flex;align-items:center;gap:6px;padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;color:var(--color-text-primary);transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.batch-ai-radio:hover{border-color:var(--color-primary)}.batch-ai-radio.active{border-color:var(--color-primary);background-color:var(--color-primary-light, rgba(0, 123, 255, .08));color:var(--color-primary);font-weight:500}.batch-ai-radio input[type=radio]{display:none}.batch-ai-checks{display:flex;flex-direction:column;gap:var(--spacing-sm)}.batch-ai-checks label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.9rem;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.batch-ai-checks input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary)}.batch-ai-progress-info{margin-bottom:var(--spacing-md);font-size:.9rem;color:var(--color-text-secondary);text-align:center}.batch-ai-batches{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--spacing-md);max-height:280px;overflow-y:auto}.batch-ai-batch-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:6px var(--spacing-sm);border-radius:var(--radius-sm);font-size:.85rem;background-color:var(--color-bg-secondary);transition:background-color .2s}.batch-ai-batch-row.running{background-color:var(--color-primary-light, rgba(0, 123, 255, .08))}.batch-ai-batch-row.done{background-color:#28a74514}.batch-ai-batch-row.error{background-color:#dc354514}.batch-ai-batch-num{font-weight:600;color:var(--color-text-tertiary);min-width:28px;font-size:.8rem}.batch-ai-batch-label{flex:1;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-ai-batch-status{min-width:20px;text-align:center;font-size:1rem}.batch-ai-batch-row.done .batch-ai-batch-status{color:var(--color-success, #28a745)}.batch-ai-batch-row.error .batch-ai-batch-status{color:var(--color-error)}.batch-ai-batch-row.running .batch-ai-batch-status{color:var(--color-primary);animation:blink 1s infinite}.batch-ai-result{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.batch-ai-result-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:.9rem}.batch-ai-result-row span{color:var(--color-text-secondary)}.batch-ai-result-row strong{color:var(--color-text-primary)}.batch-ai-warnings{margin-top:var(--spacing-sm)}.batch-ai-warning{padding:var(--spacing-xs) var(--spacing-sm);font-size:.8rem;color:var(--color-warning, #856404);background-color:#ffc1071a;border-radius:var(--radius-sm);margin-bottom:2px}.batch-ai-error{padding:var(--spacing-md);margin-bottom:var(--spacing-lg);background-color:#dc354514;border:1px solid rgba(220,53,69,.2);border-radius:var(--radius-sm);color:var(--color-error);font-size:.9rem;word-break:break-word}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@media (max-width: 768px){.batch-ai-modal{max-width:100%}.batch-ai-radio-group{flex-direction:column}.batch-ai-batches{max-height:200px}}.order-panel{position:fixed;right:0;top:0;bottom:0;width:340px;background:var(--bg-primary, #fff);border-left:1px solid var(--color-border, #e0e0e0);display:flex;flex-direction:column;z-index:100;box-shadow:-2px 0 8px #00000014;overflow:hidden}.order-panel-header{padding:16px;border-bottom:1px solid var(--color-border, #e0e0e0);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.order-panel-header h3{margin:0;font-size:1rem;font-weight:600}.order-panel-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-secondary, #666);padding:4px 8px;border-radius:4px}.order-panel-close:hover{background:var(--bg-hover, #f5f5f5)}.order-panel-default-format{padding:12px 16px;border-bottom:1px solid var(--color-border, #e0e0e0);flex-shrink:0}.order-panel-default-format label{display:block;font-size:.8rem;color:var(--text-secondary, #666);margin-bottom:4px}.order-panel-default-format select{width:100%;padding:6px 8px;border:1px solid var(--color-border, #ccc);border-radius:6px;font-size:.85rem;background:var(--bg-primary, #fff)}.order-panel-items{flex:1;overflow-y:auto;padding:8px 0}.order-panel-empty{padding:32px 16px;text-align:center;color:var(--text-secondary, #999);font-size:.9rem}.order-panel-item{display:flex;gap:10px;padding:8px 16px;border-bottom:1px solid var(--color-border-light, #f0f0f0);align-items:flex-start}.order-panel-item-thumb{width:56px;height:56px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--bg-secondary, #f0f0f0)}.order-panel-item-info{flex:1;min-width:0}.order-panel-item-name{font-size:.8rem;color:var(--text-secondary, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.order-panel-item-format{margin-bottom:4px}.order-panel-item-format select{width:100%;padding:3px 6px;border:1px solid var(--color-border, #ddd);border-radius:4px;font-size:.78rem}.order-panel-item-qty{display:flex;align-items:center;gap:8px}.order-panel-item-qty button{width:26px;height:26px;border:1px solid var(--color-border, #ddd);border-radius:4px;background:var(--bg-primary, #fff);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;color:var(--text-primary, #333)}.order-panel-item-qty button:hover{background:var(--bg-hover, #f5f5f5)}.order-panel-item-qty span{font-size:.9rem;font-weight:600;min-width:20px;text-align:center}.order-panel-item-remove{background:none;border:none;color:var(--color-danger, #e53935);cursor:pointer;font-size:1rem;padding:2px;flex-shrink:0;margin-top:4px}.order-panel-summary{padding:16px;border-top:1px solid var(--color-border, #e0e0e0);flex-shrink:0}.order-panel-summary-row{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.9rem}.order-panel-summary-total{font-weight:700;font-size:1rem}.order-panel-submit{width:100%;padding:10px;border:none;border-radius:8px;background:var(--color-primary, #007bff);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;margin-top:8px;transition:background .2s}.order-panel-submit:hover:not(:disabled){background:var(--color-primary-hover, #0e63e0)}.order-panel-submit:disabled{opacity:.6;cursor:not-allowed}.order-panel-cancel{width:100%;padding:8px;border:1px solid var(--color-border, #ddd);border-radius:8px;background:transparent;color:var(--text-secondary, #666);font-size:.85rem;cursor:pointer;margin-top:6px}.order-panel-cancel:hover{background:var(--bg-hover, #f5f5f5)}.album-photo-card.order-selected{border:3px solid #4CAF50!important;box-shadow:0 0 0 1px #4caf50}.album-photo-card.order-selected .album-photo-check-order{position:absolute;top:6px;right:6px;width:22px;height:22px;background:#4caf50;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:700}.gallery-with-order-panel{margin-right:340px;transition:margin-right .2s ease}.order-mode-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--color-border, #ddd);border-radius:6px;background:var(--bg-primary, #fff);cursor:pointer;font-size:.82rem;color:var(--text-primary, #333);transition:all .2s}.order-mode-btn:hover{border-color:var(--color-primary, #007bff);color:var(--color-primary, #007bff)}.order-mode-btn.active{background:#4caf50;color:#fff;border-color:#4caf50}.albums-page{padding:0;animation:albFadeIn .4s ease both}@keyframes albFadeIn{0%{opacity:0}to{opacity:1}}.albums-header{display:flex;flex-direction:column;gap:14px;margin-bottom:28px;animation:albSlideIn .5s ease both}@keyframes albSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.albums-hero{display:flex;align-items:baseline;gap:14px}.albums-title{font-family:"Bricolage Grotesque",var(--font-sans);font-size:clamp(28px,4vw,42px);font-weight:800;letter-spacing:-1px;line-height:1.1;margin:0;color:var(--text)}.albums-count-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:700;color:var(--muted);background:var(--panel);border:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);letter-spacing:-.2px;white-space:nowrap;flex-shrink:0}.albums-count-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #1677ff1f;flex-shrink:0}.albums-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.albums-toolbar-group{display:flex;align-items:center;gap:8px}.albums-toolbar-group+.albums-toolbar-group{margin-left:auto}.albums-search{height:var(--control-h, 44px);padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-sm, 10px);background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);font-size:14px;min-width:220px;transition:border-color .2s,box-shadow .2s;outline:none}.albums-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1677ff1a}.albums-search::placeholder{color:var(--muted);opacity:.7}.albums-pill{height:var(--control-h, 44px);padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-sm, 10px);background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.albums-pill:hover{border-color:var(--accent);background:#1677ff0d}.albums-pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}.albums-pill.accent{background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 80%,#6366f1) 100%);color:#fff;border:none;font-weight:700}.albums-pill.accent:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:var(--shadow-md)}.albums-pill.smart{background:linear-gradient(135deg,#16a34a,#16a34a);color:#fff;border:none;font-weight:700}.albums-pill.smart:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:var(--shadow-md)}.albums-pill.danger{color:var(--danger, #e5484d);border-color:#e5484d40}.albums-pill.danger:hover{background:#e5484d14;border-color:var(--danger, #e5484d)}.albums-segmented{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm, 10px);padding:3px;gap:2px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.albums-seg-btn{padding:0 14px;height:36px;border:none;border-radius:calc(var(--radius-sm, 10px) - 3px);background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.albums-seg-btn:hover{color:var(--text);background:#00000008}.albums-seg-btn.active{background:var(--accent);color:#fff;box-shadow:0 1px 3px #1677ff40}.albums-seg-btn .seg-icon{font-size:14px;line-height:1}.albums-seg-btn .sort-arrow{font-size:11px;opacity:.8}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.album-card{border-radius:var(--radius-md, 16px);overflow:hidden;cursor:pointer;background:var(--panel);border:1px solid var(--border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.22,1,.36,1),border-color .2s;animation:cardReveal .45s cubic-bezier(.22,1,.36,1) both;position:relative}.album-card:hover{transform:translateY(-4px) scale(1.015);box-shadow:var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, .12));border-color:var(--accent)}.album-card-cover{width:100%;height:180px;object-fit:cover;display:block}.album-card-placeholder{width:100%;height:180px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1677ff0a,#5856d60f);color:var(--muted)}.album-card-placeholder svg{opacity:.4}.album-card-body{padding:14px 16px 16px}.album-card-tags{display:flex;align-items:center;gap:6px;margin-bottom:6px}.album-card-smart-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;background:linear-gradient(135deg,#16a34a,#16a34a);color:#fff}.album-card-name{margin:0;font-family:"Bricolage Grotesque",var(--font-sans);font-size:16px;font-weight:700;letter-spacing:-.3px;color:var(--text);line-height:1.3}.album-card-desc{margin:4px 0 0;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}.album-card-count{margin:6px 0 0;font-size:12px;font-weight:600;color:#16a34a}.album-detail{animation:albFadeIn .35s ease both}.album-detail-sticky{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:10px 0;margin-bottom:16px;border-bottom:1px solid var(--border)}.album-detail-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.album-back-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:all .2s;flex-shrink:0;padding:0}.album-back-btn:hover{color:var(--text);border-color:var(--accent);background:#1677ff0d}.album-back-btn svg{width:16px;height:16px}.album-detail-title{font-family:"Bricolage Grotesque",var(--font-sans);font-size:clamp(18px,2.5vw,26px);font-weight:800;letter-spacing:-.5px;line-height:1.1;margin:0;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.album-smart-label{display:inline-flex;align-items:center;padding:2px 7px;border-radius:6px;font-size:9px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;background:linear-gradient(135deg,#16a34a,#16a34a);color:#fff;flex-shrink:0}.album-meta-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--muted);background:var(--panel);border:1px solid var(--border);font-family:var(--font-mono, monospace);white-space:nowrap;flex-shrink:0}.album-detail-actions{display:flex;gap:4px;flex-shrink:0;margin-left:auto}.album-action-icon{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s;padding:0;flex-shrink:0}.album-action-icon:hover{border-color:var(--accent);background:#1677ff0d}.album-action-icon.accent{background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 80%,#6366f1) 100%);color:#fff;border:none}.album-action-icon.accent:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:var(--shadow-md)}.album-action-icon.smart{background:linear-gradient(135deg,#16a34a,#16a34a);color:#fff;border:none}.album-action-icon.danger{color:var(--danger, #e5484d);border-color:#e5484d33}.album-action-icon.danger:hover{background:#e5484d14;border-color:var(--danger, #e5484d)}.album-description{color:var(--muted);font-size:14px;margin:0;line-height:1.5;max-width:680px}.album-event-desc{color:var(--text);font-size:13px;margin:0;font-style:italic;opacity:.8}.album-controls{display:flex;flex-direction:column;gap:0;margin-bottom:0;padding:0;background:none;border:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0}.album-controls-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.album-controls-row+.album-controls-row{padding-top:0;border-top:none}.album-controls-sep{width:1px;height:20px;background:var(--border);flex-shrink:0}.album-controls-label{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.3px;text-transform:uppercase;flex-shrink:0}.album-size-slider{display:flex;align-items:center;gap:6px;min-width:100px}.album-size-slider input[type=range]{flex:1;height:4px;border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);outline:none;cursor:pointer}.album-size-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 1px 4px #00000026}.album-size-value{font-size:12px;font-weight:700;color:var(--muted);min-width:20px;text-align:center;font-family:var(--font-mono, monospace)}.album-selection-toggle{opacity:.45;transition:all .2s}.album-selection-toggle:hover{opacity:.75}.album-selection-toggle.active{opacity:1}.album-selection-count-inline{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:800;background:var(--border);color:var(--muted);flex-shrink:0;transition:all .25s;margin-left:-2px}.album-selection-count-inline.active{background:var(--accent);color:#fff;transform:scale(1.05)}.album-selection-bar{display:flex;align-items:center;gap:6px;padding:8px 14px;margin-bottom:16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md, 16px);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);animation:albSlideIn .3s ease both}.album-selection-actions{display:flex;gap:6px;flex-wrap:wrap}.album-action-btn{height:36px;padding:0 14px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:5px}.album-action-btn:hover{border-color:var(--accent);background:#1677ff0d}.album-action-btn--danger{color:var(--danger, #e5484d);border-color:#e5484d40}.album-action-btn--danger:hover{background:#e5484d14;border-color:var(--danger, #e5484d)}.album-photo-grid{display:grid;gap:16px}.album-photo-grid[data-size="1"]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.album-photo-grid[data-size="2"]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.album-photo-grid[data-size="3"]{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.album-photo-grid[data-size="4"]{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.album-photo-grid[data-size="5"]{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.album-photo-card{border-radius:var(--radius-md, 16px);overflow:hidden;cursor:pointer;background:var(--panel);border:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:relative;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.22,1,.36,1),border-color .2s;animation:cardReveal .45s cubic-bezier(.22,1,.36,1) both}.album-photo-card:hover{transform:translateY(-3px) scale(1.01);box-shadow:var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, .12));border-color:#1677ff4d}.album-photo-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px #1677ff33}.album-photo-select{position:absolute;top:10px;left:10px;z-index:5;width:26px;height:26px;border-radius:8px;border:2px solid rgba(255,255,255,.7);background:#00000040;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.album-photo-card.selected .album-photo-select{background:var(--accent);border-color:var(--accent)}.album-photo-check{color:#fff;font-size:14px;font-weight:800;line-height:1}.album-photo-remove{position:absolute;top:10px;right:10px;z-index:5;width:28px;height:28px;border-radius:8px;border:none;background:#e5484dd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,transform .2s;transform:scale(.9)}.album-photo-card:hover .album-photo-remove{opacity:1;transform:scale(1)}.album-photo-remove--selection{opacity:1;transform:scale(1);background:#f59e0bf2;color:#332800;box-shadow:0 2px 8px #f59e0b59}.album-photo-remove--selection:hover{background:#ffe34ffa}.album-photo-thumb{width:100%;display:block;object-fit:cover;transition:transform .4s cubic-bezier(.22,1,.36,1)}.album-photo-thumb[data-fit=contain]{object-fit:contain;background:var(--field-bg, rgba(0, 0, 0, .03))}.album-photo-card:hover .album-photo-thumb{transform:scale(1.03)}.album-photo-loading,.album-photo-placeholder{width:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;background:var(--field-bg, rgba(0, 0, 0, .03))}.album-photo-info{padding:10px 12px 12px}.album-photo-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.album-photo-status{width:7px;height:7px;border-radius:50%;flex-shrink:0}.album-photo-status.ready{background:#16a34a;box-shadow:0 0 0 2px #16a34a26}.album-photo-status.processing{background:#ff9f0a;box-shadow:0 0 0 2px #ff9f0a26}.album-photo-status.error{background:#e5484d;box-shadow:0 0 0 2px #e5484d26}.album-photo-status.default{background:var(--muted)}.album-photo-rating{display:flex;align-items:center}.album-photo-filename{margin:0;font-size:12px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.albums-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.albums-skeleton-card{border-radius:var(--radius-md, 16px);overflow:hidden;background:var(--panel);border:1px solid var(--border);animation:albSkeleton 1.2s ease-in-out infinite alternate}@keyframes albSkeleton{0%{opacity:.5}to{opacity:1}}.albums-skeleton-cover{width:100%;height:180px;background:linear-gradient(90deg,#0000000a 25%,#00000014,#0000000a 75%);background-size:200% 100%;animation:albShimmer 1.6s ease-in-out infinite}@keyframes albShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.albums-skeleton-body{padding:16px}.albums-skeleton-line{height:14px;border-radius:6px;background:#0000000f;margin-bottom:8px}.albums-skeleton-line.short{width:50%}.album-photos-skeleton{display:grid;gap:16px}.album-photos-skeleton[data-size="1"]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.album-photos-skeleton[data-size="2"]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.album-photos-skeleton[data-size="3"]{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.album-photos-skeleton[data-size="4"]{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.album-photos-skeleton[data-size="5"]{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.album-photo-skeleton{border-radius:var(--radius-md, 16px);overflow:hidden;background:var(--panel);border:1px solid var(--border);animation:albSkeleton 1.2s ease-in-out infinite alternate}.album-photo-skeleton-thumb{width:100%;height:200px;background:linear-gradient(90deg,#0000000a 25%,#00000014,#0000000a 75%);background-size:200% 100%;animation:albShimmer 1.6s ease-in-out infinite}.album-photo-skeleton-info{padding:12px}.albums-empty{text-align:center;padding:60px 24px;animation:albFadeIn .5s ease both}.albums-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,#1677ff14,#5856d614);color:var(--muted);margin-bottom:16px}.albums-empty h2{font-family:"Bricolage Grotesque",var(--font-sans);font-size:20px;font-weight:700;color:var(--text);margin:0 0 8px}.albums-empty p{color:var(--muted);font-size:14px;margin:0 0 20px}.albums-empty-actions{display:flex;gap:10px;justify-content:center}.albums-empty-cta{height:var(--control-h, 44px);padding:0 24px;border:none;border-radius:var(--radius-sm, 10px);background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 80%,#6366f1) 100%);color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.albums-empty-cta:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:var(--shadow-md)}.albums-error{text-align:center;padding:60px 24px;animation:albFadeIn .5s ease both}.albums-error-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:#e5484d1a;color:#e5484d;font-size:24px;font-weight:800;margin-bottom:12px}.albums-error p{color:var(--muted);font-size:14px}.album-empty{text-align:center;padding:48px 24px;animation:albFadeIn .5s ease both}.album-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#1677ff14,#5856d614);color:var(--muted);margin-bottom:14px}.album-empty h2{font-family:"Bricolage Grotesque",var(--font-sans);font-size:18px;font-weight:700;color:var(--text);margin:0 0 16px}.album-empty-actions{display:flex;gap:10px;justify-content:center}.album-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:albModalIn .25s ease both}@keyframes albModalIn{0%{opacity:0}to{opacity:1}}.album-modal{background:var(--bg, #fff);border:1px solid var(--border);border-radius:var(--radius-lg, 20px);padding:28px;max-width:520px;width:92%;max-height:90vh;overflow:auto;box-shadow:0 24px 80px #0000002e;animation:albModalSlide .3s cubic-bezier(.22,1,.36,1) both}.album-modal.wide{max-width:800px}@keyframes albModalSlide{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.album-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.album-modal-title{font-family:"Bricolage Grotesque",var(--font-sans);font-size:20px;font-weight:700;color:var(--text);margin:0}.album-modal-close{width:36px;height:36px;border:none;border-radius:10px;background:var(--panel);color:var(--muted);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.album-modal-close:hover{background:#e5484d1a;color:#e5484d}.album-form-group{margin-bottom:16px}.album-form-label{display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:6px;letter-spacing:-.1px}.album-form-input,.album-form-textarea,.album-form-select{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm, 10px);background:var(--panel);color:var(--text);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.album-form-input:focus,.album-form-textarea:focus,.album-form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1677ff1a}.album-form-textarea{resize:vertical;min-height:80px}.album-form-error{color:#e5484d;font-size:13px;margin-bottom:12px}.album-form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.album-btn-cancel{height:var(--control-h, 44px);padding:0 20px;border:1px solid var(--border);border-radius:var(--radius-sm, 10px);background:var(--panel);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.album-btn-cancel:hover{border-color:var(--accent)}.album-btn-submit{height:var(--control-h, 44px);padding:0 24px;border:none;border-radius:var(--radius-sm, 10px);background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 80%,#6366f1) 100%);color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s}.album-btn-submit:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 4px 12px #1677ff40}.album-add-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.album-add-card{display:flex;flex-direction:column;border-radius:var(--radius-sm, 10px);overflow:hidden;cursor:pointer;border:2px solid var(--border);background:var(--panel);transition:all .2s}.album-add-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px #1677ff26}.album-add-card:hover{border-color:#1677ff66}.album-add-card-thumb{position:relative;width:100%;height:100px;display:flex;align-items:center;justify-content:center;background:var(--field-bg, rgba(0, 0, 0, .03));color:var(--muted)}.album-add-card-img{width:100%;height:100%;object-fit:cover;display:block}.album-add-card-check{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #0000004d}.album-add-card-name{font-size:11px;padding:6px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.album-loading-more{grid-column:1 / -1;text-align:center;padding:24px;color:var(--muted);font-size:13px;font-weight:600}.album-load-more-row{grid-column:1 / -1;text-align:center;padding:12px 0 24px}.album-load-more-btn{height:var(--control-h, 36px);padding:0 24px;border-radius:var(--radius-sm, 8px);border:1px solid var(--border);background:var(--field-bg);color:var(--accent);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.album-load-more-btn:hover{background:var(--accent-light, rgba(22, 119, 255, .08));border-color:var(--accent)}.album-card-mosaic{width:100%;height:180px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;background:var(--border);overflow:hidden}.album-card-mosaic-thumb{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .3s}.album-card-mosaic-empty{width:100%;height:100%;background:linear-gradient(135deg,#1677ff0a,#5856d60f)}.album-photo-grid.compact{gap:3px;grid-template-columns:repeat(auto-fill,minmax(155px,1fr))!important}.album-photo-grid.compact .album-photo-card{border:none;border-radius:4px;backdrop-filter:none;-webkit-backdrop-filter:none;background:transparent}.album-photo-grid.compact .album-photo-card:hover{transform:none;box-shadow:none}.album-photo-grid.compact .album-photo-card:hover .album-photo-thumb{opacity:.88;transform:none}.album-photo-grid.compact .album-photo-info,.album-photo-grid.compact .album-photo-remove{display:none}.album-photo-grid.compact .album-photo-thumb{border-radius:4px;height:140px!important}.album-photo-grid.compact .album-photo-placeholder{height:140px!important;border-radius:4px}.album-photo-date{margin:2px 0 0;font-size:11px;color:var(--muted);font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-date-groups{display:flex;flex-direction:column;gap:28px}.album-date-section{animation:cardReveal .45s cubic-bezier(.22,1,.36,1) both}.album-date-header{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.album-date-title{font-family:"Bricolage Grotesque",var(--font-sans);font-size:18px;font-weight:700;color:var(--text);margin:0;letter-spacing:-.3px}.album-date-count{font-size:12px;font-weight:600;color:var(--muted);background:var(--panel);border:1px solid var(--border);padding:2px 8px;border-radius:999px}.album-date-select-btn{margin-left:auto;height:26px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:4px}.album-date-select-btn:hover{color:var(--accent);border-color:var(--accent);background:#1677ff0d}.album-action-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}[data-theme=dark] .album-card,[data-theme=dark] .album-photo-card,[data-theme=dark] .album-controls,[data-theme=dark] .album-selection-bar,[data-theme=dark] .albums-segmented{background:#ffffff0a}[data-theme=dark] .album-modal{background:var(--bg)}[data-theme=dark] .albums-skeleton-cover,[data-theme=dark] .album-photo-skeleton-thumb{background:linear-gradient(90deg,#ffffff08 25%,#ffffff0f,#ffffff08 75%);background-size:200% 100%;animation:albShimmer 1.6s ease-in-out infinite}[data-theme=dark] .albums-skeleton-line{background:#ffffff0f}[data-theme=dark] .album-photo-remove{background:#e5484de6}[data-theme=dark] .album-photo-remove--selection{background:#f59e0bf2;color:#332800}@media (prefers-color-scheme: dark){:root:not([data-theme]) .album-card{background:#ffffff0a}:root:not([data-theme]) .album-photo-card{background:#ffffff0a}:root:not([data-theme]) .album-controls{background:#ffffff0a}:root:not([data-theme]) .album-modal{background:var(--bg)}}@media (max-width: 768px){.album-detail-sticky{padding:6px 0;margin-bottom:10px}.album-detail-top{align-items:center;gap:6px;margin-bottom:6px}.album-detail-title{flex:1 1 auto}.album-detail-actions{margin-left:0;width:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.album-detail-actions::-webkit-scrollbar{display:none}.album-detail-actions .album-action-icon{width:40px;height:40px}.album-controls-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}.album-controls-row::-webkit-scrollbar{display:none}.album-controls-row>*{flex-shrink:0}.album-description,.album-event-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.albums-toolbar{flex-direction:column;align-items:flex-start}.albums-toolbar-group+.albums-toolbar-group{margin-left:0}.albums-search{width:100%;min-width:0}.albums-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.albums-grid>*{min-width:0}.album-photo-grid[data-size="1"],.album-photos-skeleton[data-size="1"]{grid-template-columns:repeat(auto-fill,minmax(min(150px,calc((100% - 16px)/2)),1fr))}.album-photo-grid[data-size="2"],.album-photos-skeleton[data-size="2"]{grid-template-columns:repeat(auto-fill,minmax(min(200px,calc((100% - 16px)/2)),1fr))}.album-photo-grid[data-size="3"],.album-photos-skeleton[data-size="3"]{grid-template-columns:repeat(auto-fill,minmax(min(250px,calc((100% - 16px)/2)),1fr))}.album-photo-grid[data-size="4"],.album-photos-skeleton[data-size="4"]{grid-template-columns:repeat(auto-fill,minmax(min(300px,calc((100% - 16px)/2)),1fr))}.album-photo-grid[data-size="5"],.album-photos-skeleton[data-size="5"]{grid-template-columns:repeat(auto-fill,minmax(min(350px,calc((100% - 16px)/2)),1fr))}.album-card-cover,.album-card-placeholder{height:auto;aspect-ratio:4 / 3}.album-card-body{padding:10px 12px 12px}.album-card-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-card-desc{display:none}.album-card:hover{transform:none}.albums-title{font-size:24px}}@media (max-width: 480px){.albums-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.album-selection-bar{flex-direction:column;align-items:flex-start;gap:8px}.album-selection-actions{margin-left:0;width:100%}}@media (prefers-reduced-motion: reduce){.album-card,.album-photo-card,.albums-page,.albums-header,.album-detail-header,.album-selection-bar{animation:none!important}.album-card:hover,.album-photo-card:hover,.album-photo-card:hover .album-photo-thumb{transform:none}}.album-breadcrumb{display:flex;align-items:center;gap:4px;padding:8px 0;margin-bottom:16px;font-size:.9rem}.album-breadcrumb-item{background:none;border:none;cursor:pointer;color:var(--accent, #007bff);font-size:inherit;padding:4px 8px;border-radius:6px;transition:background .15s}.album-breadcrumb-item:hover{background:var(--hover-bg, rgba(0, 0, 0, .05))}.album-breadcrumb-sep{color:var(--text-tertiary, #999);-webkit-user-select:none;user-select:none}.album-breadcrumb-current{font-weight:600;color:var(--text-primary, #222);padding:4px 8px}.album-card.dnd-over{border-color:var(--color-success, #28a745)!important;box-shadow:0 0 0 3px #28a74540;transform:scale(1.03)}.album-card-unnest{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:1px solid var(--border, #ddd);background:var(--panel, white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:0;transition:opacity .15s;z-index:5}.album-card:hover .album-card-unnest{opacity:1}.album-card-fav{position:absolute;top:8px;left:8px;z-index:5;width:28px;height:28px;border-radius:50%;border:none;background:#0006;color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;opacity:0;transition:opacity .15s,transform .15s,color .15s}.album-card-fav.active{opacity:1;color:gold;background:#00000080}.album-card:hover .album-card-fav{opacity:1}.album-card-fav:hover{transform:scale(1.15)}.album-card.favorite{border-color:#ffd70066}.albums-pill.active{background:var(--accent, #007bff);color:#fff;border-color:var(--accent, #007bff)}.album-action-icon.active{color:var(--accent, #007bff);background:var(--accent-bg, #f0f8ff)}@keyframes merge-spin{to{transform:rotate(360deg)}}.album-persons-panel{padding:12px 0;border-bottom:1px solid var(--border, #eee);margin-bottom:12px}.album-persons-header{font-size:.85rem;font-weight:600;margin-bottom:8px;color:var(--text-secondary, #666)}.album-persons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.album-action-more{font-size:18px;font-weight:700;line-height:1}.album-sheet-actions{display:flex;flex-direction:column;gap:2px}.album-sheet-actions .album-action-icon{width:100%;height:44px;justify-content:flex-start;gap:12px;padding:0 12px;border:none;background:transparent;border-radius:10px;font-size:14.5px}.album-sheet-actions .album-action-icon:after{content:attr(title)}.album-sheet-actions .album-action-icon.accent{color:var(--text)}.album-sheet-actions .album-action-icon.accent .icon,.album-sheet-actions .album-action-icon.accent svg{color:var(--accent)}.album-sheet-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:4px 2px 12px}.album-sheet-controls .albums-segmented{flex-wrap:wrap}.album-sheet-controls .album-controls-sep{display:none}.persons-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border-default, #e4e7ec);margin:6px 0 var(--section-gap, 24px)}.persons-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;margin-bottom:-1px;color:var(--text-secondary, #667085);text-decoration:none;font-size:var(--text-md, 14px);font-weight:600;border-bottom:2px solid transparent;border-radius:var(--radius-sm, 8px) var(--radius-sm, 8px) 0 0;cursor:pointer}.persons-tab:hover{color:var(--text-primary, #101828);background:var(--surface-hover, #f6f7f9)}.persons-tab--active{color:var(--color-primary, #1677ff);border-bottom-color:var(--color-primary, #1677ff)}.person-card{position:relative;border-radius:var(--radius-md, 12px);overflow:hidden;cursor:pointer;background:var(--panel-solid, white);border:1px solid var(--border);transition:transform var(--transition-normal, .16s ease),box-shadow var(--transition-normal, .16s ease),border-color var(--transition-normal, .16s ease)}.person-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm, 0 6px 18px rgba(0, 0, 0, .08));border-color:var(--accent)}.person-card.selected{border-color:var(--accent);background:var(--accent-light, rgba(22, 119, 255, .08))}.person-card.expanded{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.person-card-badge{position:absolute;top:8px;right:8px;z-index:5;background:#0000008c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;border-radius:10px;padding:2px 7px;font-size:.7rem;font-weight:600;min-width:22px;text-align:center;font-variant-numeric:tabular-nums}.person-card-overmerge{position:absolute;top:8px;left:8px;z-index:6;background:#dc3545eb;color:#fff;border:none;border-radius:10px;padding:2px 8px;font-size:.68rem;font-weight:700;line-height:1.2;cursor:pointer;max-width:calc(100% - 16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-card-overmerge:hover{background:#b02a37f5}.person-card.selection-mode .person-card-overmerge{left:36px;max-width:calc(100% - 44px)}.persons-card-grid-compact .person-card.selection-mode .person-card-overmerge{left:23px;max-width:calc(100% - 28px)}.person-card-checkbox{position:absolute;top:8px;left:8px;z-index:10;width:22px;height:22px;border:2px solid var(--accent);border-radius:6px;background:#ffffffd9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;font-weight:700;transition:background var(--transition-fast, .06s ease)}.person-card-checkbox.checked{background:var(--accent);color:#fff}.person-card-thumb{aspect-ratio:1;overflow:hidden;background:var(--bg, #f5f5f8)}.person-card-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.person-card:hover .person-card-thumb img{transform:scale(1.04)}.person-card-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;color:var(--placeholder, rgba(0, 0, 0, .25))}.person-card-info{padding:8px 10px}.person-card-name{font-weight:600;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);letter-spacing:-.01em}.person-card-auto{font-size:.68rem;color:var(--muted);font-style:italic}.person-card-actions{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:6px;padding:8px;background:linear-gradient(transparent,#00000080);opacity:0;pointer-events:none;transition:opacity var(--transition-normal, .16s ease)}.person-card:hover .person-card-actions,.person-card-actions:focus-within{opacity:1;pointer-events:auto}@media (hover: none){.person-card-actions{display:none}}.person-card-actions button{background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:none;border-radius:50%;width:30px;height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:transform var(--transition-fast, .06s ease),background var(--transition-fast, .06s ease)}.person-card-actions button:hover{transform:scale(1.12);background:#fff}.person-card-color{position:absolute;bottom:0;left:0;right:0;height:3px}.persons-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.persons-card-grid-compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px}.persons-card-grid-compact .person-card{border-radius:var(--radius-sm, 8px);border-width:1px}.persons-card-grid-compact .person-card-info{display:none}.persons-card-grid-compact .person-card-badge{top:3px;right:3px;font-size:.6rem;padding:1px 5px;min-width:16px;border-radius:8px}.persons-card-grid-compact .person-card-actions{display:none}.persons-card-grid-compact .person-card-thumb-placeholder{font-size:1.5rem}.persons-card-grid-compact .person-card-checkbox{top:3px;left:3px;width:16px;height:16px;font-size:10px;border-radius:4px}.persons-compact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}.compact-face{position:relative;aspect-ratio:1;border-radius:var(--radius-sm, 8px);overflow:hidden;cursor:pointer;border:1px solid var(--border);transition:border-color var(--transition-normal, .16s ease),box-shadow var(--transition-normal, .16s ease)}.compact-face:hover{border-color:var(--accent);box-shadow:var(--shadow-sm, 0 4px 12px rgba(0, 0, 0, .06))}.compact-face.selected{border-color:var(--accent);border-width:2px}.compact-face img{width:100%;height:100%;object-fit:cover;display:block}.compact-face-x{position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;background:var(--danger, rgba(220, 53, 69, .85));color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;opacity:0;transition:opacity var(--transition-normal, .16s ease)}.compact-face:hover .compact-face-x{opacity:1}.hidden-persons-section{margin-top:var(--spacing-xl, 2rem);padding-top:var(--spacing-md, 1rem);border-top:1px solid var(--border)}.hidden-persons-toggle{background:none;border:1px solid var(--border);padding:6px 14px;border-radius:var(--radius-sm, 8px);cursor:pointer;font-size:.82rem;color:var(--muted);display:flex;align-items:center;gap:6px;transition:background var(--transition-normal, .16s ease)}.hidden-persons-toggle:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.hidden-persons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-top:.75rem;opacity:.65}.hidden-persons-grid .person-card{border-style:dashed}.person-group-section{margin-bottom:var(--spacing-lg, 1.5rem)}.person-group-header{display:flex;align-items:center;gap:var(--spacing-sm, .5rem);padding:10px 14px;margin-bottom:var(--spacing-sm, .5rem);border-radius:var(--radius-sm, 8px);background:var(--color-bg-tertiary, rgba(0, 0, 0, .03));cursor:pointer;transition:background var(--transition-normal, .16s ease);-webkit-user-select:none;user-select:none}.person-group-header:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .06))}.person-group-header-name{font-weight:600;font-size:.9rem;color:var(--text)}.person-group-header-count{color:var(--muted);font-size:.78rem}.person-group-header-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.person-group-header-actions{margin-left:auto;display:flex;gap:4px;opacity:0;transition:opacity var(--transition-normal, .16s ease)}.person-group-header:hover .person-group-header-actions{opacity:1}.person-group-header-actions button{background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm, 6px);font-size:.8rem;line-height:1;transition:background var(--transition-fast, .06s ease)}.person-group-header-actions button:hover{background:#00000014}.person-group-ungrouped{margin-top:var(--spacing-lg, 1.5rem);padding-top:var(--spacing-md, 1rem);border-top:1px dashed var(--border)}.persons-search{width:100%;height:var(--control-h, 44px);padding:0 36px 0 14px;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);background:var(--field-bg, #fff);color:var(--text);font-size:14px;transition:border-color var(--transition-normal, .16s ease),box-shadow var(--transition-normal, .16s ease);outline:none}.persons-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus, rgba(22, 119, 255, .15))}.persons-search::placeholder{color:var(--placeholder)}.persons-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;border-radius:50%;line-height:1;padding:0;transition:background var(--transition-fast, .06s ease),color var(--transition-fast, .06s ease)}.persons-search-clear:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .06));color:var(--text)}.persons-page{padding:var(--content-gutter, 2rem);max-width:100%}.persons-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg, 1.5rem);gap:var(--spacing-md, 1rem);flex-wrap:wrap}.persons-header-left{display:flex;align-items:center;gap:var(--spacing-sm, .5rem);flex-wrap:wrap}.persons-title{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.persons-face-stats{color:var(--muted);font-size:.85rem;font-weight:400}.persons-proc{display:inline-flex;align-items:center;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.85rem}.persons-proc-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.persons-proc-count{font-variant-numeric:tabular-nums;color:var(--text)}.persons-proc-bar{width:110px;height:5px;border-radius:3px;background:var(--border-default, #e4e7ec);overflow:hidden}.persons-proc-bar-fill{display:block;height:100%;border-radius:3px;background:var(--status-success, #16a34a);transition:width .4s ease}.persons-proc-bar-fill--active{animation:persons-proc-pulse 1.6s ease-in-out infinite}.persons-proc-pct{font-variant-numeric:tabular-nums;color:var(--status-success, #16a34a);font-weight:600}.persons-proc-dot{width:7px;height:7px;border-radius:50%;background:var(--status-success, #16a34a);animation:persons-proc-pulse 1.2s ease-in-out infinite}.persons-proc-badge{padding:1px 8px;border-radius:999px;font-size:.75rem;font-weight:600;background:color-mix(in srgb,var(--status-success, #16a34a) 12%,transparent);color:var(--status-success, #16a34a)}.persons-proc-badge--run{background:color-mix(in srgb,var(--color-primary, #1677ff) 12%,transparent);color:var(--color-primary, #1677ff)}@keyframes persons-proc-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion: reduce){.persons-proc-dot,.persons-proc-bar-fill--active{animation:none}}.persons-clustering-progress{display:flex;align-items:center;gap:var(--spacing-sm, .5rem)}.persons-clustering-progress-bar{width:100px;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.persons-clustering-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.persons-clustering-progress-text{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.persons-toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.persons-btn{display:inline-flex;align-items:center;gap:6px;padding:0 14px;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);background:var(--panel-solid, #fff);color:var(--text);font-size:.8rem;font-weight:500;cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal),color var(--transition-normal);white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1}.persons-btn:hover{background:var(--field-hover, #f8f8fa);border-color:var(--border-strong)}.persons-btn:active{transform:scale(.97)}.persons-btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.persons-btn--active:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.persons-btn--green{background:var(--color-success);color:#fff;border-color:var(--color-success)}.persons-btn--green:hover{opacity:.88}.persons-btn--danger{background:var(--danger);color:#fff;border-color:var(--danger)}.persons-btn--danger:hover{opacity:.88}.persons-btn--muted{color:var(--muted)}.persons-btn--muted:hover{color:var(--text)}.persons-selection-badge{font-size:.8rem;color:var(--muted);padding:0 6px;line-height:36px;white-space:nowrap}.persons-toolbar-divider{width:1px;height:24px;background:var(--border);margin:0 4px;flex-shrink:0}.persons-group-select{height:36px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);background:var(--panel-solid, #fff);color:var(--text);font-size:.8rem;cursor:pointer;transition:border-color var(--transition-normal)}.persons-group-select:hover{border-color:var(--border-strong)}.persons-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md, 1rem);flex-wrap:wrap;gap:var(--spacing-sm, .5rem)}.persons-list-title{margin:0;font-size:1.15rem;font-weight:600;letter-spacing:-.01em;color:var(--text)}.persons-list-title-minor{font-size:.75em;color:var(--muted);font-weight:400;margin-left:.4rem}.persons-sort-row{display:flex;gap:6px;align-items:center}.persons-sort-label{font-size:.8rem;color:var(--muted);white-space:nowrap}.persons-sort-btn{display:inline-flex;align-items:center;gap:4px;padding:0 10px;height:30px;border:1px solid var(--border);border-radius:15px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.persons-sort-btn:hover{border-color:var(--border-strong);color:var(--text)}.persons-sort-btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.persons-sort-btn--active:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.persons-sort-reset{display:inline-flex;align-items:center;gap:4px;padding:0 10px;height:30px;border:none;border-radius:15px;background:var(--color-bg-tertiary, rgba(0, 0, 0, .05));color:var(--muted);font-size:.78rem;cursor:pointer;transition:all var(--transition-normal)}.persons-sort-reset:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .08));color:var(--text)}.persons-filter-row{display:flex;gap:var(--spacing-sm, .5rem);align-items:center;margin-bottom:var(--spacing-md, 1rem);flex-wrap:wrap}.persons-search-wrap{position:relative;flex:1 1 200px;max-width:320px}.persons-found-count{font-size:.8rem;color:var(--muted);white-space:nowrap}.persons-view-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);overflow:hidden;margin-bottom:var(--spacing-md, 1rem)}.persons-view-btn{padding:6px 14px;border:none;background:transparent;color:var(--muted);font-size:.8rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.persons-view-btn:not(:last-child){border-right:1px solid var(--border)}.persons-view-btn:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.persons-view-btn--active{background:var(--accent);color:#fff}.persons-view-btn--active:hover{background:var(--accent-hover);color:#fff}.persons-layout{display:grid;gap:var(--spacing-xl, 2rem)}.persons-layout--split{grid-template-columns:1fr auto 1fr;gap:0}.persons-layout--full{grid-template-columns:1fr}.persons-divider{width:8px;cursor:col-resize;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;flex-shrink:0}.persons-divider:hover .persons-divider-grip,.persons-divider:active .persons-divider-grip{background:var(--accent, #007bff);opacity:1}.persons-divider-grip{width:4px;height:40px;border-radius:2px;background:var(--border, #ddd);opacity:.6;transition:background .15s,opacity .15s}.persons-clustering-panel{border:1px solid var(--border);padding:var(--spacing-lg, 1.5rem);margin-bottom:var(--spacing-xl, 2rem);border-radius:var(--radius-md, 12px);background:var(--panel-solid, #fff)}.persons-clustering-panel h3{margin:0 0 var(--spacing-md, 1rem) 0;font-size:1rem;font-weight:600}.persons-clustering-methods{display:flex;gap:var(--spacing-sm, .5rem);margin-bottom:var(--spacing-md, 1rem)}.persons-clustering-field{margin-bottom:var(--spacing-md, 1rem)}.persons-clustering-field label{display:block;margin-bottom:var(--spacing-xs, .25rem);font-size:.85rem;font-weight:500;color:var(--text)}.persons-inline-form{border:1px solid var(--accent-light, rgba(22, 119, 255, .2));border-radius:var(--radius-md, 12px);padding:var(--spacing-lg, 1.5rem);margin-bottom:var(--spacing-md, 1rem);background:var(--panel-solid, #fff)}.persons-inline-form h4{margin:0 0 var(--spacing-md, 1rem) 0;font-size:.95rem;font-weight:600}.persons-inline-form--under-card{margin:.25rem 0 .75rem;border-color:var(--accent, #1677ff);box-shadow:0 4px 16px #00000014;animation:persons-inline-form-in .15s ease}@keyframes persons-inline-form-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.person-group-droparea{border-radius:var(--radius-md, 12px)}.persons-inline-form-row{display:flex;gap:var(--spacing-md, 1rem);flex-wrap:wrap;align-items:flex-end}.persons-inline-form-field{flex:1 1 200px}.persons-inline-form-field label{display:block;margin-bottom:var(--spacing-xs, .25rem);font-size:.8rem;font-weight:500;color:var(--muted)}.persons-inline-form-field input[type=text]{width:100%;height:var(--control-h, 44px);padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);background:var(--field-bg, #fff);color:var(--text);font-size:.85rem;transition:border-color var(--transition-normal),box-shadow var(--transition-normal);outline:none}.persons-inline-form-field input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.persons-color-picker{display:flex;align-items:center;gap:var(--spacing-sm, .5rem)}.persons-color-picker label{font-size:.8rem;font-weight:500;color:var(--muted)}.persons-color-picker input[type=color]{width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);cursor:pointer;padding:2px;background:var(--panel-solid, #fff)}.persons-inline-form-actions{display:flex;gap:var(--spacing-sm, .5rem)}.persons-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md, 1rem)}.persons-detail-title{margin:0;font-size:1.15rem;font-weight:600;letter-spacing:-.01em}.persons-detail-actions{display:flex;gap:6px}.persons-detail-description{margin-bottom:var(--spacing-md, 1rem);color:var(--muted);font-size:.85rem}.persons-detail-faces-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm, .5rem);flex-wrap:wrap;gap:var(--spacing-sm, .5rem)}.persons-detail-faces-title{margin:0;font-size:.95rem;font-weight:600}.persons-detail-faces-loaded{font-size:.8rem;color:var(--muted);font-weight:400}.persons-detail-drag-hint{margin:.25rem 0 .5rem;padding:.5rem .75rem;font-size:.8rem;color:var(--muted);background:var(--bg-secondary, #f8f9fa);border:1px dashed var(--border, #e0e0e0);border-radius:8px}.persons-detail-faces-meta{display:flex;align-items:center;gap:var(--spacing-sm, .5rem)}.persons-detail-selected-count{font-size:.8rem;color:var(--accent)}.persons-face-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--spacing-md, 1rem);margin-top:var(--spacing-sm, .5rem)}.persons-face-card{position:relative;border-radius:var(--radius-sm, 8px);overflow:hidden;border:1px solid var(--border);background:var(--panel-solid, #fff);cursor:pointer;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.persons-face-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.persons-face-card-img{aspect-ratio:1;overflow:hidden;background:var(--bg)}.persons-face-card-img img{width:100%;height:100%;object-fit:cover;display:block}.persons-face-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--muted);font-size:.7rem}.persons-face-card-info{padding:6px 8px;font-size:.72rem;color:var(--muted)}.persons-face-card-info-row{display:flex;justify-content:space-between;align-items:center}.persons-face-card-ref-badge{position:absolute;bottom:6px;left:6px;width:18px;height:18px;border-radius:50%;background:var(--color-success);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700}.persons-face-card-select-badge{position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700}.persons-face-card-actions{position:absolute;top:0;right:0;display:flex;flex-direction:column;gap:2px;padding:4px;opacity:0;transition:opacity var(--transition-normal)}.persons-face-card:hover .persons-face-card-actions{opacity:1}.persons-face-card-action-btn{width:24px;height:24px;border-radius:50%;border:none;background:#0000008c;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;transition:background var(--transition-normal)}.persons-face-card-action-btn:hover{background:#000c}.persons-face-card-action-btn--danger:hover{background:var(--danger)}.persons-face-embedding-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.persons-face-embedding-dot--yes{background:var(--color-success)}.persons-face-embedding-dot--no{background:var(--danger)}.persons-load-more{display:block;width:100%;margin-top:var(--spacing-md, 1rem);padding:10px;border:1px dashed var(--border);border-radius:var(--radius-sm, 8px);background:transparent;color:var(--accent);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.persons-load-more:hover{background:var(--accent-light);border-color:var(--accent)}.persons-group-form{border:1px solid var(--border);border-radius:var(--radius-md, 12px);padding:var(--spacing-lg, 1.5rem);margin-bottom:var(--spacing-xl, 2rem);background:var(--panel-solid, #fff)}.persons-group-form h4{margin:0 0 var(--spacing-md, 1rem) 0;font-size:.95rem;font-weight:600}.persons-empty{text-align:center;padding:3rem 1rem;color:var(--muted);font-size:.9rem}.persons-compact-face-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg, #f5f5f8);color:var(--muted);font-size:.7rem}.persons-compact-face-img{width:100%;height:100%;object-fit:cover}.persons-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000}.persons-modal{background:var(--panel-solid, #fff);padding:var(--spacing-xl, 2rem);border-radius:var(--radius-md, 12px);max-width:500px;width:90%;box-shadow:var(--shadow-lg)}.persons-modal h3{margin:0 0 var(--spacing-sm, .5rem) 0;font-size:1.1rem;font-weight:600;letter-spacing:-.01em}.persons-modal p{color:var(--muted);margin-bottom:var(--spacing-lg, 1.5rem);font-size:.9rem;line-height:1.5}.persons-modal-field{margin-bottom:var(--spacing-md, 1rem)}.persons-modal-field label{display:flex;align-items:center;gap:var(--spacing-sm, .5rem);cursor:pointer;font-size:.9rem;color:var(--text)}.persons-modal-field--range label{display:block;margin-bottom:var(--spacing-sm, .5rem);color:var(--text);font-size:.9rem}.persons-modal-field--range input[type=range]{width:100%}.persons-modal-range-labels{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}.persons-modal-actions{display:flex;gap:var(--spacing-sm, .5rem);justify-content:flex-end;margin-top:var(--spacing-lg, 1.5rem)}.persons-face-ref-label{color:var(--color-success);font-weight:600}.persons-face-card-action-col{display:flex;gap:.25rem;flex-direction:column}.persons-photo-size-slider{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}.persons-photo-size-label{font-size:.8rem;color:var(--text-secondary, #888);white-space:nowrap}.persons-photo-size-slider input[type=range]{width:100px;accent-color:var(--accent, #4a90d9)}.persons-photos-grid{display:flex;flex-wrap:wrap;gap:12px;padding:8px 0}.persons-photo-card{cursor:pointer;border-radius:var(--radius-md, 8px);overflow:hidden;background:var(--bg-secondary, #f9f9f9);border:1px solid var(--border, #e5e5e5);transition:box-shadow .15s,transform .15s;flex-shrink:0}.persons-photo-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.persons-photo-card-img-wrapper{position:relative;width:100%;overflow:hidden;background:var(--bg-tertiary, #f0f0f0)}.persons-photo-card-img{width:100%;height:100%;object-fit:cover;display:block}.persons-photo-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--text-muted, #ccc);position:relative;overflow:hidden}.persons-photo-card-shimmer{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 25%,rgba(0,0,0,.04) 50%,transparent 75%);background-size:200% 100%;animation:personsPhotoShimmer 1.5s ease-in-out infinite}@keyframes personsPhotoShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.persons-photo-card-name{padding:6px 8px;font-size:.8rem;font-weight:500;color:var(--text-primary, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.persons-photo-card-count{font-weight:400;color:var(--text-secondary, #888);font-size:.75rem}.persons-more-btn,.persons-selection-dock{display:none}.persons-sel-inline{display:contents}@media (max-width: 768px){.persons-layout--split{grid-template-columns:1fr!important}.persons-sort-row{flex-wrap:wrap}.persons-sel-inline{display:none!important}.persons-selection-dock{position:fixed;left:10px;right:10px;bottom:var(--st-tabbar-clearance, 78px);z-index:950;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;border-radius:16px;border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);box-shadow:var(--shadow-lg)}.persons-divider{display:none}.persons-header{flex-direction:column;align-items:flex-start}.persons-toolbar{width:100%}.persons-btn--svc,.persons-toolbar-divider{display:none}.persons-more-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;font-size:20px;line-height:1}.persons-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.persons-card-grid .person-card{border:none;background:transparent;overflow:visible}.persons-card-grid .person-card-thumb{border-radius:50%;border:1px solid var(--border)}.persons-card-grid .person-card.selected .person-card-thumb,.persons-card-grid .person-card.expanded .person-card-thumb{box-shadow:0 0 0 2px var(--accent)}.persons-card-grid .person-card-info{text-align:center;padding:6px 2px 0}.persons-card-grid .person-card-name{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.persons-clustering-hint{margin:0 0 .9rem;font-size:.85rem;line-height:1.5;color:var(--muted, #666);max-width:560px}.person-timeline{margin:.75rem 0 1rem}.person-timeline-title{font-size:.95rem;font-weight:600;color:var(--text, #222);margin:0 0 .5rem}.person-timeline-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.person-timeline-year{flex:0 0 auto;width:84px;padding:0 0 6px;border:1px solid var(--border, #e0e0e0);border-radius:10px;background:var(--card-bg, #f8f9fa);cursor:pointer;overflow:hidden;text-align:center;transition:border-color .15s,box-shadow .15s;font:inherit;color:inherit}.person-timeline-year:hover{border-color:var(--accent, #007bff)}.person-timeline-year--active{border-color:var(--accent, #007bff);box-shadow:0 0 0 1px var(--accent, #007bff)}.person-timeline-cover{width:100%;height:64px;overflow:hidden;background:var(--skeleton, #e9ecef)}.person-timeline-cover-img{width:100%;height:100%;object-fit:cover;display:block}.person-timeline-year-label{display:block;margin-top:4px;font-size:.82rem;font-weight:600;color:var(--text, #222)}.person-timeline-year-count{display:block;font-size:.68rem;color:var(--text-secondary, #666)}.person-timeline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:.6rem}.person-timeline-tile{cursor:pointer;border-radius:8px;overflow:hidden;background:var(--skeleton, #e9ecef);transition:transform .15s,box-shadow .15s}.person-timeline-tile:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.person-timeline-tile-img{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.person-timeline-thumb-placeholder{background:var(--skeleton, #e9ecef)}.timeline-container{width:100%;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-md)}.timeline-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.timeline-date-type-selector{display:flex;gap:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.timeline-date-type-btn{padding:var(--spacing-sm) var(--spacing-md);border:none;background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;font-size:.875rem;transition:background-color var(--transition-fast);min-height:44px}.timeline-date-type-btn:hover{background:var(--color-bg-hover)}.timeline-date-type-btn.active{background:var(--color-primary);color:var(--color-text-inverse)}.timeline-clear-btn{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;min-height:44px;transition:background-color var(--transition-fast)}.timeline-clear-btn:hover{background:var(--color-bg-hover)}.timeline-wrapper{position:relative;width:100%;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:2rem 0}.timeline-track{position:relative;height:80px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:crosshair;min-width:100%;touch-action:none}.timeline-labels{position:absolute;top:-1.5rem;left:0;right:0;display:flex;justify-content:space-between;font-size:.75rem;color:var(--color-text-secondary)}.timeline-label{white-space:nowrap}.timeline-distribution{position:absolute;bottom:0;left:0;right:0;height:60px;pointer-events:none}.timeline-bar{position:absolute;bottom:0;width:2px;background:var(--color-primary);opacity:.6;transition:opacity var(--transition-fast);min-width:2px}.timeline-bar.highlighted{background:var(--color-warning);opacity:1;width:4px}.timeline-range{position:absolute;top:0;bottom:0;background:var(--color-primary-light);border:2px solid var(--color-primary);pointer-events:none}.timeline-handle{position:absolute;top:-5px;bottom:-5px;width:8px;background:var(--color-primary);border:2px solid var(--color-bg-primary);border-radius:var(--radius-sm);cursor:ew-resize;touch-action:none;z-index:10}.timeline-handle-start,.timeline-handle-end{margin-left:-4px}.timeline-range-info{margin-top:var(--spacing-sm);text-align:center;font-size:.875rem;color:var(--color-text-secondary);font-weight:500}@media (max-width: 768px){.timeline-container{padding:.5rem}.timeline-header{flex-direction:column;align-items:stretch}.timeline-date-type-selector{width:100%}.timeline-date-type-btn{flex:1}.timeline-clear-btn{width:100%}.timeline-wrapper{padding:1.5rem 0;overflow-x:auto}.timeline-track{height:60px;min-width:600px}.timeline-distribution{height:45px}.timeline-bar{width:3px;min-width:3px}.timeline-bar.highlighted{width:5px}.timeline-handle{width:12px;min-height:48px}}@media (prefers-reduced-motion: reduce){.timeline-bar,.timeline-handle,.timeline-range{transition:none}}.source-type-filter{display:flex;gap:4px;flex-wrap:wrap}.source-type-filter-chip{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border:1px solid var(--color-border, #ddd);border-radius:16px;background:var(--color-panel-solid, #fff);color:var(--color-text-muted, #888);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.source-type-filter-chip:hover{border-color:var(--color-accent, #2196F3);color:var(--color-accent, #2196F3)}.source-type-filter-chip.active{background:var(--color-accent, #2196F3);color:#fff;border-color:var(--color-accent, #2196F3)}.source-badge{display:inline-flex;align-items:center;justify-content:center;padding:0 6px;height:20px;border-radius:10px;font-size:.7rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;line-height:1}.source-badge--auto{background:var(--color-muted-bg, #e8e8e8);color:var(--color-muted, #888)}.source-badge--human{background:var(--color-accent-bg, #e3f0ff);color:var(--color-accent, #2196F3)}.source-badge--llm{background:var(--color-warning-bg, #fff3e0);color:var(--color-warning, #ff9800)}.efm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.efm-modal{background:var(--panel-solid, #fff);border-radius:var(--radius-md, 8px);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg, 0 8px 32px rgba(0,0,0,.2))}.efm-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border, #ddd)}.efm-header h2{margin:0;font-size:1.2rem;color:var(--text, #222)}.efm-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--muted, #888);padding:0;line-height:1}.efm-close:hover{color:var(--text, #222)}.efm-form{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.efm-error{padding:.75rem 1rem;background:var(--danger-bg, #fce4e4);color:var(--danger, #dc3545);border-radius:var(--radius-sm, 4px);font-size:.9rem}.efm-field{display:flex;flex-direction:column;gap:.35rem}.efm-label{font-size:.85rem;font-weight:500;color:var(--text, #222)}.efm-smartbar{align-self:flex-end}.efm-input{height:var(--control-h, 44px);padding:0 .75rem;border:1px solid var(--border, #ddd);border-radius:var(--radius-sm, 4px);background:var(--field-bg, #fff);color:var(--text, #222);font-size:.95rem;font-family:inherit}.efm-input:focus{outline:none;border-color:var(--accent, #2196F3);box-shadow:0 0 0 2px var(--accent-alpha, rgba(33, 150, 243, .15))}.efm-textarea{height:auto;padding:.5rem .75rem;resize:vertical;min-height:60px}.efm-select{cursor:pointer}.efm-row{display:flex;gap:.75rem}.efm-field-half{flex:1;min-width:0}.efm-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.efm-btn{height:var(--control-h, 44px);padding:0 1.5rem;border:none;border-radius:var(--radius-sm, 4px);font-size:.95rem;font-weight:500;cursor:pointer}.efm-btn-cancel{background:var(--field-bg, #f5f5f5);color:var(--text, #222);border:1px solid var(--border, #ddd)}.efm-btn-cancel:hover{background:var(--row-hover, #eee)}.efm-btn-submit{background:var(--accent, #2196F3);color:#fff}.efm-btn-submit:hover:not(:disabled){background:var(--accent-hover, #1976D2)}.efm-btn-submit:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 540px){.efm-row{flex-direction:column;gap:1rem}}.processing-banner{border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:10px 14px;margin-bottom:12px;background:var(--surface-secondary, #f8f9fa);font-size:13px;transition:all .2s ease}.processing-banner--active{border-color:var(--accent-color, #4a90d9);background:var(--surface-active, rgba(74, 144, 217, .04))}.processing-banner--idle{opacity:.85}.processing-banner--collapsed{padding:6px 14px;cursor:pointer;display:flex;align-items:center;gap:8px}.processing-banner-collapsed-text{color:var(--text-secondary, #666);flex:1}.processing-banner-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.processing-banner-stages{flex:1;display:flex;flex-direction:column;gap:6px}.processing-banner-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.processing-banner-link{color:var(--accent-color, #4a90d9);text-decoration:none;font-size:12px;white-space:nowrap}.processing-banner-link:hover{text-decoration:underline}.processing-banner-toggle{background:none;border:none;cursor:pointer;color:var(--text-secondary, #666);font-size:14px;padding:2px 4px;line-height:1}.processing-banner-hint{margin-top:6px;padding-left:20px;color:var(--text-secondary, #888);font-size:12px;font-style:italic}.processing-banner-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.processing-banner-dot--active{background:var(--accent-color, #4a90d9);animation:processing-pulse 1.5s ease-in-out infinite}.processing-banner-dot--complete{background:var(--success-color, #4caf50)}.processing-banner-dot--error{background:var(--error-color, #e53935)}@keyframes processing-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.processing-stage-row{display:flex;align-items:center;gap:8px;min-height:22px}.processing-stage-label{font-weight:500;color:var(--text-primary, #333);white-space:nowrap}.processing-stage-count{color:var(--text-secondary, #666);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.processing-stage-bar{flex:1;max-width:160px;min-width:60px;height:5px;background:var(--border-color, #e0e0e0);border-radius:3px;overflow:hidden}.processing-stage-bar-fill{height:100%;border-radius:3px;background:var(--accent-color, #4a90d9);transition:width .5s ease}.processing-stage-bar-fill--active{background:var(--accent-color, #4a90d9)}.processing-stage-bar-fill--complete{background:var(--success-color, #4caf50)}.processing-stage-pct{color:var(--text-secondary, #666);font-size:12px;min-width:32px;text-align:right;font-variant-numeric:tabular-nums}.processing-stage-status{font-size:12px;padding:1px 8px;border-radius:10px;text-transform:capitalize}.processing-stage-status--idle{color:var(--text-secondary, #888);background:var(--surface-secondary, #f0f0f0)}.processing-stage-status--complete{color:var(--success-color, #4caf50);background:#4caf5014}.processing-stage-status--running{color:var(--accent-color, #4a90d9);background:#4a90d914}.processing-stage-status--error{color:var(--error-color, #e53935);background:#e5393514}.processing-stage-extra{color:var(--text-secondary, #666);font-size:12px;white-space:nowrap}@media (max-width: 640px){.processing-banner-header{flex-direction:column}.processing-banner-actions{align-self:flex-end}.processing-stage-bar{max-width:100px}}.events-page{padding:2rem;max-width:1400px;margin:0 auto}.events-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.events-header-actions{display:flex;align-items:center;gap:.5rem}.events-toggle-timeline-btn{padding:.5rem .75rem;background:var(--field-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:1rem}.events-toggle-timeline-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.events-toggle-timeline-btn:hover{opacity:.9}.events-clear-filter-btn{padding:.5rem 1rem;background:var(--danger);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem}.events-clear-filter-btn:hover{opacity:.9}.events-filter-badge{color:var(--accent);font-weight:500}.events-back-btn{padding:.5rem 1rem;background:var(--muted);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem}.events-back-btn:hover{opacity:.9}.events-title-section{flex:1}.events-title-section h1{margin:0 0 .5rem;font-size:1.5rem;color:var(--text)}.events-city{color:var(--muted);font-size:.9rem;margin-bottom:.25rem}.events-date-range{color:var(--muted);font-size:.9rem}.events-loading,.events-error,.events-empty{text-align:center;padding:3rem;color:var(--muted)}.events-error{color:var(--danger)}.events-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.events-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:0;cursor:pointer;transition:all .2s;background:var(--panel-solid);display:flex;flex-direction:column;overflow:hidden}.events-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.events-item-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;width:100%;aspect-ratio:1;background:var(--color-bg-tertiary)}.events-item-preview-photo{position:relative;width:100%;height:100%;overflow:hidden;background:var(--color-bg-tertiary)}.events-item-preview-img{width:100%;height:100%;object-fit:cover}.events-item-preview-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:.5rem;text-align:center;color:var(--muted);font-size:.7rem;word-break:break-word}.events-item-preview-empty{grid-template-columns:1fr}.events-item-content{flex:1;padding:1.5rem}.events-item-title{margin:0 0 .5rem;font-size:1.2rem;color:var(--text)}.events-item-city{color:var(--muted);font-size:.9rem;margin-bottom:.5rem}.events-item-date{color:var(--muted);font-size:.85rem;margin-bottom:.5rem}.events-item-count{color:var(--color-success);font-size:.9rem;font-weight:500;margin-top:.5rem}.events-item-map{margin-top:1rem;font-size:1.5rem}.events-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.events-photo-item{position:relative;cursor:pointer;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:1;background:var(--color-bg-tertiary)}.events-photo-item:hover .events-photo-actions{opacity:1}.events-photo-thumbnail{width:100%;height:100%;object-fit:cover}.events-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center;color:var(--muted);font-size:.9rem}.events-photo-actions{position:absolute;top:.5rem;right:.5rem;opacity:0;transition:opacity .2s}.events-remove-btn{background:#dc3545e6;color:#fff;border:none;border-radius:50%;width:2rem;height:2rem;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;line-height:1}.events-remove-btn:hover{background:var(--danger)}.events-recalc-btn{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem}.events-recalc-btn:hover:not(:disabled){background:var(--accent-hover)}.events-recalc-btn:disabled{background:var(--muted);cursor:not-allowed}.events-country{color:var(--muted);font-size:.85rem;margin-bottom:.25rem}.events-timeline-container{margin-bottom:1.5rem;padding:1rem;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-md)}.events-timeline-range-info{text-align:center;margin-top:.5rem;font-size:.9rem;color:var(--accent);font-weight:500}.events-tree{display:flex;flex-direction:column;gap:.75rem}.events-tree-viewport{max-height:72vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-solid);padding:.5rem}.events-tree-virtual{position:relative;width:100%}.events-tree-virtual-row{position:absolute;left:0;top:0;width:100%;padding-bottom:.75rem}.events-load-more-wrap{display:flex;justify-content:center;padding:.5rem 0 1rem}.events-load-more-btn{padding:.6rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);cursor:pointer;font-size:.9rem}.events-load-more-btn:hover{background:var(--row-hover)}.events-load-more-btn:disabled{opacity:.7;cursor:not-allowed}.events-tree-node{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-solid);overflow:hidden}.events-tree-node-level-0{border-left:4px solid var(--accent)}.events-tree-node-level-1{border-left:4px solid var(--color-success);margin-left:1.5rem}.events-tree-node-level-2{border-left:4px solid var(--warning);margin-left:3rem}.events-tree-node-header{cursor:pointer;transition:background-color .2s}.events-tree-node-header:hover{background:var(--row-hover)}.events-tree-node-content{display:flex;align-items:center;gap:1rem;padding:1rem}.events-tree-node-toggle{background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--muted);padding:.25rem .5rem;min-width:1.5rem}.events-tree-node-toggle:hover{color:var(--text)}.events-tree-node-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;width:120px;height:120px;flex-shrink:0;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);overflow:hidden}.events-tree-node-preview-photo{position:relative;width:100%;height:100%;overflow:hidden;background:var(--color-bg-tertiary)}.events-tree-node-preview-img{width:100%;height:100%;object-fit:cover}.events-tree-node-preview-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:.25rem;text-align:center;color:var(--muted);font-size:.6rem;word-break:break-word}.events-tree-node-preview-empty{grid-template-columns:1fr}.events-tree-node-info{flex:1;min-width:0}.events-tree-node-title{margin:0 0 .5rem;font-size:1.1rem;color:var(--text);font-weight:600}.events-tree-node-caption{color:var(--text-secondary, var(--muted));font-size:.9rem;line-height:1.4;margin:0 0 .5rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.events-tree-node-city{color:var(--muted);font-size:.9rem;margin-bottom:.25rem}.events-tree-node-country{color:var(--muted);font-size:.85rem;margin-bottom:.25rem;font-weight:500}.events-tree-node-date{color:var(--muted);font-size:.85rem;margin-bottom:.5rem}.events-tree-node-count{color:var(--color-success);font-size:.9rem;font-weight:500}.events-tree-node-children{margin-left:1.5rem;padding-left:1rem;border-left:2px solid var(--border);margin-top:.5rem;display:flex;flex-direction:column;gap:.75rem}.events-tree-node-level-3{border-left:4px solid var(--muted);margin-left:4.5rem}.events-tree-node-location{color:var(--muted);font-size:.9rem;margin-bottom:.25rem}.events-tree-node-meta{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.events-tree-node-children-count{color:var(--muted)}.events-header-left{display:flex;flex-direction:column;gap:.25rem;flex:1}.events-header-left h1{margin:0;color:var(--text)}.events-stats,.events-location{color:var(--muted);font-size:.9rem}.events-skeleton{background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--border) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.events-tree-skeleton{display:flex;flex-direction:column;gap:1rem}.events-tree-skeleton-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-solid)}.events-skeleton-preview{width:120px;height:120px;flex-shrink:0}.events-skeleton-info{flex:1;display:flex;flex-direction:column;gap:.5rem}.events-skeleton-title{width:60%;height:1.2rem}.events-skeleton-date{width:40%;height:.9rem}.events-skeleton-meta{width:25%;height:.85rem}.events-create-btn{padding:.5rem 1rem;background:var(--color-success, #4caf50);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;font-weight:500;white-space:nowrap}.events-create-btn:hover{opacity:.9}.events-tree-node-action{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--muted);padding:.2rem .4rem;border-radius:var(--radius-sm);opacity:0;transition:opacity .15s,color .15s}.events-tree-node-header:hover .events-tree-node-action{opacity:1}.events-tree-node-action:hover{color:var(--accent);background:var(--row-hover)}.events-tree-node-action--danger:hover{color:var(--danger)}@media (max-width: 768px){.events-page{padding:1rem}.events-header-actions{flex-wrap:wrap}.events-tree-viewport{max-height:62vh;padding:.35rem}.events-tree-node-content{flex-direction:column;align-items:flex-start}.events-tree-node-preview{width:100%;height:auto;aspect-ratio:4 / 1;grid-template-columns:repeat(4,1fr)}.events-tree-node-level-1,.events-tree-node-level-2,.events-tree-node-level-3{margin-left:.5rem}.events-tree-node-children{margin-left:.5rem;padding-left:.5rem}}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 10px;background:var(--accent-light);color:var(--accent);border-radius:20px;font-size:.8125rem;font-weight:500;line-height:1;white-space:nowrap;animation:chipIn .2s ease-out}.filter-chip-label{max-width:140px;overflow:hidden;text-overflow:ellipsis}.filter-chip-close{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--accent);cursor:pointer;border-radius:50%;transition:background var(--transition-fast);flex-shrink:0}.filter-chip-close:hover{background:var(--accent);color:var(--panel-solid)}@keyframes chipIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.filter-chip{animation:none}}.map-filter-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);position:relative;z-index:1000;flex-wrap:wrap;min-height:var(--control-h)}.map-filter-bar-segment{display:flex;background:var(--field-bg);border-radius:var(--radius-sm);padding:2px;flex-shrink:0}.mfb-seg-btn{padding:6px 14px;border:none;background:transparent;color:var(--muted);font-size:.8125rem;font-weight:600;cursor:pointer;border-radius:calc(var(--radius-sm) - 2px);transition:all var(--transition-fast);line-height:1.2;white-space:nowrap}.mfb-seg-btn:hover{color:var(--text)}.mfb-seg-btn.active{background:var(--accent);color:#fff;box-shadow:0 1px 4px #0000001f}.map-filter-bar-center{display:flex;align-items:center;gap:6px;flex:1;min-width:0;flex-wrap:wrap;position:relative}.mfb-filter-trigger{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;line-height:1}.mfb-filter-trigger:hover{background:var(--field-hover);border-color:var(--border-strong)}.mfb-filter-trigger.open{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.mfb-filter-trigger.has-filters{border-color:var(--accent)}.mfb-filter-icon{flex-shrink:0}.mfb-filter-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--accent);color:#fff;font-size:.6875rem;font-weight:700;border-radius:50%;line-height:1}.mfb-clear-btn{padding:4px 8px;border:none;background:transparent;color:var(--muted);font-size:.75rem;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.mfb-clear-btn:hover{color:var(--danger);background:var(--color-error-bg)}.mfb-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:1000;min-width:300px;padding:14px;background:var(--panel-solid);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:12px;animation:popoverIn .15s ease-out}@keyframes popoverIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.mfb-popover-section{display:flex;flex-direction:column;gap:4px}.mfb-popover-label{font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.mfb-popover-toggle{display:flex;background:var(--field-bg);border-radius:var(--radius-sm);padding:2px}.mfb-popover-toggle-btn{flex:1;padding:6px 10px;border:none;background:transparent;color:var(--muted);font-size:.8125rem;font-weight:500;cursor:pointer;border-radius:calc(var(--radius-sm) - 2px);transition:all var(--transition-fast)}.mfb-popover-toggle-btn:hover{color:var(--text)}.mfb-popover-toggle-btn.active{background:var(--accent);color:#fff}.mfb-popover-select{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:.8125rem;min-height:34px;width:100%}.mfb-popover-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.mfb-popover-input{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:.8125rem;min-height:34px;width:100%}.mfb-popover-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.mfb-popover-row{display:flex;gap:10px}.mfb-popover-section--half{flex:1}.mfb-popover-actions{padding-top:4px;border-top:1px solid var(--border)}.mfb-popover-action{width:100%;padding:8px;border:none;background:var(--accent-light);color:var(--accent);font-size:.8125rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.mfb-popover-action:hover{background:var(--accent);color:#fff}.mfb-source-pills{display:flex;gap:4px}.mfb-pill{flex:1;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);text-align:center}.mfb-pill:hover{border-color:var(--accent);color:var(--text)}.mfb-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.map-filter-bar-right{display:flex;align-items:center;gap:2px;flex-shrink:0}.mfb-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.mfb-icon-btn:hover{background:var(--field-hover);color:var(--text)}.mfb-icon-btn.active{background:var(--accent-light);color:var(--accent)}.mfb-separator{width:1px;height:20px;background:var(--border);margin:0 4px}.map-filter-bar-stats{width:100%;font-size:.75rem;color:var(--muted);padding-top:2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.map-filter-bar-stats-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.map-filter-bar-stats-dot--active{background:var(--accent-color, #4a90d9);animation:map-stats-pulse 1.5s ease-in-out infinite}@keyframes map-stats-pulse{0%,to{opacity:1}50%{opacity:.3}}.map-filter-bar-stats-progress{display:flex;align-items:center;gap:4px}.map-filter-bar-stats-bar{width:60px;height:3px;background:var(--border-color, #e0e0e0);border-radius:2px;overflow:hidden}.map-filter-bar-stats-bar-fill{height:100%;background:var(--accent-color, #4a90d9);border-radius:2px;transition:width .5s ease}.map-filter-bar-stats-pct{font-variant-numeric:tabular-nums}.map-filter-bar-stats-missing{color:var(--muted);opacity:.7}@media (max-width: 768px){.map-filter-bar{gap:8px;padding:6px 10px}.map-filter-bar-segment{order:-1;width:100%}.mfb-seg-btn{flex:1;text-align:center;min-height:var(--control-h);font-size:.875rem}.map-filter-bar-center{order:1;width:100%}.map-filter-bar-right{order:0}.mfb-popover{left:-12px;right:-12px;min-width:unset}.mfb-icon-btn{width:var(--control-h);height:var(--control-h)}}@media (prefers-reduced-motion: reduce){.mfb-popover{animation:none}}.mfb-drafts-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;font-size:.8rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm);transition:color var(--transition-fast);white-space:nowrap}.mfb-drafts-toggle:hover{color:var(--text-primary)}.mfb-drafts-toggle input{accent-color:var(--accent, #1677ff);width:14px;height:14px;margin:0;cursor:pointer}.photo-list-panel{display:flex;flex-direction:column;height:100%;background:var(--panel-solid)}.photo-list-panel-cluster-info{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--accent-light);border-bottom:1px solid var(--border);font-size:.875rem;color:var(--accent);font-weight:500}.photo-list-panel-clear-cluster{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color var(--transition-fast);min-height:var(--control-h)}.photo-list-panel-clear-cluster:hover{background:var(--accent-hover)}.photo-list-panel-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:1rem}.photo-list-panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.5rem}.photo-list-panel-title{font-weight:600;font-size:1rem;color:var(--text)}.photo-list-panel-actions{display:flex;gap:.5rem;flex-wrap:wrap}.photo-list-panel-btn{padding:.5rem 1rem;border:1px solid var(--border);background:var(--panel-solid);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;transition:background-color var(--transition-fast);min-height:var(--control-h)}.photo-list-panel-btn:hover{background:var(--field-hover)}.photo-list-panel-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.photo-list-panel-btn-primary:hover{background:var(--accent-hover)}.photo-list-panel-scroll{flex:1;overflow-y:auto;position:relative;contain:strict}.photo-list-panel-virtual{position:relative;width:100%}.photo-list-panel-row{padding:0 8px}.photo-list-panel-grid{display:grid;gap:8px}.photo-list-panel-item{position:relative;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast);background:var(--panel-solid)}.photo-list-panel-item:hover{transform:scale(1.03);box-shadow:var(--shadow-sm)}.photo-list-panel-item.selectable{cursor:pointer}.photo-list-panel-item.selected{border-color:var(--accent);background:var(--accent-light)}.photo-list-panel-media{position:relative;width:100%;padding-bottom:100%;background:var(--field-bg);overflow:hidden}.photo-list-panel-thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.photo-list-panel-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--field-bg);color:var(--muted);font-size:.75rem;text-align:center;padding:.5rem;word-break:break-word}.photo-list-panel-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--field-bg);color:var(--muted);font-size:.75rem}.photo-list-panel-selected-indicator{position:absolute;top:.25rem;right:.25rem;width:22px;height:22px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;box-shadow:var(--shadow-sm)}.photo-list-panel-info{padding:.375rem .5rem}.photo-list-panel-filename{font-weight:500;font-size:.75rem;color:var(--text);margin-bottom:.125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-list-panel-date{font-size:.6875rem;color:var(--muted)}@media (max-width: 768px){.photo-list-panel-header{flex-direction:column;align-items:stretch}.photo-list-panel-actions{width:100%}.photo-list-panel-btn{flex:1;min-width:0}.photo-list-panel-selected-indicator{width:28px;height:28px;font-size:1rem}}.event-list-panel{display:flex;flex-direction:column;height:100%;background:var(--panel-solid)}.event-list-panel-header{flex-shrink:0;padding:1rem;border-bottom:1px solid var(--border)}.event-list-panel-title{margin:0;font-weight:600;font-size:1rem;color:var(--text)}.event-list-panel-empty{display:flex;align-items:center;justify-content:center;flex:1;padding:1rem;color:var(--muted);font-size:.9rem}.event-list-panel-tree{flex:1;overflow-y:auto;padding:.5rem}.event-list-panel-node{border:1px solid var(--border);border-radius:12px;background:var(--panel-solid);margin-bottom:.6rem;overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.event-list-panel-node:hover{border-color:var(--accent-2, var(--accent));box-shadow:0 4px 14px #00000014;transform:translateY(-1px)}.event-list-panel-node-level-1{margin-left:1rem}.event-list-panel-node-level-2{margin-left:2rem}.event-list-panel-node-level-3{margin-left:3rem}.event-list-panel-node--selected{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 2px var(--focus)}.event-list-panel-node-header{cursor:pointer;padding:.65rem .75rem;transition:background-color var(--transition-fast);display:flex;align-items:flex-start;gap:.7rem}.event-list-panel-node-header:hover{background-color:var(--row-hover)}.event-list-panel-node--selected .event-list-panel-node-header:hover{background-color:var(--accent-light)}.event-list-panel-node-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem}.event-list-panel-node-toggle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:none;border:none;border-radius:50%;cursor:pointer;padding:0;color:var(--muted);flex-shrink:0;transition:transform var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.event-list-panel-node-toggle:hover{color:var(--text);background:var(--row-hover)}.event-list-panel-node-toggle--open{transform:rotate(90deg)}.event-list-panel-node-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;width:88px;height:88px;flex-shrink:0;background:var(--color-bg-tertiary, var(--row-hover));border-radius:10px;overflow:hidden}.event-list-panel-node-preview-single{grid-template-columns:1fr}.event-list-panel-node-preview-more{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;color:#fff;font-size:.8rem;font-weight:600;pointer-events:none}.event-list-panel-node-preview-empty{grid-template-columns:1fr}.event-list-panel-node-preview-photo{position:relative;width:100%;height:100%;overflow:hidden;background:var(--color-bg-tertiary, var(--row-hover))}.event-list-panel-node-preview-img{width:100%;height:100%;object-fit:cover;display:block}.event-list-panel-node-preview-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6);pointer-events:none}.event-list-panel-node-preview-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:.15rem;text-align:center;color:var(--muted);font-size:.55rem;word-break:break-word}.event-list-panel-skeleton{background:linear-gradient(90deg,var(--row-hover) 25%,var(--border) 37%,var(--row-hover) 63%);background-size:400% 100%;animation:event-list-panel-skeleton-shimmer 1.4s ease infinite}@keyframes event-list-panel-skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.event-list-panel-node-info{flex:1;min-width:0}.event-list-panel-node-caption{font-size:.8rem;color:var(--text-secondary, var(--muted));line-height:1.35;margin-bottom:.2rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-list-panel-node-title{font-weight:650;font-size:.95rem;line-height:1.3;color:var(--text);margin-bottom:.2rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-list-panel-node-location{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--muted);margin-bottom:.15rem}.event-list-panel-node-location svg{flex-shrink:0;opacity:.7}.event-list-panel-node-date{font-size:.75rem;color:var(--muted);margin-bottom:.35rem}.event-list-panel-node-badges{display:flex;flex-wrap:wrap;gap:4px}.event-list-panel-badge{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:500;line-height:1.5;background:var(--row-hover);color:var(--text-secondary, var(--muted));border:1px solid var(--border)}.event-list-panel-badge--level-2{background:color-mix(in srgb,var(--warning, #faad14) 14%,transparent);border-color:color-mix(in srgb,var(--warning, #faad14) 35%,transparent);color:var(--warning, #b8860b)}.event-list-panel-badge--level-1{background:color-mix(in srgb,var(--accent, #1677ff) 10%,transparent);border-color:color-mix(in srgb,var(--accent, #1677ff) 30%,transparent);color:var(--accent, #1677ff)}.event-list-panel-badge--level-0{background:color-mix(in srgb,var(--accent-2, #52c41a) 12%,transparent);border-color:color-mix(in srgb,var(--accent-2, #52c41a) 32%,transparent);color:var(--accent-2, #389e0d)}.event-list-panel-children{margin-left:1rem;padding-left:.75rem;border-left:2px solid var(--border)}@media (max-width: 768px){.event-list-panel-node-level-1,.event-list-panel-node-level-2,.event-list-panel-node-level-3{margin-left:.5rem}.event-list-panel-children{margin-left:.5rem;padding-left:.5rem}}.event-list-panel-photos{padding:.5rem .75rem .75rem}.event-list-panel-photos-count{font-size:.75rem;color:var(--muted);margin-bottom:.4rem}.event-list-panel-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:4px}.event-list-panel-photos-item{position:relative;aspect-ratio:1;height:auto;padding:0;border:none;border-radius:6px;overflow:hidden;cursor:pointer;background:var(--surface-2, rgba(0, 0, 0, .06))}.event-list-panel-photos-item img{width:100%;height:100%;object-fit:cover;display:block}.event-list-panel-photos-placeholder{width:100%;height:100%}.event-list-panel-photos-empty{font-size:.8rem;color:var(--muted)}.story-list-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.story-list-panel-header{padding:.75rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}.story-list-panel-title{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.story-list-panel-empty{padding:1.5rem 1rem;color:var(--muted);font-size:.9rem}.story-list-panel-list{overflow-y:auto;flex:1;padding:.5rem}.story-list-panel-item{border:1px solid var(--border);border-radius:12px;background:var(--panel-solid);margin-bottom:.6rem;overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.story-list-panel-item:hover{border-color:var(--accent-2, var(--accent));box-shadow:0 4px 14px #00000014;transform:translateY(-1px)}.story-list-panel-item--selected{border-color:var(--accent, #1677ff);background:var(--accent-light, rgba(22, 119, 255, .06));box-shadow:0 0 0 2px var(--focus, rgba(22, 119, 255, .25))}.story-list-panel-item-header{display:flex;align-items:flex-start;gap:.7rem;width:100%;height:auto;text-align:left;padding:10px 12px;border:none;background:transparent;cursor:pointer;font:inherit}.story-list-panel-item-cover{display:flex;align-items:center;justify-content:center;width:56px;height:56px;flex-shrink:0;border-radius:10px;overflow:hidden;background:var(--row-hover, rgba(0, 0, 0, .05));color:var(--muted)}.story-list-panel-item-cover img{width:100%;height:100%;object-fit:cover;display:block}.story-list-panel-item-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.story-list-panel-item-title-row{display:flex;align-items:flex-start;gap:6px}.story-list-panel-item-title{font-weight:650;font-size:.95rem;line-height:1.3;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:0}.story-list-panel-item-badge{display:inline-flex;align-items:center;flex-shrink:0;padding:1px 8px;border-radius:999px;font-size:.68rem;font-weight:500;line-height:1.5;margin-top:1px}.story-list-panel-item-badge--draft{background:color-mix(in srgb,var(--warning, #faad14) 14%,transparent);border:1px solid color-mix(in srgb,var(--warning, #faad14) 35%,transparent);color:var(--warning, #b8860b)}.story-list-panel-item-meta{font-size:12px;color:var(--text-secondary)}.story-list-panel-preview{padding:0 12px 12px}.story-list-panel-preview-text{font-size:.85rem;color:var(--text-secondary);line-height:1.4;margin-bottom:.5rem;white-space:pre-line}.story-list-panel-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:4px;margin-bottom:.6rem}.story-list-panel-preview-item{position:relative;aspect-ratio:1;height:auto;padding:0;border:none;border-radius:6px;overflow:hidden;cursor:pointer;background:var(--surface-2, rgba(0, 0, 0, .06))}.story-list-panel-preview-item img{width:100%;height:100%;object-fit:cover;display:block}.story-list-panel-preview-empty{font-size:.85rem;color:var(--muted);margin-bottom:.6rem}.story-list-panel-skeleton{width:100%;height:100%;min-height:72px;border-radius:6px;background:linear-gradient(90deg,#0000000d 25%,#0000001a,#0000000d 75%);background-size:200% 100%;animation:story-list-panel-shimmer 1.2s infinite}@keyframes story-list-panel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.story-list-panel-open-editor{display:inline-block;padding:6px 14px;border:1px solid var(--accent, #1677ff);border-radius:8px;background:var(--accent, #1677ff);color:#fff;font-size:.85rem;font-weight:500;cursor:pointer}.story-list-panel-open-editor:hover{opacity:.9}.smart-album-save-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.smart-album-save-dialog{background:#fff;border-radius:8px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.smart-album-save-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #dee2e6}.smart-album-save-dialog-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#333}.smart-album-save-dialog-close{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s;min-height:44px;min-width:44px}.smart-album-save-dialog-close:hover{background:#f8f9fa}.smart-album-save-dialog-form{padding:1.5rem}.smart-album-save-dialog-field{margin-bottom:1.5rem}.smart-album-save-dialog-field label{display:block;margin-bottom:.5rem;font-weight:500;color:#333;font-size:.875rem}.smart-album-save-dialog-field input,.smart-album-save-dialog-field textarea{width:100%;padding:.75rem;border:1px solid #dee2e6;border-radius:4px;font-size:1rem;font-family:inherit;transition:border-color .2s;min-height:44px}.smart-album-save-dialog-field input:focus,.smart-album-save-dialog-field textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.smart-album-save-dialog-field textarea{resize:vertical;min-height:80px}.smart-album-save-dialog-error{padding:.75rem;background:#f8d7da;color:#721c24;border-radius:4px;margin-bottom:1rem;font-size:.875rem}.smart-album-save-dialog-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.smart-album-save-dialog-btn{padding:.75rem 1.5rem;border:1px solid #dee2e6;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s,border-color .2s;min-height:44px;min-width:100px}.smart-album-save-dialog-btn:disabled{opacity:.6;cursor:not-allowed}.smart-album-save-dialog-btn-cancel{background:#fff;color:#333}.smart-album-save-dialog-btn-cancel:hover:not(:disabled){background:#f8f9fa}.smart-album-save-dialog-btn-save{background:#007bff;color:#fff;border-color:#007bff}.smart-album-save-dialog-btn-save:hover:not(:disabled){background:#0e63e0;border-color:#0e63e0}@media (max-width: 768px){.smart-album-save-dialog-overlay{padding:0;align-items:flex-end}.smart-album-save-dialog{max-width:100%;max-height:90vh;border-radius:16px 16px 0 0}.smart-album-save-dialog-header,.smart-album-save-dialog-form{padding:1rem}.smart-album-save-dialog-actions{flex-direction:column-reverse}.smart-album-save-dialog-btn{width:100%}}.add-to-album-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.add-to-album-dialog{background:#fff;border-radius:8px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.add-to-album-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #dee2e6}.add-to-album-dialog-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#333}.add-to-album-dialog-close{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s;min-height:44px;min-width:44px}.add-to-album-dialog-close:hover{background:#f8f9fa}.add-to-album-dialog-content{padding:1.5rem}.add-to-album-dialog-field{margin-bottom:1.5rem}.add-to-album-dialog-field label{display:block;margin-bottom:.5rem;font-weight:500;color:#333;font-size:.875rem}.add-to-album-dialog-select,.add-to-album-dialog-field input,.add-to-album-dialog-field textarea{width:100%;padding:.75rem;border:1px solid #dee2e6;border-radius:4px;font-size:1rem;font-family:inherit;transition:border-color .2s;min-height:44px}.add-to-album-dialog-select:focus,.add-to-album-dialog-field input:focus,.add-to-album-dialog-field textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.add-to-album-dialog-field textarea{resize:vertical;min-height:80px}.add-to-album-dialog-divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:#666;font-size:.875rem}.add-to-album-dialog-divider:before,.add-to-album-dialog-divider:after{content:"";flex:1;border-bottom:1px solid #dee2e6}.add-to-album-dialog-divider span{padding:0 1rem}.add-to-album-dialog-error{padding:.75rem;background:#f8d7da;color:#721c24;border-radius:4px;margin-bottom:1rem;font-size:.875rem}.add-to-album-dialog-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.add-to-album-dialog-btn{padding:.75rem 1.5rem;border:1px solid #dee2e6;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s,border-color .2s;min-height:44px;min-width:100px}.add-to-album-dialog-btn:disabled{opacity:.6;cursor:not-allowed}.add-to-album-dialog-btn-cancel{background:#fff;color:#333}.add-to-album-dialog-btn-cancel:hover:not(:disabled){background:#f8f9fa}.add-to-album-dialog-btn-primary{background:#007bff;color:#fff;border-color:#007bff}.add-to-album-dialog-btn-primary:hover:not(:disabled){background:#0e63e0;border-color:#0e63e0}.add-to-album-dialog-btn-create{width:100%;background:#f8f9fa;color:#333;border-color:#dee2e6}.add-to-album-dialog-btn-create:hover{background:#e9ecef}@media (max-width: 768px){.add-to-album-dialog-overlay{padding:0;align-items:flex-end}.add-to-album-dialog{max-width:100%;max-height:90vh;border-radius:16px 16px 0 0}.add-to-album-dialog-header,.add-to-album-dialog-content{padding:1rem}.add-to-album-dialog-actions{flex-direction:column-reverse}.add-to-album-dialog-btn{width:100%}}.map-skeleton{display:flex;height:100%;gap:var(--spacing-md)}.map-skeleton-map{flex:2;border-radius:var(--radius-md);overflow:hidden;position:relative;background:var(--field-bg)}.map-skeleton-shimmer{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--field-bg) 25%,var(--field-hover) 50%,var(--field-bg) 75%);background-size:200% 100%;animation:mapSkeletonShimmer 1.8s ease-in-out infinite}.map-skeleton-sidebar{flex:1;display:flex;flex-direction:column;gap:var(--spacing-md);min-width:240px}.map-skeleton-header{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md)}.map-skeleton-text{height:14px;border-radius:7px;background:var(--field-bg);position:relative;overflow:hidden}.map-skeleton-text:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--field-bg) 25%,var(--field-hover) 50%,var(--field-bg) 75%);background-size:200% 100%;animation:mapSkeletonShimmer 1.8s ease-in-out infinite}.map-skeleton-text--wide{width:70%}.map-skeleton-text--narrow{width:40%}.map-skeleton-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);padding:0 var(--spacing-md);flex:1}.map-skeleton-card{border-radius:var(--radius-sm);overflow:hidden;background:var(--field-bg)}.map-skeleton-card-img{width:100%;padding-bottom:100%;position:relative;overflow:hidden}.map-skeleton-card-img:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--field-bg) 25%,var(--field-hover) 50%,var(--field-bg) 75%);background-size:200% 100%;animation:mapSkeletonShimmer 1.8s ease-in-out infinite}.map-skeleton-card-text{height:12px;margin:var(--spacing-sm);border-radius:6px;background:var(--field-bg);width:60%}@keyframes mapSkeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.map-skeleton-shimmer,.map-skeleton-text:after,.map-skeleton-card-img:after{animation:none}}@media (max-width: 768px){.map-skeleton{flex-direction:column}.map-skeleton-map{min-height:300px}.map-skeleton-sidebar{min-width:unset}}.map-page{display:flex;flex-direction:column;height:calc(100vh - 120px);padding:var(--spacing-md);background-color:var(--bg);color:var(--text);gap:var(--spacing-sm)}.map-page-content{flex:1;position:relative;min-height:400px}.map-container{width:100%;height:100%;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);position:relative}.map-timeline-overlay{position:absolute;bottom:0;left:0;right:0;z-index:500;pointer-events:auto}.map-timeline-overlay .timeline-container{border:none;border-radius:0;background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));padding:8px var(--spacing-md);border-top:1px solid var(--border)}.map-timeline-overlay .timeline-wrapper{padding:1rem 0 .5rem}.map-timeline-overlay .timeline-track{height:48px;background:transparent;border-color:var(--border)}.map-timeline-overlay .timeline-distribution{height:36px}.map-timeline-overlay .timeline-range-info{margin-top:4px;font-size:.75rem}.map-error,.map-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:400px;font-size:1rem;color:var(--muted)}.map-error{color:var(--danger)}.map-split-container{width:100%;height:100%}.map-panel{display:flex;flex-direction:column;overflow:hidden}.map-panel-content{display:flex;flex-direction:column;height:100%}.map-panel-content .map-container{flex:1;min-height:320px}.map-resize-handle{background:transparent;cursor:col-resize;position:relative;min-width:12px;transition:background-color var(--transition-fast)}.map-resize-handle:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--border);transform:translate(-50%)}.map-resize-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:32px;background:var(--border-strong);border-radius:2px;opacity:0;transition:opacity var(--transition-normal)}.map-resize-handle:hover:after{opacity:1}.map-resize-handle:hover:before{background:var(--accent)}.map-mobile-tabs{display:none;border-bottom:1px solid var(--border)}.map-mobile-tab{flex:1;padding:var(--spacing-md);background:var(--panel-solid);border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:.9375rem;font-weight:500;color:var(--muted);transition:all var(--transition-fast);min-height:var(--control-h)}.map-mobile-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-light)}.map-mobile-view{display:flex;flex-direction:column;height:100%}@media (max-width: 768px){.map-page{padding:var(--spacing-sm);height:calc(100vh - 100px);height:calc(100dvh - 100px);gap:var(--spacing-xs)}.map-mobile-tabs{display:flex}.map-page-content,.map-container{min-height:300px}.map-timeline-overlay .timeline-track{height:40px}.map-timeline-overlay .timeline-distribution{height:28px}}.atp{position:relative;display:inline-flex;flex:1 1 240px;max-width:380px;min-width:0}.atp-trigger{display:inline-flex;align-items:center;gap:8px;width:100%;height:var(--control-h-md);padding:0 10px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;text-align:left;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.atp-trigger:hover{border-color:var(--border-strong)}.atp-trigger--open{border-color:var(--border-focus);box-shadow:var(--focus-ring)}.atp-trigger-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.atp-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:260px;z-index:60;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, var(--shadow-md));overflow:hidden;display:flex;flex-direction:column;animation:atp-in var(--duration-fast) ease-out}@keyframes atp-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.atp-list{max-height:320px;overflow-y:auto;padding:6px}.atp-row{display:flex;align-items:center;gap:7px;min-height:34px;padding-right:10px;border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-primary)}.atp-row:hover{background:var(--surface-hover)}.atp-row--sel,.atp-row--sel:hover{background:var(--color-primary-soft)}.atp-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm)}.atp-count{flex:none;font-size:var(--text-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.atp-exp{flex:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm)}.atp-exp:hover{background:var(--surface-sunken);color:var(--text-secondary)}.atp-exp-dot{width:4px;height:4px;border-radius:50%;background:var(--border-strong)}.atp-spin{width:13px;height:13px;border:2px solid var(--border-default);border-top-color:var(--color-primary);border-radius:50%;animation:atp-spin .7s linear infinite}@keyframes atp-spin{to{transform:rotate(360deg)}}.atp-empty{min-height:28px;display:flex;align-items:center;font-size:var(--text-xs);color:var(--text-tertiary)}.atp-create{display:flex;align-items:center;gap:8px;width:100%;padding:11px 14px;border:none;border-top:1px solid var(--border-default);background:var(--surface-card);color:var(--color-primary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;cursor:pointer;text-align:left}.atp-create:hover{background:var(--surface-hover)}.atp-create span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-page{padding:var(--space-6) var(--space-6) var(--space-10);max-width:1180px;margin:0 auto}.upload-head{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.upload-title{margin:0;font-size:var(--text-2xl);font-weight:800;letter-spacing:-.01em;color:var(--text-primary);flex:1 1 auto}.upload-tabs-row{display:inline-flex}.upload-settings-sticky{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--surface-page);padding:var(--space-2) 0 var(--space-3);margin-bottom:var(--space-4)}.upload-setting-row{display:flex;align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--border-default)}.upload-setting-label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);min-width:150px;flex:none}.upload-setting-control{display:flex;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;flex:1 1 auto;min-width:0}.upload-loading-text{color:var(--text-tertiary);font-size:var(--text-sm)}.upload-ai-block{display:flex;flex-direction:column;gap:var(--space-2);padding:12px 16px;background:var(--surface-sunken);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.upload-ai-hint{display:flex;align-items:center;gap:7px;color:var(--text-tertiary);font-size:var(--text-xs);line-height:1.5}.upload-ai-hint svg{color:var(--ai-accent)}.upload-auto-prefs{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5)}.upload-dropzone{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);border:2px dashed var(--border-strong);border-radius:var(--radius-xl);padding:var(--space-12) var(--space-6);text-align:center;cursor:pointer;background:var(--surface-card);transition:border-color var(--duration-fast),background var(--duration-fast),box-shadow var(--duration-fast);margin-bottom:var(--space-3)}.upload-dropzone:hover{border-color:var(--color-primary)}.upload-dropzone.active{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:var(--focus-ring)}.upload-dropzone-medal{width:56px;height:56px;border-radius:var(--radius-lg);background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--space-2)}.upload-dropzone-title{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.upload-dropzone-subtitle{color:var(--text-tertiary);font-size:var(--text-sm);max-width:640px}.upload-desktop-hint{text-align:center;color:var(--text-tertiary);font-size:var(--text-xs);margin:var(--space-2) 0 var(--space-5)}.upload-desktop-hint a{color:var(--text-link);text-decoration:none;font-weight:600}.upload-desktop-hint a:hover{text-decoration:underline}.upload-files-section{margin-bottom:var(--space-6)}.upload-selbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding-bottom:var(--space-3)}.upload-selbar-cnt{font-weight:700;color:var(--text-primary);font-size:var(--text-sm)}.upload-selbar-grow{flex:1}.upload-files-chips{display:flex;gap:var(--space-2);flex-wrap:wrap}.upload-fchip{display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 6px;border:1px solid var(--border-default);border-radius:var(--radius-pill);font-size:var(--text-xs);background:var(--surface-card);color:var(--text-secondary);max-width:100%}.upload-fchip.invalid{border-color:var(--status-danger)}.upload-fchip-name{font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.upload-fchip-size{color:var(--text-tertiary)}.upload-fchip-err{color:var(--status-danger)}.upload-fchip-x{display:inline-flex;align-items:center;border:0;padding:2px;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-pill);line-height:1}.upload-fchip-x:hover{color:var(--status-danger);background:var(--surface-hover)}.upload-history-empty{padding:var(--space-12) var(--space-5);text-align:center;color:var(--text-tertiary);background:var(--surface-card);border:1px dashed var(--border-default);border-radius:var(--radius-xl)}.upload-history-list{display:flex;flex-direction:column;gap:var(--space-3)}.upload-history-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.upload-history-when{font-weight:700;color:var(--text-primary);font-size:var(--text-sm)}.upload-history-album{color:var(--text-tertiary);font-size:var(--text-xs)}.upload-history-actions{margin-left:auto;display:flex;gap:var(--space-2)}.upload-history-counts{display:flex;align-items:center;gap:var(--space-2) var(--space-3);font-size:var(--text-xs);margin-top:var(--space-2);flex-wrap:wrap}.upload-history-total{color:var(--text-secondary);font-weight:600}.upload-history-items{margin-top:var(--space-3);background:var(--surface-sunken);border-radius:var(--radius-md);overflow:hidden}.upload-history-item{display:flex;align-items:center;gap:var(--space-3);padding:8px 12px;border-bottom:1px solid var(--border-default);font-size:var(--text-xs);color:var(--text-secondary)}.upload-history-item:last-child{border-bottom:0}.upload-history-item .st{width:18px;text-align:center;flex:none}.upload-history-item .st.ok{color:var(--status-success)}.upload-history-item .st.err{color:var(--status-danger)}.upload-history-item .st.dup{color:var(--color-primary)}.upload-history-item .st.q{color:var(--text-tertiary)}.upload-history-item .hi-name{font-weight:600;color:var(--text-primary);overflow-wrap:anywhere}.upload-history-item .hi-size{color:var(--text-tertiary);flex:none}.upload-history-item .hi-msg{color:var(--text-tertiary);margin-left:auto;text-align:right}.upload-history-item .hi-msg.err{color:var(--status-danger)}.upload-history-more{margin-top:var(--space-4);text-align:center}.upload-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:grid;place-items:center;z-index:1000}.upload-modal{width:520px;max-width:92vw;max-height:86vh;display:flex;flex-direction:column;background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.upload-modal-head{padding:16px 20px;border-bottom:1px solid var(--border-default);font-weight:800;font-size:var(--text-md);color:var(--text-primary)}.upload-modal-body{padding:18px 20px;display:flex;flex-direction:column;gap:var(--space-3);overflow-y:auto}.upload-modal-note{color:var(--text-secondary);font-size:var(--text-xs);line-height:1.5}.upload-modal-warn{color:var(--status-warning);background:color-mix(in srgb,var(--status-warning) 12%,transparent);border-radius:var(--radius-sm);padding:8px 10px;font-size:var(--text-xs)}.upload-modal-matches{display:flex;flex-direction:column;gap:var(--space-2)}.upload-modal-matchrow{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-secondary);padding:7px 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm)}.upload-modal-matchrow .match-ok{color:var(--status-success)}.upload-modal-matchrow .match-no{color:var(--status-danger)}.upload-modal-matchrow .match-tag{margin-left:auto;font-weight:600}.upload-modal-matchrow .match-tag.found{color:var(--status-success)}.upload-modal-matchrow .match-tag.missing{color:var(--text-tertiary)}.upload-modal-foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:14px 20px;border-top:1px solid var(--border-default);background:var(--surface-sunken)}@media (max-width: 768px){.upload-page{padding:var(--space-4) var(--space-3) var(--space-8)}.upload-head{gap:var(--space-3)}.upload-title{font-size:var(--text-xl);flex-basis:100%}.upload-setting-row{align-items:flex-start;flex-direction:column;gap:var(--space-2);padding:10px 12px}.upload-setting-label{min-width:0}.upload-setting-control{width:100%}.upload-ai-block{padding:10px 12px}.upload-dropzone{padding:var(--space-8) var(--space-4)}.upload-fchip-name{max-width:150px}.upload-history-actions{margin-left:0;width:100%;justify-content:flex-end}}.upload-capture-row{display:none}@media (max-width: 768px){.upload-capture-row{display:flex;gap:10px;margin-top:10px}.upload-capture-btn{flex:1 1 0;min-height:48px;font-size:14px}}.templates-page{padding:1.5rem;max-width:1200px;margin:0 auto}.templates-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.templates-title{margin:0;font-size:1.75rem;color:#333}.templates-loading{text-align:center;padding:3rem;color:#666}.templates-feature-disabled{text-align:center;padding:3rem;background:#f8f9fa;border-radius:12px;margin-top:2rem}.templates-feature-icon{font-size:3rem;margin-bottom:1rem}.templates-feature-disabled h2{color:#495057;margin-bottom:.5rem}.templates-feature-disabled p{color:#6c757d;margin:.5rem 0}.templates-feature-hint{font-size:.9rem;font-style:italic}.templates-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #e9ecef;padding-bottom:0}.templates-tab{padding:.75rem 1.5rem;border:none;background:none;font-size:1rem;color:#6c757d;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.templates-tab:hover{color:#495057}.templates-tab.active{color:#007bff;border-bottom-color:#007bff}.templates-btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s}.templates-btn-primary{background:#007bff;color:#fff}.templates-btn-primary:hover{background:#0e63e0}.templates-btn-secondary{background:#6c757d;color:#fff}.templates-btn-secondary:hover{background:#545b62}.templates-btn-small{padding:.35rem .75rem;font-size:.85rem}.templates-btn-danger{background:#dc3545;color:#fff}.templates-btn-danger:hover{background:#c82333}.templates-btn:disabled{opacity:.6;cursor:not-allowed}.templates-list{display:grid;gap:1rem}.templates-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:1.25rem;transition:box-shadow .2s}.templates-card:hover{box-shadow:0 2px 8px #00000014}.templates-card-system{border-left:3px solid #28a745}.templates-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.templates-card-header h3{margin:0;font-size:1.1rem;color:#333}.templates-status{padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.templates-status.enabled{background:#d4edda;color:#155724}.templates-status.disabled{background:#f8d7da;color:#721c24}.templates-badge{padding:.2rem .5rem;border-radius:4px;font-size:.75rem;background:#e3f2fd;color:#1565c0}.templates-card-description{color:#6c757d;font-size:.9rem;margin:.5rem 0}.templates-card-preview{background:#f8f9fa;border-radius:4px;padding:.75rem;margin:.75rem 0;overflow:hidden}.templates-card-preview code{font-size:.8rem;color:#495057;white-space:pre-wrap;word-break:break-word}.templates-card-actions{display:flex;gap:.5rem;margin-top:.75rem}.templates-empty{text-align:center;padding:3rem;background:#f8f9fa;border-radius:8px}.templates-empty p{color:#6c757d;margin-bottom:1rem}.templates-editor{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem}.templates-editor h2{margin:0 0 1.5rem;color:#333}.templates-form{display:grid;gap:1rem}.templates-form-row{display:flex;flex-direction:column;gap:.35rem}.templates-form-row-full{grid-column:1 / -1}.templates-form-row label{font-weight:500;color:#495057;font-size:.9rem}.templates-form-row input[type=text],.templates-form-row select,.templates-form-row textarea{padding:.6rem .75rem;border:1px solid #ced4da;border-radius:6px;font-size:.95rem;transition:border-color .2s}.templates-form-row input[type=text]:focus,.templates-form-row select:focus,.templates-form-row textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff26}.templates-form-row textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;resize:vertical}.templates-checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.templates-checkbox-label input{width:18px;height:18px}.templates-help{font-size:.8rem;color:#6c757d;margin-top:.25rem}.templates-help code{background:#e9ecef;padding:.1rem .3rem;border-radius:3px;font-size:.75rem}.templates-form-actions{display:flex;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e9ecef}@media (min-width: 768px){.templates-form{grid-template-columns:1fr 1fr}}.templates-editor-layout{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 992px){.templates-editor-layout{grid-template-columns:1fr 300px}}.templates-placeholders-panel{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1.25rem;height:fit-content;position:sticky;top:1rem}.templates-placeholders-panel h3{margin:0 0 .25rem;font-size:1rem;color:#333}.templates-placeholders-subtitle{font-size:.8rem;color:#6c757d;margin:0 0 1rem}.templates-placeholders-search{width:100%;padding:.5rem .75rem;border:1px solid #ced4da;border-radius:6px;font-size:.85rem;margin-bottom:1rem;box-sizing:border-box}.templates-placeholders-search:focus{outline:none;border-color:#007bff}.templates-placeholder-group{margin-bottom:.75rem}.templates-placeholder-group-header{cursor:pointer;font-weight:600;font-size:.9rem;padding:.35rem 0;display:flex;align-items:center;color:#495057}.templates-placeholder-group-header:hover{color:#333}.templates-placeholder-arrow{margin-right:.5rem;font-size:.7rem;width:12px}.templates-placeholder-items{padding-left:1.25rem;padding-top:.35rem;display:flex;flex-wrap:wrap;gap:.25rem}.templates-placeholder-btn{padding:.25rem .5rem;font-size:.75rem;border:1px solid #007bff;border-radius:4px;background:#fff;color:#007bff;cursor:pointer;transition:all .15s}.templates-placeholder-btn:hover{background:#007bff;color:#fff}.templates-placeholder-empty{font-size:.8rem;color:#999;font-style:italic}._container_pr3z8_1{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}._header_pr3z8_7{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}._header_pr3z8_7 h1{font-size:var(--font-size-2xl);font-weight:600;color:var(--color-text-primary);margin:0}._createButton_pr3z8_21{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:500;cursor:pointer;transition:background .2s}._createButton_pr3z8_21:hover:not(:disabled){background:var(--color-primary-dark)}._createButton_pr3z8_21:disabled{opacity:.6;cursor:not-allowed}._loading_pr3z8_42{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary)}._error_pr3z8_48{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--color-error-bg);color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}._error_pr3z8_48 button{background:none;border:none;color:inherit;font-size:var(--font-size-lg);cursor:pointer;padding:var(--spacing-xs)}._empty_pr3z8_68{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary)}._empty_pr3z8_68 p:first-child{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}._grid_pr3z8_79{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}._card_pr3z8_85{background:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);transition:box-shadow .2s,transform .2s}._card_pr3z8_85:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}._cardPreview_pr3z8_98{aspect-ratio:16 / 9;background:var(--color-bg-tertiary);position:relative;overflow:hidden}._previewImage_pr3z8_105{width:100%;height:100%;object-fit:cover}._previewPlaceholder_pr3z8_111{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--color-text-muted);font-size:var(--font-size-sm)}._cardContent_pr3z8_121{padding:var(--spacing-md)}._cardTitle_pr3z8_125{font-size:var(--font-size-md);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._cardMeta_pr3z8_135{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}._statusBadge_pr3z8_142{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500}._statusDraft_pr3z8_150{background:var(--color-warning-bg);color:var(--color-warning)}._statusRendering_pr3z8_155{background:var(--color-info-bg);color:var(--color-info)}._statusReady_pr3z8_160{background:var(--color-success-bg);color:var(--color-success)}._statusError_pr3z8_165{background:var(--color-error-bg);color:var(--color-error)}._photoCount_pr3z8_170{color:var(--color-text-secondary);font-size:var(--font-size-sm)}._cardDate_pr3z8_175{color:var(--color-text-muted);font-size:var(--font-size-xs)}._cardActions_pr3z8_180{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md)}._editButton_pr3z8_186,._deleteButton_pr3z8_187{flex:1;padding:var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background .2s}._editButton_pr3z8_186{background:var(--color-primary);color:#fff;border:none}._editButton_pr3z8_186:hover{background:var(--color-primary-dark)}._deleteButton_pr3z8_187{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}._deleteButton_pr3z8_187:hover{background:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error)}._previewLoading_pr3z8_220{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--color-bg-tertiary, #f0f0f0);position:relative;overflow:hidden}._previewShimmer_pr3z8_231{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 25%,rgba(0,0,0,.04) 50%,transparent 75%);background-size:200% 100%;animation:_collageShimmer_pr3z8_1 1.5s ease-in-out infinite}@keyframes _collageShimmer_pr3z8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._retryButton_pr3z8_249{position:absolute;bottom:8px;right:8px;padding:4px 8px;font-size:var(--font-size-xs, .75rem);background:var(--color-bg-secondary, #fff);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm, 4px);cursor:pointer;color:var(--color-text-secondary, #666);transition:background .15s}._retryButton_pr3z8_249:hover{background:var(--color-primary, #007bff);color:#fff;border-color:var(--color-primary, #007bff)}._container_vhnub_2{padding:var(--spacing-sm);border-top:1px solid var(--border);flex-shrink:0}._header_vhnub_8{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}._row_vhnub_17{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:6px}._label_vhnub_24{font-size:11px;color:var(--muted);width:48px;flex-shrink:0}._slider_vhnub_31{flex:1;height:4px;cursor:pointer;accent-color:var(--accent);min-width:0}._numberInput_vhnub_39{width:48px;height:26px;padding:0 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:11px;font-variant-numeric:tabular-nums;outline:none;box-sizing:border-box}._numberInput_vhnub_39:focus{border-color:var(--accent)}._panel_6bi4m_2{position:absolute;top:100%;right:0;z-index:100;width:260px;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-sm);margin-top:4px}._header_6bi4m_16{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding-bottom:var(--spacing-xs)}._presets_6bi4m_25{display:flex;flex-direction:column;gap:2px}._presetBtn_6bi4m_31{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 8px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-size:12px;text-align:left;transition:background .1s}._presetBtn_6bi4m_31:hover{background:var(--row-hover)}._presetActive_6bi4m_51{background:var(--accent-light);color:var(--accent);font-weight:500}._presetLabel_6bi4m_57{flex:1}._presetSize_6bi4m_61{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}._divider_6bi4m_67{height:1px;background:var(--border);margin:var(--spacing-xs) 0}._custom_6bi4m_73{padding-top:2px}._customLabel_6bi4m_77{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}._customInputs_6bi4m_85{display:flex;align-items:center;gap:4px;margin-top:4px}._sizeInput_6bi4m_92{width:70px;height:28px;padding:0 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:12px;outline:none;font-variant-numeric:tabular-nums;box-sizing:border-box}._sizeInput_6bi4m_92:focus{border-color:var(--accent)}._times_6bi4m_110{color:var(--muted);font-size:12px}._applyBtn_6bi4m_115{padding:4px 10px;height:28px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;font-size:11px;font-weight:500;cursor:pointer;white-space:nowrap}._applyBtn_6bi4m_115:hover{opacity:.9}._container_r6koz_1{padding:var(--spacing-sm);border-bottom:1px solid var(--border);flex-shrink:0}._header_r6koz_2{margin-bottom:8px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}._colorRow_r6koz_3{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}._colorRow_r6koz_3 label{display:flex;align-items:center;justify-content:space-between;gap:4px;color:var(--muted);font-size:10px}._colorRow_r6koz_3 input{width:28px;height:24px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:none;cursor:pointer}._patternGrid_r6koz_6{display:grid;grid-template-columns:repeat(8,minmax(20px,1fr));gap:4px;margin-bottom:8px}._patternButton_r6koz_7{aspect-ratio:1;min-width:0;padding:2px;overflow:hidden;border:1px solid var(--border);border-radius:5px;background:var(--field-bg);cursor:pointer}._patternButton_r6koz_7>span{display:block;width:100%;height:100%;border-radius:2px;background-size:24px 24px}._patternButton_r6koz_7:hover,._patternButton_r6koz_7._active_r6koz_9{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}._solidPreview_r6koz_10{background-image:none}._radiusRow_r6koz_11{display:grid;grid-template-columns:auto 1fr 48px;align-items:center;gap:6px;color:var(--muted);font-size:10px}._radiusRow_r6koz_11 input[type=range]{min-width:0;accent-color:var(--accent)}._radiusRow_r6koz_11 input[type=number]{width:48px;height:26px;box-sizing:border-box;padding:0 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:11px}._container_10flv_2{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;background:var(--color-bg-tertiary);margin:0}.main-body-content:has([data-testid="page.collageEditor"]){overflow:hidden}.main-content:has([data-testid="page.collageEditor"]){min-height:0;padding:0;overflow:hidden}.main-body-content:has([data-testid="page.collageEditor"])>footer{display:none}._loading_10flv_26,._error_10flv_27{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary)}._error_10flv_27{color:var(--color-error)}._toolbar_10flv_40{display:flex;align-items:center;padding:4px var(--spacing-sm);background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);gap:2px;flex-shrink:0;overflow-x:auto;min-height:44px}._toolbarGroup_10flv_52{display:flex;align-items:center;gap:2px;flex-shrink:0}._backButton_10flv_59{padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:13px;white-space:nowrap}._backButton_10flv_59:hover{color:var(--color-text-primary)}._title_10flv_73{font-size:14px;font-weight:600;margin:0;color:var(--color-text-primary);white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;cursor:pointer;position:relative}._title_10flv_73 ._editIcon_10flv_86{display:none;margin-left:4px;font-size:11px;color:var(--color-text-secondary)}._title_10flv_73:hover ._editIcon_10flv_86{display:inline}._titleInput_10flv_97{font-size:14px;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-secondary);border:1px solid var(--color-primary);border-radius:var(--radius-sm);padding:2px 6px;outline:none;max-width:200px;box-sizing:border-box}._toolButton_10flv_110{display:flex;align-items:center;gap:4px;padding:6px 8px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;font-size:12px;transition:background .1s,border-color .1s;min-height:32px}._toolButton_10flv_110:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border)}._toolButtonActive_10flv_130{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border))}._toolButton_10flv_110:disabled{opacity:.35;cursor:not-allowed}._toolDanger_10flv_141:hover:not(:disabled){color:var(--color-error)}._toolLabel_10flv_145{font-size:12px}._divider_10flv_149{width:1px;height:20px;background:var(--color-border);margin:0 4px;flex-shrink:0}._zoomValue_10flv_158{font-size:11px;color:var(--color-text-secondary);min-width:36px;text-align:center;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}._colorPickerWrap_10flv_168{position:relative;display:flex;align-items:center;cursor:pointer}._colorPicker_10flv_168{position:absolute;opacity:0;width:0;height:0;padding:0;border:none}._colorSwatch_10flv_184{display:block;width:24px;height:24px;border-radius:6px;border:2px solid var(--color-border);transition:border-color .15s}._colorPickerWrap_10flv_168:hover ._colorSwatch_10flv_184{border-color:var(--color-text-secondary)}._saveButton_10flv_198{padding:6px 14px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;font-size:12px;font-weight:500;white-space:nowrap}._saveButton_10flv_198:hover:not(:disabled){background:var(--color-bg-hover)}._saveButton_10flv_198:disabled{opacity:.6;cursor:not-allowed}._autoSave_10flv_219{font-size:12px;padding:2px 8px;white-space:nowrap}._autoSave_saving_10flv_225{color:var(--color-text-secondary)}._autoSave_saved_10flv_229{color:var(--color-success, #28a745)}._autoSave_error_10flv_233{color:var(--color-error, #dc3545)}._renderButton_10flv_237{padding:6px 14px;background:var(--color-primary);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-size:12px;font-weight:500;white-space:nowrap}._renderButton_10flv_237:hover:not(:disabled){background:var(--color-primary-hover)}._renderButton_10flv_237:disabled{opacity:.6;cursor:not-allowed}._errorBanner_10flv_259{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-md);background:var(--color-error-bg);color:var(--color-error);font-size:12px;flex-shrink:0}._errorBanner_10flv_259 button{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;padding:0 var(--spacing-xs)}._workArea_10flv_280{display:flex;flex:1;overflow:hidden;position:relative}._canvasArea_10flv_288{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;padding:var(--spacing-md);position:relative;background:var(--color-bg-tertiary);background-image:linear-gradient(45deg,rgba(0,0,0,.04) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.04) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.04) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.04) 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}._canvasContainer_10flv_307{background:#fff;box-shadow:var(--shadow-lg);flex-shrink:0}._dropActive_10flv_314{outline:3px dashed var(--accent);outline-offset:-6px}._dropOverlay_10flv_319{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1677ff14;pointer-events:none;z-index:5}._dropOverlay_10flv_319 span{padding:12px 24px;background:var(--accent);color:#fff;border-radius:var(--radius-md);font-size:14px;font-weight:500;box-shadow:var(--shadow-md)}._rightPanelContent_10flv_341{display:flex;flex-direction:column;height:100%;overflow-x:hidden;overflow-y:auto}._layersPanelSection_10flv_349{flex:0 0 min(38%,280px);min-height:120px;overflow:hidden}.orders-page{max-width:960px;margin:0 auto;padding:24px 16px;font-family:var(--font-sans);color:var(--text-primary)}.orders-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.orders-header h1{margin:0;font-size:var(--text-xl, 1.5rem)}.orders-loading{padding:32px 0;text-align:center;color:var(--text-secondary)}.orders-empty{text-align:center;color:var(--text-secondary)}.orders-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.orders-table th,.orders-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-default)}.orders-table tr:last-child td{border-bottom:none}.orders-table th{color:var(--text-secondary);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.orders-row{cursor:pointer;transition:background var(--duration-fast)}.orders-row:hover{background:var(--surface-hover)}.orders-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.orders-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.orders-modal{width:min(640px,calc(100vw - 32px));max-height:80vh;overflow:auto}.orders-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-default)}.orders-modal-header h3{margin:0;font-size:var(--text-md, 1.05rem)}.orders-modal-body{padding:16px 18px}.orders-modal-info{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:var(--text-sm)}.orders-detail-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.orders-detail-table th,.orders-detail-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border-default)}.orders-detail-table th{color:var(--text-secondary);font-weight:600;font-size:var(--text-xs);text-transform:uppercase}.cart-page{max-width:860px;margin:0 auto;padding:24px 16px;font-family:var(--font-sans);color:var(--text-primary)}.cart-title{margin:0 0 20px;font-size:var(--text-xl, 1.5rem)}.cart-empty{text-align:center}.cart-empty p{color:var(--text-secondary);margin:8px 0 16px}.cart-items{display:flex;flex-direction:column;gap:10px}.cart-item-row{display:flex;align-items:center;gap:14px}.cart-item-preview{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-md);background:var(--surface-sunken);flex:none}.cart-item-info{flex:1;min-width:0}.cart-item-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-item-sku{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-secondary)}.cart-item-qty{display:flex;align-items:center;gap:6px}.cart-item-qty-value{min-width:24px;text-align:center;font-variant-numeric:tabular-nums}.cart-item-price{min-width:90px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.cart-footer{display:flex;align-items:center;justify-content:space-between;margin-top:24px;padding-top:16px;border-top:1px solid var(--border-default)}.cart-total{font-size:var(--text-lg, 1.1rem)}.subscription-page{max-width:1100px;margin:0 auto;padding:24px 16px;font-family:var(--font-sans);color:var(--text-primary)}.subscription-title{margin:0 0 20px;font-size:var(--text-xl, 1.5rem)}.subscription-active-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.subscription-active-info{font-size:var(--text-sm)}.subscription-loading{padding:40px 0;text-align:center;color:var(--text-secondary)}.subscription-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.subscription-card-title{font-size:var(--text-md, 1.05rem);font-weight:700;margin-bottom:4px}.subscription-card-desc{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:10px}.subscription-variant-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.subscription-section{margin-top:32px}.subscription-section h2{font-size:var(--text-lg, 1.15rem);margin:0 0 6px}.subscription-hint{font-size:var(--text-sm);color:var(--text-secondary);margin:4px 0 14px}.subscription-list{display:flex;flex-direction:column;gap:8px}.subscription-manage-row,.subscription-card-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.subscription-manage-info{flex:1;display:flex;align-items:baseline;gap:10px;min-width:180px}.subscription-tx-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.subscription-tx-table th,.subscription-tx-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-default)}.subscription-tx-table tr:last-child td{border-bottom:none}.subscription-tx-table th{color:var(--text-secondary);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.subscription-tx-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.subscription-tx-err{color:var(--status-danger);font-size:var(--text-xs)}.activity-loading,.activity-empty{text-align:center;padding:40px 20px;color:var(--color-text-secondary, #888)}.activity-error{text-align:center;padding:40px 20px;color:var(--color-danger, #e74c3c)}.activity-refresh-btn{padding:6px 14px;border-radius:6px;border:1px solid var(--color-border, #ddd);background:var(--color-bg-secondary, #f5f5f5);color:var(--color-text, #333);cursor:pointer;font-size:13px}.activity-refresh-btn:hover{background:var(--color-bg-tertiary, #e8e8e8)}.activity-health{display:flex;gap:24px;align-items:flex-start}.activity-health-ring-container{flex-shrink:0}.activity-health-ring{width:88px;height:88px;border-radius:50%;background:conic-gradient(var(--color-primary, #4a90d9) calc(var(--pct, 0) * 1%),var(--color-border-light, #e8e8e8) calc(var(--pct, 0) * 1%));display:flex;align-items:center;justify-content:center;position:relative}.activity-health-ring:before{content:"";width:68px;height:68px;border-radius:50%;background:var(--color-bg, #fff);position:absolute}.activity-health-ring-value{position:relative;z-index:1;font-size:20px;font-weight:700;color:var(--color-text, #333)}.activity-health-info{flex:1;min-width:0}.activity-health-title{font-size:16px;font-weight:600;color:var(--color-text, #333);margin-bottom:4px}.activity-health-subtitle{font-size:13px;color:var(--color-text-secondary, #888);margin-bottom:14px}.activity-health-processors{display:flex;flex-direction:column;gap:8px}.activity-health-proc{display:flex;align-items:center;gap:8px;font-size:13px}.activity-health-proc-name{min-width:120px;color:var(--color-text, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-health-proc-bar{flex:1;max-width:180px;height:6px;background:var(--color-border-light, #e8e8e8);border-radius:3px;overflow:hidden}.activity-health-proc-bar-fill{height:100%;background:var(--color-primary, #4a90d9);border-radius:3px;transition:width .5s ease}.activity-health-proc-bar-fill--done{background:var(--color-success, #4caf50)}.activity-health-proc-pct{min-width:36px;text-align:right;font-weight:500;font-variant-numeric:tabular-nums;color:var(--color-text, #333)}.activity-health-proc-count{font-size:12px;color:var(--color-text-secondary, #999);font-variant-numeric:tabular-nums;white-space:nowrap}.activity-pipeline{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px 4px;overflow-x:visible;padding:4px 0}.activity-pipeline-arrow{color:var(--color-text-secondary, #ccc);font-size:18px;line-height:1;padding-top:14px;flex-shrink:0}.activity-pipeline-card{min-width:90px;max-width:130px;padding:10px 12px;border-radius:8px;border:1.5px solid var(--color-border-light, #e8e8e8);background:var(--color-bg, #fff);text-align:center;flex-shrink:0;transition:border-color .3s}.activity-pipeline-card--active{border-color:var(--color-primary, #4a90d9);animation:pipeline-card-glow 2s ease-in-out infinite}.activity-pipeline-card--done{border-color:var(--color-success, #4caf50);opacity:.8}@keyframes pipeline-card-glow{0%,to{box-shadow:0 0 #4a90d900}50%{box-shadow:0 0 0 3px #4a90d926}}.activity-pipeline-card-name{font-size:11px;font-weight:600;color:var(--color-text, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}.activity-pipeline-card-bar{height:4px;background:var(--color-border-light, #e8e8e8);border-radius:2px;overflow:hidden;margin-bottom:4px}.activity-pipeline-card-bar-fill{height:100%;background:var(--color-primary, #4a90d9);border-radius:2px;transition:width .5s ease}.activity-pipeline-card-count{font-size:10px;color:var(--color-text-secondary, #999);font-variant-numeric:tabular-nums}.activity-milestones{display:flex;flex-direction:column;gap:6px}.activity-milestone{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--color-border-light, #f0f0f0);font-size:13px}.activity-milestone:last-child{border-bottom:none}.activity-milestone-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}.activity-milestone--complete .activity-milestone-icon{background:var(--color-success-bg, #e8f5e9);color:var(--color-success, #388e3c)}.activity-milestone--error .activity-milestone-icon{background:var(--color-danger-bg, #fce4ec);color:var(--color-danger, #d32f2f)}.activity-milestone--info .activity-milestone-icon{background:var(--color-info-bg, #e3f2fd);color:var(--color-info, #1976d2)}.activity-milestone-text{flex:1;color:var(--color-text, #333)}.activity-milestone-time{font-size:11px;color:var(--color-text-secondary, #999);white-space:nowrap}.activity-section-title{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--color-text, #333)}.activity-section-title--error{color:var(--color-danger, #e74c3c)}.activity-stat-row{display:flex;gap:12px;flex-wrap:wrap}.activity-stat-badge{display:flex;flex-direction:column;align-items:center;padding:10px 16px;border-radius:8px;min-width:80px}.activity-stat-badge--processing{background:var(--color-info-bg, #e3f2fd)}.activity-stat-badge--done{background:var(--color-success-bg, #e8f5e9)}.activity-stat-badge--error{background:var(--color-danger-bg, #fce4ec)}.activity-stat-badge--info{background:var(--color-bg-secondary, #f5f5f5)}.activity-stat-value{font-size:20px;font-weight:700;line-height:1.2;color:var(--color-text, #333)}.activity-stat-label{font-size:12px;color:var(--color-text-secondary, #888);margin-top:2px}.activity-processor-list{display:flex;flex-direction:column;gap:6px}.activity-processor-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--color-border-light, #f0f0f0)}.activity-processor-row:last-child{border-bottom:none}.activity-processor-name{font-size:13px;color:var(--color-text, #333)}.activity-processor-counts{display:flex;align-items:center;gap:6px}.activity-count{font-size:12px;padding:2px 8px;border-radius:10px;font-weight:500;font-variant-numeric:tabular-nums}.activity-count--queued{background:var(--color-bg-tertiary, #e0e0e0);color:var(--color-text-secondary, #666)}.activity-count--processing{background:var(--color-info-bg, #e3f2fd);color:var(--color-info, #1976d2)}.activity-count--done{background:var(--color-success-bg, #e8f5e9);color:var(--color-success, #388e3c)}.activity-count--error{background:var(--color-danger-bg, #fce4ec);color:var(--color-danger, #d32f2f)}.activity-count--idle{background:var(--color-bg-secondary, #f5f5f5);color:var(--color-text-secondary, #999)}.activity-user-status{font-size:12px;padding:2px 10px;border-radius:10px;font-weight:500}.activity-user-status--idle{background:var(--color-bg-secondary, #f5f5f5);color:var(--color-text-secondary, #999)}.activity-user-status--running{background:var(--color-info-bg, #e3f2fd);color:var(--color-info, #1976d2);animation:activity-pulse 1.5s infinite}.activity-user-status--completed{background:var(--color-success-bg, #e8f5e9);color:var(--color-success, #388e3c)}.activity-user-status--error{background:var(--color-danger-bg, #fce4ec);color:var(--color-danger, #d32f2f)}.activity-last-run{font-size:11px;color:var(--color-text-secondary, #999)}@keyframes activity-pulse{0%,to{opacity:1}50%{opacity:.4}}.activity-batch-list{display:flex;flex-direction:column;gap:10px}.activity-batch-item{padding:10px 12px;border-radius:6px;background:var(--color-bg-secondary, #fafafa);border:1px solid var(--color-border-light, #f0f0f0)}.activity-batch-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.activity-batch-label{font-size:13px;font-weight:600;color:var(--color-text, #333)}.activity-batch-status{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500;text-transform:uppercase}.activity-batch-status--pending,.activity-batch-status--running{background:var(--color-info-bg, #e3f2fd);color:var(--color-info, #1976d2)}.activity-batch-status--completed{background:var(--color-success-bg, #e8f5e9);color:var(--color-success, #388e3c)}.activity-batch-status--error,.activity-batch-status--cancelled{background:var(--color-danger-bg, #fce4ec);color:var(--color-danger, #d32f2f)}.activity-progress-bar{height:6px;border-radius:3px;background:var(--color-bg-tertiary, #e0e0e0);overflow:hidden;margin-bottom:6px}.activity-progress-fill{height:100%;border-radius:3px;background:var(--color-primary, #4a90d9);transition:width .3s ease}.activity-batch-detail{font-size:12px;color:var(--color-text-secondary, #888)}.activity-batch-error{font-size:12px;color:var(--color-danger, #e74c3c);margin-top:4px}.activity-error-list{display:flex;flex-direction:column;gap:6px}.activity-error-item{display:flex;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid var(--color-border-light, #f0f0f0);font-size:13px}.activity-error-item:last-child{border-bottom:none}.activity-error-filename{font-weight:500;color:var(--color-text, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.activity-error-msg{color:var(--color-danger, #e74c3c);font-size:12px}@media (max-width: 640px){.activity-health{flex-direction:column;align-items:center;text-align:center}.activity-health-proc-name{min-width:80px}.activity-health-proc-bar{max-width:120px}.activity-pipeline{gap:2px}.activity-pipeline-card{min-width:70px;padding:8px}.activity-pipeline-card-name{font-size:10px}}.gp-page{max-width:800px;margin:0 auto;padding:24px 16px}.gp-title{font-size:1.5rem;font-weight:600;margin-bottom:24px}.gp-loading{text-align:center;padding:48px;color:var(--text-secondary, #666)}.gp-section{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:12px;padding:20px;margin-bottom:20px}.gp-section h3{font-size:1.1rem;font-weight:600;margin:0 0 16px}.gp-empty{text-align:center;padding:32px 0}.gp-empty p{margin-bottom:16px;color:var(--text-secondary, #666)}.gp-connection-card{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border-color, #e0e0e0);gap:12px;flex-wrap:wrap}.gp-connection-card:last-of-type{border-bottom:none}.gp-connection-email{font-weight:500}.gp-connection-meta{font-size:.85rem;color:var(--text-secondary, #666);margin-top:4px}.gp-connection-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gp-toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer}.gp-status{font-weight:500;text-transform:capitalize}.gp-status-active{color:var(--color-success, #22c55e)}.gp-status-expired{color:var(--color-warning, #f59e0b)}.gp-status-revoked{color:var(--color-error, #ef4444)}.gp-status-completed{color:var(--color-success, #22c55e)}.gp-status-failed{color:var(--color-error, #ef4444)}.gp-status-running{color:var(--color-primary, #3b82f6)}.gp-status-pending{color:var(--color-warning, #f59e0b)}.gp-status-cancelled{color:var(--text-secondary, #666)}.gp-btn{padding:8px 16px;border-radius:8px;font-size:.875rem;font-weight:500;border:none;cursor:pointer;transition:opacity .15s;white-space:nowrap}.gp-btn:disabled{opacity:.5;cursor:not-allowed}.gp-btn-primary{background:var(--color-primary, #3b82f6);color:#fff}.gp-btn-secondary{background:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #111)}.gp-btn-danger{background:var(--color-error, #ef4444);color:#fff}.gp-btn-outline{background:transparent;border:1px dashed var(--border-color, #ccc);color:var(--text-secondary, #666);margin-top:12px}.gp-wizard{border-color:var(--color-primary, #3b82f6)}.gp-radio{display:flex;align-items:center;gap:8px;margin-bottom:8px;cursor:pointer}.gp-album-list{max-height:300px;overflow-y:auto;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:8px;margin:12px 0}.gp-album-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;cursor:pointer}.gp-album-item:hover{background:var(--bg-secondary, #f3f4f6)}.gp-album-title{flex:1}.gp-album-count{font-size:.8rem;color:var(--text-secondary, #666)}.gp-setting{margin:12px 0}.gp-setting label{display:flex;align-items:center;gap:8px;cursor:pointer}.gp-wizard-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.gp-muted{color:var(--text-secondary, #666);font-size:.9rem}.gp-progress{margin:16px 0}.gp-progress-bar{height:8px;background:var(--bg-secondary, #e5e7eb);border-radius:4px;overflow:hidden;margin-bottom:12px}.gp-progress-fill{height:100%;background:var(--color-primary, #3b82f6);border-radius:4px;transition:width .3s;animation:gp-pulse 2s infinite}@keyframes gp-pulse{0%,to{opacity:1}50%{opacity:.7}}.gp-progress-stats{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:8px}.gp-stat{font-size:.85rem;font-weight:500}.gp-stat-imported{color:var(--color-success, #22c55e)}.gp-stat-skipped{color:var(--text-secondary, #666)}.gp-stat-failed{color:var(--color-error, #ef4444)}.gp-stat-size{color:var(--text-secondary, #666)}.gp-progress-status{font-size:.85rem;color:var(--text-secondary, #666)}.gp-jobs-list{display:flex;flex-direction:column;gap:8px}.gp-job-card{padding:12px;border:1px solid var(--border-color, #e0e0e0);border-radius:8px}.gp-job-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.gp-job-type{font-weight:500;text-transform:capitalize}.gp-job-date{font-size:.8rem;color:var(--text-secondary, #666);margin-left:auto}.gp-job-stats{font-size:.85rem;color:var(--text-secondary, #666);margin-top:6px}.tidy-tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tidy-tabs::-webkit-scrollbar{display:none}.tidy-tab{display:inline-flex;align-items:center;gap:7px;flex:none;padding:7px 14px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted, #667085);font-size:13px;font-weight:600;white-space:nowrap;text-decoration:none;transition:background .12s,color .12s}.tidy-tab:hover{background:var(--surface-sunken, #f1f3f5);color:var(--text, #101828)}.tidy-tab--active{background:var(--panel, #fff);border-color:var(--border-strong, #d0d5dd);color:var(--text, #101828);box-shadow:var(--shadow-sm)}.tidy-tab-count{min-width:20px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums;background:var(--surface-sunken, #f1f3f5);color:var(--muted, #667085)}.tidy-tab--active .tidy-tab-count{background:var(--accent-light, #eef5ff);color:var(--accent, #1677ff)}.tidy-tab-count--hot{background:var(--color-error-bg, #fdebec);color:var(--color-error-text, #c2383c)}.cleanup-page{padding:1rem 1.5rem 2rem;max-width:none}.cleanup-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-bottom:14px}.cleanup-title{font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--text, #101828);margin:0}.cleanup-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--muted, #667085)}.cleanup-stat-accent{color:var(--color-success-text, #157f3c);font-weight:600}.cleanup-stat-sep{color:var(--placeholder, #98a2b3)}.cleanup-loading,.cleanup-empty{padding:3rem 1.5rem;text-align:center;color:var(--muted, #667085)}.cleanup-empty h2{color:var(--text, #101828);margin:0 0 .75rem}.cleanup-empty-hint{font-size:.85rem;color:var(--placeholder, #98a2b3)}.cleanup-section{margin-bottom:2rem}.cleanup-section-title{font-size:17px;font-weight:700;color:var(--text, #101828);margin:0 0 4px}.cleanup-section-hint{font-size:12.5px;color:var(--muted, #667085);margin:0 0 .9rem}.cleanup-bulk-toolbar{position:sticky;top:98px;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;min-height:54px;margin-bottom:14px;padding:10px 14px;border:1px solid var(--border, #e4e7ec);border-radius:10px;background:var(--panel, #fff);box-shadow:var(--shadow-sm)}.cleanup-bulk-toolbar.reviewing{border-color:var(--color-primary-border, #b3d1ff);background:var(--accent-light, #eef5ff)}.cleanup-bulk-select-all,.cleanup-group-include{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text, #101828);cursor:pointer;white-space:nowrap}.cleanup-bulk-select-all input,.cleanup-group-include input{width:16px;height:16px;margin:0;accent-color:var(--accent, #1677ff)}.cleanup-bulk-summary{display:flex;flex:1;flex-direction:column;min-width:150px;font-size:12.5px;color:var(--muted, #667085)}.cleanup-bulk-summary strong{color:var(--text, #101828);font-size:13px}.cleanup-bulk-action{margin-left:auto}.cleanup-bulk-confirm{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:2}.cleanup-bulk-warning{max-width:280px;margin-right:auto;color:var(--text, #101828);font-size:12.5px}.cleanup-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;align-items:start}.cleanup-group{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px;border-radius:12px;background:var(--panel, #fff);border:1px solid var(--border, #e4e7ec)}.cleanup-group.bulk-selected{border-color:var(--color-primary-border, #b3d1ff)}.cleanup-group-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;font-size:12.5px;color:var(--muted, #667085)}.cleanup-group-include{padding-right:4px;color:var(--accent, #1677ff)}.cleanup-group-save{margin-left:auto;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-success-text, #157f3c);background:var(--color-success-bg, #e7f6ec);border:1px solid var(--color-success-border, #bbe7c9)}.cleanup-group-photos{display:flex;flex-wrap:wrap;gap:8px}.cleanup-photo{position:relative;width:128px;cursor:pointer;border-radius:8px;outline:2px solid transparent;outline-offset:0;transition:outline-color .1s}.cleanup-photo:hover{outline-color:var(--border-strong, #d0d5dd)}.cleanup-photo.keep{outline-color:var(--accent, #1677ff)}.cleanup-photo-frame{position:relative;border-radius:8px;overflow:hidden}.cleanup-thumb{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.cleanup-thumb-placeholder{background:var(--surface-sunken, #f1f3f5)}.cleanup-photo-star{position:absolute;top:6px;left:6px;padding:2px 7px;border-radius:999px;background:#1018289e;color:#ffd766;font-size:10.5px;font-weight:700;pointer-events:none;white-space:nowrap}.cleanup-keep-tag{position:absolute;left:0;right:0;bottom:0;padding:3px 0;text-align:center;background:var(--accent, #1677ff);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;pointer-events:none}.cleanup-photo-caption{display:flex;justify-content:space-between;gap:6px;font-size:11px;color:var(--muted, #667085);padding:4px 2px 1px;font-variant-numeric:tabular-nums}.cleanup-group-actions{display:flex;flex-wrap:wrap;gap:8px}.cleanup-logical-toolbar{position:static}.cleanup-logical-batch{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.cleanup-format-badge{position:absolute;top:6px;left:6px;padding:2px 7px;border-radius:6px;background:#1018289e;color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em;pointer-events:none}.cleanup-format-badge.raw{background:var(--ai-accent, #7c5cff)}.cleanup-photo-filename{padding:4px 2px 0;font-size:11px;color:var(--text, #101828);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.cleanup-logical-more{display:flex;justify-content:center;margin-top:14px}.cleanup-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid var(--border-strong, #d0d5dd);background:var(--panel, #fff);color:var(--text, #101828);font-size:13px;font-weight:600;cursor:pointer}.cleanup-btn:hover:not(:disabled){border-color:var(--accent, #1677ff);color:var(--accent, #1677ff)}.cleanup-btn:disabled{opacity:.45;cursor:default}.cleanup-btn-primary{background:var(--accent, #1677ff);border-color:var(--accent, #1677ff);color:#fff}.cleanup-btn-primary:hover:not(:disabled){background:var(--accent-hover, #0e63e0);border-color:var(--accent-hover, #0e63e0);color:#fff}.cleanup-btn-danger{background:var(--danger, #e5484d);border-color:var(--danger, #e5484d);color:#fff}.cleanup-btn-danger:hover:not(:disabled){color:#fff;opacity:.9}@media (max-width: 768px){.cleanup-page{padding:.75rem .75rem 1.5rem}.cleanup-photo{width:calc(33.33% - 6px)}.cleanup-bulk-toolbar,.cleanup-bulk-confirm{align-items:stretch;flex-direction:column}.cleanup-logical-batch{margin-left:0}.cleanup-bulk-toolbar{position:static}.cleanup-bulk-confirm{width:100%}.cleanup-bulk-warning{max-width:none}}.tidy-page{padding:1rem 1.5rem 2rem;max-width:none}.tidy-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-bottom:14px}.tidy-title{font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--text, #101828);margin:0}.tidy-subtitle{font-size:13px;color:var(--muted, #667085);margin:0;max-width:72ch}.tidyfix-tabs{display:inline-flex;gap:4px;padding:4px;margin-bottom:16px;border-radius:999px;background:var(--surface-sunken, #f1f3f5)}.tidyfix-tab{padding:6px 14px;border:1px solid transparent;border-radius:999px;background:none;font-size:13px;font-weight:600;color:var(--muted, #667085);cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums}.tidyfix-tab:hover{color:var(--text, #101828)}.tidyfix-tab.active{background:var(--panel, #fff);border-color:var(--border-strong, #d0d5dd);color:var(--text, #101828);box-shadow:var(--shadow-sm)}.tidy-loading,.tidy-empty{padding:3rem 1.5rem;text-align:center;color:var(--muted, #667085)}.tidy-empty-hint{font-size:.85rem;color:var(--placeholder, #98a2b3)}.tidyfix-toolbar{position:sticky;top:98px;z-index:5;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;min-height:54px;margin-bottom:14px;padding:10px 14px;border:1px solid var(--border, #e4e7ec);border-radius:10px;background:var(--panel, #fff);box-shadow:var(--shadow-sm)}.tidyfix-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;align-items:start}.tidyfix-card{display:flex;gap:12px;padding:12px;border-radius:12px;background:var(--panel, #fff);border:1px solid var(--border, #e4e7ec)}.tidyfix-thumb{width:72px;height:72px;border-radius:8px;object-fit:cover;flex:none;display:block}.tidyfix-thumb-placeholder{background:var(--surface-sunken, #f1f3f5)}.tidyfix-card-body{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.tidyfix-card-filename{font-size:13px;font-weight:600;color:var(--text, #101828);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tidy-suggestion{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12.5px;color:var(--muted, #667085)}.tidy-suggestion-detail{color:var(--placeholder, #98a2b3)}.tidy-confidence{padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;background:var(--surface-sunken, #f1f3f5);color:var(--muted, #667085)}.tidy-confidence--high{background:var(--color-success-bg, #e7f6ec);color:var(--color-success-text, #157f3c)}.tidy-confidence--medium{background:var(--color-warning-bg, #fdf3e1);color:var(--color-warning-text, #9a6403)}.tidy-confidence--low{background:var(--color-error-bg, #fdebec);color:var(--color-error-text, #c2383c)}.tidy-manual-label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted, #667085)}.tidy-manual-input{padding:4px 8px;border:1px solid var(--border-strong, #d0d5dd);border-radius:6px;font-size:12.5px;background:var(--field-bg, #fff);color:var(--text, #101828)}.tidy-no-suggestion{font-size:12px;color:var(--placeholder, #98a2b3);font-style:italic}.tidyfix-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}.tidy-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;border:1px solid var(--border-strong, #d0d5dd);background:var(--panel, #fff);color:var(--text, #101828);font-size:12.5px;font-weight:600;cursor:pointer}.tidy-btn:hover:not(:disabled){border-color:var(--accent, #1677ff);color:var(--accent, #1677ff)}.tidy-btn:disabled{opacity:.45;cursor:default}.tidy-btn-primary{background:var(--accent, #1677ff);border-color:var(--accent, #1677ff);color:#fff}.tidy-btn-primary:hover:not(:disabled){background:var(--accent-hover, #0e63e0);border-color:var(--accent-hover, #0e63e0);color:#fff}.tidy-more{display:flex;justify-content:center;margin-top:1rem}@media (max-width: 768px){.tidy-page{padding:.75rem .75rem 1.5rem}.tidyfix-toolbar{position:static;align-items:stretch;flex-direction:column}.tidyfix-toolbar .tidy-btn{justify-content:center}.tidyfix-grid{grid-template-columns:1fr}}.tidy-overview-page{padding:1rem 1.5rem 2rem;max-width:none}.tidy-overview-header{margin-bottom:16px}.tidy-overview-title{font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--text, #101828);margin:0 0 4px}.tidy-overview-subtitle{font-size:13px;color:var(--muted, #667085);margin:0;max-width:62ch}.tidy-overview-loading{padding:3rem 1.5rem;text-align:center;color:var(--muted, #667085)}.tidy-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--border, #e4e7ec);border:1px solid var(--border, #e4e7ec);border-radius:12px;overflow:hidden;margin-bottom:20px}.tidy-summary-cell{background:var(--panel, #fff);padding:16px 20px;display:flex;flex-direction:column;gap:4px}.tidy-summary-label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted, #667085)}.tidy-summary-value{font-size:26px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text, #101828)}.tidy-summary-value small{font-size:14px;font-weight:600;color:var(--muted, #667085);letter-spacing:0}.tidy-summary-value--ok{color:var(--color-success-text, #157f3c)}.tidy-summary-note{font-size:12px;color:var(--muted, #667085)}.tidy-progress{height:6px;border-radius:999px;background:var(--surface-sunken, #f1f3f5);overflow:hidden;margin-top:6px}.tidy-progress>i{display:block;height:100%;border-radius:999px;background:var(--accent, #1677ff)}.tidy-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.tidy-card{display:flex;flex-direction:column;background:var(--panel, #fff);border:1px solid var(--border, #e4e7ec);border-radius:12px;overflow:hidden;transition:border-color .12s,box-shadow .12s}.tidy-card:hover{border-color:var(--border-strong, #d0d5dd);box-shadow:var(--shadow-sm)}.tidy-card-strip{display:flex;gap:2px;height:88px;background:var(--surface-sunken, #f1f3f5)}.tidy-strip-thumb{flex:1;min-width:0;height:88px;object-fit:cover;display:block}.tidy-strip-placeholder{background:var(--surface-sunken, #f1f3f5)}.tidy-card-strip-more{flex:0 0 64px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--muted, #667085);background:var(--surface-sunken, #f1f3f5);font-variant-numeric:tabular-nums}.tidy-card-body{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px;flex:1}.tidy-card-top{display:flex;align-items:center;gap:10px}.tidy-card-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}.tidy-card-ico svg{width:18px;height:18px}.tidy-card-ico--danger{background:var(--color-error-bg, #fdebec);color:var(--color-error-text, #c2383c)}.tidy-card-ico--accent{background:var(--accent-light, #eef5ff);color:var(--accent, #1677ff)}.tidy-card-ico--warn{background:var(--color-warning-bg, #fdf3e1);color:var(--color-warning-text, #9a6403)}.tidy-card-ico--ai{background:var(--ai-accent-soft, #f1edff);color:var(--ai-accent, #7c5cff)}.tidy-card-ico--plain{background:var(--surface-sunken, #f1f3f5);color:var(--muted, #667085)}.tidy-card-title{font-size:15px;font-weight:600;color:var(--text, #101828);margin:0}.tidy-card-desc{font-size:12.5px;color:var(--muted, #667085);margin:0;flex:1}.tidy-card-stats{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:1.4em;margin-top:2px}.tidy-card-count{font-size:15px;font-weight:700;color:var(--text, #101828);font-variant-numeric:tabular-nums}.tidy-card-count--muted{font-weight:400;color:var(--placeholder, #98a2b3)}.tidy-chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--border, #e4e7ec);color:var(--muted, #667085);background:var(--surface-sunken, #f1f3f5)}.tidy-chip--free{color:var(--color-success-text, #157f3c);background:var(--color-success-bg, #e7f6ec);border-color:var(--color-success-border, #bbe7c9)}.tidy-chip--ai{color:var(--ai-accent, #7c5cff);background:var(--ai-accent-soft, #f1edff);border-color:transparent}.tidy-card-cta{align-self:flex-start;margin-top:10px;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid var(--accent, #1677ff);background:var(--accent, #1677ff);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.tidy-card-cta:hover{background:var(--accent-hover, #0e63e0);border-color:var(--accent-hover, #0e63e0)}.tidy-card-cta--quiet{background:var(--panel, #fff);color:var(--accent, #1677ff)}.tidy-card-cta--quiet:hover{background:var(--accent-light, #eef5ff);border-color:var(--accent, #1677ff)}@media (max-width: 768px){.tidy-overview-page{padding:.75rem .75rem 1.5rem}.tidy-summary-value{font-size:21px}}.triage-page{padding:1rem 1.5rem 2rem;max-width:none}.triage-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-bottom:14px}.triage-title{font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--text, #101828);margin:0}.triage-subtitle{font-size:13px;color:var(--muted, #667085);margin:0;max-width:72ch}.triage-loading,.triage-empty{padding:3rem 1.5rem;text-align:center;color:var(--muted, #667085);font-size:1rem}.triage-toolbar{position:sticky;top:98px;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;min-height:54px;margin-bottom:14px;padding:10px 14px;border:1px solid var(--border, #e4e7ec);border-radius:10px;background:var(--panel, #fff);box-shadow:var(--shadow-sm)}.triage-toolbar.selecting{border-color:var(--color-primary-border, #b3d1ff)}.triage-select-all{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text, #101828);cursor:pointer;white-space:nowrap}.triage-select-all input{width:16px;height:16px;margin:0;accent-color:var(--accent, #1677ff)}.triage-toolbar-count{flex:1;min-width:120px;font-size:12.5px;color:var(--muted, #667085);font-variant-numeric:tabular-nums}.triage-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.triage-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid var(--border-strong, #d0d5dd);background:var(--panel, #fff);color:var(--text, #101828);font-size:13px;font-weight:600;cursor:pointer}.triage-btn:hover:not(:disabled){border-color:var(--accent, #1677ff);color:var(--accent, #1677ff)}.triage-btn:disabled{opacity:.45;cursor:default}.triage-btn-primary{background:var(--accent, #1677ff);border-color:var(--accent, #1677ff);color:#fff}.triage-btn-primary:hover:not(:disabled){background:var(--accent-hover, #0e63e0);border-color:var(--accent-hover, #0e63e0);color:#fff}.triage-btn-danger{background:var(--danger, #e5484d);border-color:var(--danger, #e5484d);color:#fff}.triage-btn-danger:hover:not(:disabled){color:#fff;opacity:.9}.triage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}.triage-item{position:relative;cursor:pointer;border-radius:8px;overflow:hidden;background:var(--surface-sunken, #f1f3f5);outline:2px solid transparent;outline-offset:0;transition:outline-color .1s}.triage-item:hover{outline-color:var(--border-strong, #d0d5dd)}.triage-item:focus-visible{outline-color:var(--accent, #1677ff);box-shadow:var(--focus-ring)}.triage-item.selected{outline-color:var(--accent, #1677ff)}.triage-thumb{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.triage-thumb-placeholder{background:var(--surface-sunken, #f1f3f5)}.triage-item-tick{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.9);background:#10182859;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;opacity:0;transition:opacity .1s;pointer-events:none}.triage-item:hover .triage-item-tick{opacity:.85}.triage-item.selected .triage-item-tick{opacity:1;background:var(--accent, #1677ff);border-color:var(--accent, #1677ff)}.triage-item-badge{position:absolute;left:8px;bottom:8px;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 8px;border-radius:999px;background:#1018289e;color:#fff;font-size:11px;font-weight:600;pointer-events:none}.triage-more{display:flex;justify-content:center;margin-top:1rem}.triage-toast-link{color:inherit;text-decoration:underline;font-weight:600}@media (max-width: 768px){.triage-page{padding:.75rem .75rem 1.5rem}.triage-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px}.triage-toolbar{position:static;align-items:stretch;flex-direction:column;gap:8px}.triage-toolbar-actions{margin-left:0;width:100%}.triage-toolbar-actions .triage-btn{flex:1;justify-content:center}}.discoveries-page{padding:1rem 1.5rem 2rem;max-width:1100px;margin:0 auto}.discoveries-header{display:flex;align-items:center;gap:12px;margin-bottom:.75rem}.discoveries-title{font-size:1.5rem;font-weight:700;color:var(--text, #222);margin:0}.discoveries-batch-badge{padding:4px 12px;border-radius:999px;background:var(--accent-light, #e7f1ff);color:var(--accent, #007bff);font-size:.85rem;font-weight:600}.discoveries-loading,.discoveries-empty{padding:3rem 1.5rem;text-align:center;color:var(--text-secondary, #666)}.discoveries-empty h2{color:var(--text, #222);margin:0 0 .75rem}.discoveries-empty-hint{font-size:.85rem;color:var(--text-secondary, #888)}.discoveries-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:1.25rem}.discoveries-stat{padding:4px 10px;border-radius:999px;font-size:.82rem;font-weight:600;background:var(--card-bg, #f8f9fa);color:var(--text-secondary, #666)}.discoveries-stat.ok{background:#e6f6ec;color:#1a7f42}.discoveries-stat.dup{background:#fff6e0;color:#9a6b00}.discoveries-stat.err{background:#fdeaea;color:#c0392b}.discoveries-pending{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;background:var(--accent-light, #e7f1ff);color:var(--accent, #007bff);font-size:.9rem;font-weight:500;margin-bottom:1.5rem}.discoveries-pending-spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:discoveries-spin .9s linear infinite;flex:none}@keyframes discoveries-spin{to{transform:rotate(360deg)}}.discoveries-section{margin-bottom:1.75rem}.discoveries-section-title{display:flex;align-items:center;gap:10px;font-size:1.15rem;font-weight:600;color:var(--text, #222);margin:0 0 .6rem}.discoveries-new-badge{padding:2px 8px;border-radius:999px;background:#e6f6ec;color:#1a7f42;font-size:.75rem;font-weight:600}.discoveries-persons{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.discoveries-person-card{padding:12px 14px;border-radius:10px;background:var(--card-bg, #f8f9fa);border:1px solid var(--border, #e9ecef)}.discoveries-person-name{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text, #222);margin-bottom:4px}.discoveries-chip-new{padding:1px 7px;border-radius:999px;background:var(--accent, #007bff);color:#fff;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.discoveries-person-meta{font-size:.8rem;color:var(--text-secondary, #666)}.discoveries-person-cta{display:inline-block;margin-top:8px;font-size:.85rem;font-weight:600;color:var(--accent, #007bff);text-decoration:none}.discoveries-person-cta:hover{text-decoration:underline}.discoveries-events{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.discoveries-event-card{display:block;padding:12px 14px;border-radius:10px;background:var(--card-bg, #f8f9fa);border:1px solid var(--border, #e9ecef);text-decoration:none;transition:transform .15s,box-shadow .15s}.discoveries-event-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000001a}.discoveries-event-title{font-weight:600;color:var(--text, #222);margin-bottom:4px}.discoveries-event-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.8rem;color:var(--text-secondary, #666)}.discoveries-places{display:flex;flex-wrap:wrap;gap:10px}.discoveries-place-card{display:flex;align-items:baseline;gap:8px;padding:8px 14px;border-radius:10px;background:var(--card-bg, #f8f9fa);border:1px solid var(--border, #e9ecef)}.discoveries-place-city{font-weight:600;color:var(--text, #222)}.discoveries-place-count{font-size:.8rem;color:var(--text-secondary, #666)}.discoveries-tags{display:flex;flex-wrap:wrap;gap:8px}.discoveries-tag-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:var(--accent-light, #e7f1ff);color:var(--accent, #007bff);font-size:.85rem;font-weight:500}.discoveries-tag-count{font-size:.75rem;font-weight:700;opacity:.75}@media (max-width: 768px){.discoveries-page{padding:.75rem .75rem 1.5rem}.discoveries-persons,.discoveries-events{grid-template-columns:1fr 1fr}}.collect-muted{color:var(--text-secondary, #666);font-size:.9rem;margin:.5rem 0}.collect-error{display:flex;align-items:center;gap:12px;color:var(--status-danger, #c0392b);font-size:.9rem}.collect-create-fields{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.collect-field{display:flex;flex-direction:column;gap:4px;min-width:120px}.collect-field--grow{flex:1 1 240px}.collect-field-label{font-size:.8rem;font-weight:600;color:var(--text-secondary, #666)}.collect-created{margin-top:1rem;padding:.9rem 1rem;border:1px solid var(--color-primary-border, #b3d4ff);background:var(--color-primary-soft, #eaf3ff);border-radius:var(--radius-sm, 8px)}.collect-created-title{margin:0 0 .25rem;font-weight:600;color:var(--text-primary, #222)}.collect-created-hint{margin:0 0 .6rem;font-size:.85rem;color:var(--text-secondary, #666)}.collect-linkrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.collect-link{padding:6px 10px;background:var(--surface-card, #fff);border:1px solid var(--border-default, #ddd);border-radius:var(--radius-xs, 4px);font-size:.82rem;word-break:break-all;max-width:100%}.collect-list-title{margin:0 0 .75rem;font-size:1.1rem;font-weight:700;color:var(--text-primary, #222)}.collect-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.collect-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:.7rem .9rem;border:1px solid var(--border-default, #e3e3e3);border-radius:var(--radius-sm, 8px);background:var(--surface-card, #fff)}.collect-item-main{flex:1 1 260px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;border:none;background:none;padding:0;cursor:pointer;text-align:left;font:inherit;color:inherit}.collect-item-title{font-weight:600;color:var(--text-primary, #222)}.collect-item-main:hover .collect-item-title{color:var(--color-primary, #007bff)}.collect-item-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.82rem;color:var(--text-secondary, #666)}.collect-item-actions{display:flex;gap:8px;flex-wrap:wrap}.collect-inbox-head{display:flex;align-items:center;gap:12px;margin-bottom:.75rem;flex-wrap:wrap}.collect-inbox-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--text-primary, #222)}.collect-inbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:.75rem}.collect-inbox-actions{display:flex;gap:8px;flex-wrap:wrap}.collect-inbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.collect-inbox-tile{position:relative;aspect-ratio:1;border-radius:var(--radius-sm, 8px);overflow:hidden;cursor:pointer;border:2px solid transparent;background:var(--surface-sunken, #f2f2f2)}.collect-inbox-tile--selected{border-color:var(--color-primary, #007bff)}.collect-inbox-tile--muted{cursor:default;opacity:.75}.collect-inbox-tile-img{width:100%;height:100%;object-fit:cover;display:block}.collect-inbox-tile-placeholder{width:100%;height:100%;background:var(--surface-sunken, #ececec)}.collect-inbox-check{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;border:2px solid #fff;background:#00000059;color:#fff;font-size:13px;line-height:18px;text-align:center}.collect-inbox-check--on{background:var(--color-primary, #007bff);border-color:var(--color-primary, #007bff)}.collect-inbox-flag,.collect-inbox-status{position:absolute;bottom:6px;left:6px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:600;background:#0000008c;color:#fff}@media (max-width: 640px){.collect-create-fields{flex-direction:column;align-items:stretch}.collect-field{min-width:0}.collect-field--grow{flex-basis:auto}.collect-inbox-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}}.collect-howto-lead{margin:0 0 10px;color:var(--text-primary, #333)}.collect-howto-steps{margin:0;padding-left:1.25rem;color:var(--text-secondary, #667085);display:grid;gap:4px}.family-wiz-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1018288c;z-index:50}.family-wiz-spot{position:fixed;z-index:51;border-radius:14px;box-shadow:0 0 0 3px var(--color-primary, #1677ff),0 0 0 9999px #1018288c;pointer-events:none;transition:top .25s,left .25s,width .25s,height .25s}.family-wiz-card{position:fixed;z-index:52;background:var(--surface-card, #fff);border:1px solid var(--border-default, #e4e7ec);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 12px 32px rgba(16, 24, 40, .16));padding:18px;width:360px;max-width:92vw}.family-wiz-card h3{margin:0 0 6px;font-size:17px;display:flex;gap:8px;align-items:center}.family-wiz-card p{margin:0 0 6px;color:var(--text-secondary, #667085);font-size:var(--text-sm, 13px);line-height:1.55}.family-wiz-demo{border:1px dashed var(--border-default, #e4e7ec);border-radius:var(--radius-md, 10px);padding:10px 12px;margin:10px 0 2px;background:var(--surface-sunken, #f1f3f5);font-size:var(--text-sm, 13px)}.family-wiz-stat{display:flex;gap:14px;margin-bottom:8px}.family-wiz-stat b{font-size:18px}.family-wiz-stat span{color:var(--text-secondary, #667085);font-size:var(--text-xs, 12px)}.family-wiz-demo-note{color:var(--text-tertiary, #98a2b3);font-size:11px;margin-top:6px}.family-wiz-row{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-top:14px}.family-wiz-dots{display:flex;gap:6px}.family-wiz-dot{width:8px;height:8px;border-radius:50%;background:var(--border-default, #d0d5dd);cursor:pointer;border:0;padding:0}.family-wiz-dot.on{background:var(--color-primary, #1677ff)}.family-wiz-btns{display:flex;gap:8px;align-items:center}.family-wiz-skip{border:0;background:none;color:var(--text-tertiary, #98a2b3);cursor:pointer;font-size:var(--text-xs, 12px)}.family-wiz-skip:hover{color:var(--text-secondary, #667085)}@media (prefers-reduced-motion: reduce){.family-wiz-spot{transition:none}}:root{--family-gold: #d4930b}:root[data-theme=dark]{--family-gold: #f2b53a}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--family-gold: #f2b53a}}.family-gold{color:var(--family-gold)}.family-muted{color:var(--text-secondary, #666);font-size:.9rem;margin:.5rem 0}.family-error{display:flex;align-items:center;gap:12px;color:var(--status-danger, #c0392b);font-size:.9rem}.family-empty{text-align:center;padding:2.5rem 1rem}.family-empty p{margin:0 0 .5rem;color:var(--text-primary, #333);font-weight:600}.family-empty .family-muted{font-weight:400;margin-bottom:1rem}.family-empty-stats{display:flex;gap:28px;justify-content:center;margin-bottom:14px}.family-empty-stats b{font-size:26px}.family-empty-stats span{display:block;color:var(--text-secondary, #667085);font-size:var(--text-xs, 12px)}.family-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.family-toolbar-lbl{font-size:var(--text-sm, 13px);color:var(--text-secondary, #667085);font-weight:600}.family-toolbar-sp{flex:1}.family-sort{height:var(--control-h-sm, 30px);padding:0 10px;border:1px solid var(--border-default, #d0d5dd);border-radius:var(--radius-sm, 8px);background:var(--surface-card, #fff);color:var(--text-primary, #101828);font-size:var(--text-sm, 13px)}.family-tgl{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm, 13px);color:var(--text-secondary, #667085);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.family-tgl input{accent-color:var(--color-primary, #1677ff)}.family-legend{display:flex;gap:14px;align-items:center;font-size:var(--text-xs, 12px);color:var(--text-secondary, #667085);flex-wrap:wrap}.family-legend-item{display:inline-flex;align-items:center;gap:6px}.family-legend svg{display:block}.family-legend-line{stroke:var(--gray-400, #98a2b3);stroke-width:2}.family-legend-line--suggested{stroke:var(--status-warning, #f59e0b);stroke-width:2;stroke-dasharray:5 4}.family-gdot{width:8px;height:8px;border-radius:50%;display:inline-block}.family-gbadge{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs, 12px);font-weight:600;border-radius:var(--radius-pill, 999px);padding:2px 9px;border:1px solid var(--border-default, #e4e7ec)}.family-canvas{position:relative}.family-svg{width:100%;height:min(66vh,700px);min-height:400px;display:block;cursor:grab;touch-action:none;background:var(--surface-sunken, #fafbfc);border-radius:var(--radius-sm, 8px)}.family-svg:active{cursor:grabbing}.family-svg.linking,.family-svg.linking:active{cursor:crosshair}.family-canvas-hint{margin:8px 0 0;font-size:.78rem;color:var(--text-secondary, #999);text-align:center}.family-edge{cursor:pointer}.family-edge-hit{stroke:transparent;stroke-width:20}.family-edge-line{stroke:var(--gray-300, #d0d5dd);stroke-width:2}:root[data-theme=dark] .family-edge-line{stroke:#3a3f47}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .family-edge-line{stroke:#3a3f47}}.family-edge:hover .family-edge-line,.family-edge--selected .family-edge-line{stroke:var(--color-primary, #1677ff);stroke-width:3}.family-edge-label{font-size:12px;fill:var(--text-secondary, #777);paint-order:stroke;stroke:var(--surface-sunken, #fafbfc);stroke-width:4;-webkit-user-select:none;user-select:none;pointer-events:none}.family-edge--selected .family-edge-label,.family-edge:hover .family-edge-label{fill:var(--color-primary, #1677ff);font-weight:600}.elbl-a,.elbl-b{pointer-events:auto;cursor:pointer}.elbl-a:hover,.elbl-b:hover{font-weight:700;text-decoration:underline;fill:var(--color-primary, #1677ff)}.family-edge--suggested .family-edge-line{stroke:var(--status-warning, #f59e0b);stroke-dasharray:6 5}.family-edge--suggested .family-edge-label{fill:var(--color-warning-text, #9a6403);font-style:italic}.family-edge--suggested:hover .family-edge-line,.family-edge--suggested.family-edge--selected .family-edge-line{stroke:var(--status-warning, #f59e0b);stroke-width:3.5}.family-edge-conf{font-size:10.5px;fill:var(--color-warning-text, #9a6403);font-style:italic;paint-order:stroke;stroke:var(--surface-sunken, #fafbfc);stroke-width:3;-webkit-user-select:none;user-select:none;pointer-events:none}.family-rubber{stroke:var(--color-primary, #1677ff);stroke-width:2.5;stroke-dasharray:7 5;fill:none;pointer-events:none}.family-node{cursor:grab}.family-node.dragging{cursor:grabbing}.family-node-ring{fill:none;stroke:var(--surface-card, #fff);stroke-width:3}.family-node:hover .family-node-ring{stroke:var(--color-primary, #1677ff)}.family-node--main .family-node-ring,.family-node--main:hover .family-node-ring{stroke:var(--family-gold);stroke-width:4}.family-node.droptarget .family-node-ring{stroke:var(--status-success, #16a34a);stroke-width:5}.family-node-halo{fill:none;stroke-width:2.5;opacity:.75}.family-node-initial{font-size:20px;font-weight:700;fill:#fff;-webkit-user-select:none;user-select:none;pointer-events:none}.family-node-name{font-size:13px;font-weight:600;fill:var(--text-primary, #333);paint-order:stroke;stroke:var(--surface-sunken, #fafbfc);stroke-width:4;-webkit-user-select:none;user-select:none;pointer-events:none}.family-node-desc{font-size:10.5px;font-weight:400;fill:var(--text-secondary, #667085);paint-order:stroke;stroke:var(--surface-sunken, #fafbfc);stroke-width:3;-webkit-user-select:none;user-select:none;pointer-events:none}.family-node-star{font-size:15px;-webkit-user-select:none;user-select:none;pointer-events:none}.link-handle{opacity:0;transition:opacity var(--duration-fast, .12s);cursor:crosshair}.family-node:hover .link-handle{opacity:1}.link-handle circle{fill:var(--color-primary, #1677ff);stroke:var(--surface-card, #fff);stroke-width:2}.link-handle text{fill:#fff;font-size:13px;font-weight:700;-webkit-user-select:none;user-select:none;pointer-events:none}.family-pop{position:absolute;z-index:20;background:var(--surface-card, #fff);border:1px solid var(--border-default, #e4e7ec);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 12px 32px rgba(16, 24, 40, .16));padding:12px;min-width:230px;max-width:300px}.family-pop h4{margin:0 0 8px;font-size:var(--text-md, 14px);display:flex;align-items:center;gap:8px}.family-pop h4 img{width:30px;height:30px;border-radius:50%;object-fit:cover}.family-pop-sub{color:var(--text-secondary, #667085);font-size:var(--text-xs, 12px);margin:0 0 8px}.family-pop-info{color:var(--text-tertiary, #98a2b3);font-weight:400}.family-pop-group{margin:4px 0 6px}.family-pop-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.family-typechips{display:flex;gap:5px;flex-wrap:wrap}.family-chip{padding:5px 11px;border-radius:var(--radius-pill, 999px);border:1px solid var(--border-default, #e4e7ec);background:var(--surface-card, #fff);color:var(--text-primary, #101828);font-size:var(--text-xs, 12px);font-weight:600;cursor:pointer}.family-chip:hover{border-color:var(--color-primary, #1677ff);color:var(--color-primary, #1677ff)}.family-chip.on{background:var(--color-primary, #1677ff);border-color:var(--color-primary, #1677ff);color:#fff}.family-chip.reco{background:var(--color-primary-soft, #eef5ff);border-color:var(--color-primary-border, #b3d1ff)}.family-chip.reco.on{background:var(--color-primary, #1677ff);border-color:var(--color-primary, #1677ff)}.family-pop-hint{color:var(--text-tertiary, #98a2b3);font-size:var(--text-xs, 12px);margin-top:7px}.family-pop-dir{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:var(--text-sm, 13px);flex-wrap:wrap}.family-swap{border:1px solid var(--border-default, #e4e7ec);background:var(--surface-card, #fff);color:var(--text-primary, #101828);border-radius:var(--radius-pill, 999px);cursor:pointer;padding:3px 10px;font-size:var(--text-sm, 13px)}.family-swap:hover{border-color:var(--color-primary, #1677ff);color:var(--color-primary, #1677ff)}.family-pop-conf{color:var(--color-warning-text, #9a6403);font-size:var(--text-xs, 12px);font-weight:600;margin:-4px 0 6px}.family-pop-close{position:absolute;top:6px;right:8px;border:0;background:none;color:var(--text-tertiary, #98a2b3);font-size:15px;cursor:pointer}.family-sugg-head{display:flex;align-items:center;gap:10px;margin:0 0 10px;flex-wrap:wrap}.family-sugg-title{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--text-lg, 16px);font-weight:600}.family-collapse-btn{border:1px solid var(--border-default, #e4e7ec);background:var(--surface-card, #fff);color:var(--text-secondary, #667085);border-radius:var(--radius-sm, 8px);width:26px;height:26px;line-height:1;font-size:13px;cursor:pointer;flex:0 0 auto}.family-collapse-btn:hover{border-color:var(--color-primary, #1677ff);color:var(--color-primary, #1677ff)}.family-sugg-cnt{font-size:var(--text-xs, 12px);background:var(--color-warning-bg, #fdf3e1);border:1px solid var(--color-warning-border, #f6dcab);color:var(--color-warning-text, #9a6403);border-radius:var(--radius-pill, 999px);padding:1px 9px}.family-sugg-sub{margin:0 0 12px;color:var(--text-secondary, #667085);font-size:var(--text-sm, 13px)}.family-sugg-list{display:flex;flex-direction:column;gap:8px}.family-sugg-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--border-default, #e4e7ec);border-radius:var(--radius-md, 10px);background:var(--surface-card, #fff);flex-wrap:wrap}.family-sugg-pair{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:220px}.family-sugg-ava{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid var(--border-default, #e4e7ec)}.family-sugg-ava--ph{display:inline-flex;align-items:center;justify-content:center;background:var(--gray-400, #98a2b3);color:#fff;font-weight:700}.family-sugg-name{font-weight:600}.family-sugg-type{color:var(--color-warning-text, #9a6403);background:var(--color-warning-bg, #fdf3e1);border:1px solid var(--color-warning-border, #f6dcab);border-radius:var(--radius-pill, 999px);font-size:var(--text-xs, 12px);font-weight:600;padding:2px 10px;white-space:nowrap}.family-sugg-meta{color:var(--text-tertiary, #98a2b3);font-size:var(--text-xs, 12px);flex:1 1 100%;order:9}.family-sugg-conf{font-variant-numeric:tabular-nums;color:var(--text-secondary, #667085);font-size:var(--text-sm, 13px);min-width:44px;text-align:right}.family-sugg-actions{display:flex;gap:6px}@media (min-width: 760px){.family-sugg-meta{flex:0 1 auto;order:0}}@media (max-width: 640px){.family-svg{height:58vh}.family-pop{min-width:200px}}.family-pop-root{position:relative}.family-sugg-filter{margin-left:auto;max-width:240px;padding:5px 10px;border:1px solid var(--border-default, #e4e7ec);border-radius:var(--radius-md, 10px);background:var(--surface-card, #fff);color:var(--text-primary, #101828);font-size:var(--text-sm, 13px);font-weight:400}.family-sugg-name--btn{border:0;background:none;padding:0;font:inherit;font-weight:600;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.family-sugg-name--btn:hover{color:var(--color-primary, #1677ff)}.family-rename-ic{font-size:11px;color:var(--text-tertiary, #98a2b3);opacity:0;transition:opacity .12s}.family-sugg-item:hover .family-rename-ic,.family-sugg-name--btn:focus-visible .family-rename-ic{opacity:1}.family-rename-input{font:inherit;font-weight:600;padding:2px 8px;border:1px solid var(--color-primary, #1677ff);border-radius:var(--radius-md, 8px);width:15ch;min-width:110px}.family-rename-btn{border:0;background:none;padding:0 2px;color:var(--text-tertiary, #98a2b3);font-size:13px;cursor:pointer}.family-rename-btn:hover{color:var(--color-primary, #1677ff)}.family-sugg-type--btn{cursor:pointer;transition:border-color .12s,color .12s}.family-sugg-type--btn:hover{border-color:var(--color-primary, #1677ff);color:var(--color-primary, #1677ff);background:var(--color-primary-soft, #eef5ff)}@media (max-width: 640px){.family-sugg-head{flex-wrap:wrap}.family-sugg-filter{margin-left:0;flex:1 1 100%;max-width:none}.family-filter{margin-left:0;flex:1 1 100%}.family-filter-btn{width:100%}.family-sugg-grouphead{flex-wrap:wrap}}.family-sugg-cnt--ok{background:var(--color-success-bg, #e7f6ec);border-color:var(--color-success-border, #a6e0ba);color:var(--color-success-text, #1a7f37)}.family-sugg-group{margin-top:14px}.family-sugg-group:first-of-type{margin-top:0}.family-sugg-grouplbl{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-sm, 13px);font-weight:700;color:var(--text-secondary, #667085);text-transform:uppercase;letter-spacing:.03em}.family-sugg-grouphead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.family-sugg-bulk{display:inline-flex;gap:6px}.family-sugg-item--ok{background:var(--surface-sunken, #fafbfc)}.family-sugg-type--ok{color:var(--color-primary, #1677ff);background:var(--color-primary-soft, #eef5ff);border-color:var(--color-primary-border, #b3d1ff)}.family-sugg-type--ok.family-sugg-type--btn:hover{border-color:var(--color-primary, #1677ff);background:var(--color-primary-soft, #eef5ff)}.family-sugg-more{margin-top:10px;border:0;background:none;padding:4px 2px;color:var(--color-primary, #1677ff);font-size:var(--text-sm, 13px);font-weight:600;cursor:pointer}.family-sugg-more:hover{text-decoration:underline}.family-filter{position:relative;margin-left:auto}.family-filter-btn{display:inline-flex;align-items:center;gap:8px;max-width:260px;padding:4px 10px;border:1px solid var(--border-default, #e4e7ec);border-radius:var(--radius-md, 10px);background:var(--surface-card, #fff);color:var(--text-primary, #101828);font-size:var(--text-sm, 13px);cursor:pointer}.family-filter-btn:hover{border-color:var(--color-primary, #1677ff)}.family-filter-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}.family-filter-caret{color:var(--text-tertiary, #98a2b3);flex:0 0 auto}.family-filter-ava{width:22px;height:22px;border-radius:50%;object-fit:cover;flex:0 0 auto}.family-filter-ava--ph{display:inline-flex;align-items:center;justify-content:center;background:var(--gray-400, #98a2b3);color:#fff;font-size:11px;font-weight:700}.family-filter-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;border:0;background:transparent;cursor:default}.family-filter-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:26;margin:0;padding:4px;list-style:none;min-width:220px;max-height:320px;overflow-y:auto;background:var(--surface-card, #fff);border:1px solid var(--border-default, #e4e7ec);border-radius:var(--radius-md, 10px);box-shadow:var(--shadow-lg, 0 12px 32px rgba(16, 24, 40, .16))}.family-filter-opt{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;border-radius:var(--radius-sm, 8px);background:none;color:var(--text-primary, #101828);font-size:var(--text-sm, 13px);cursor:pointer;text-align:left}.family-filter-opt:hover{background:var(--surface-sunken, #f2f4f7)}.family-filter-opt.on{background:var(--color-primary-soft, #eef5ff);font-weight:600}.family-filter-cnt{flex:0 0 auto;color:var(--text-tertiary, #98a2b3);font-variant-numeric:tabular-nums}.family-shell{max-width:none}@media (min-width: 1200px){.family-cols{display:grid;grid-template-columns:minmax(400px,5fr) 8fr;gap:var(--section-gap, 24px);align-items:start}.family-cols>.family-graph-section{position:sticky;top:16px;margin-top:0}.family-cols .family-svg{height:min(74vh,860px)}}.search-results-page{padding:1rem 1.5rem 2rem;max-width:1400px;margin:0 auto}.search-results-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:1rem}.search-results-title{font-size:1.5rem;font-weight:700;color:var(--text, #222);margin:0;flex-shrink:0}.search-results-bar{flex:1;min-width:220px}.search-results-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:1.1rem}.search-results-chip{padding:3px 12px;border-radius:999px;font-size:.8rem;font-weight:600;color:var(--text-secondary, #555);background:var(--panel, #f1f3f5);border:1px solid var(--border, #e0e0e0);white-space:nowrap}.search-results-chip--year{color:var(--accent, #007bff);background:var(--accent-light, #e7f1ff);border-color:transparent}.search-results-count{font-size:.85rem;color:var(--text-secondary, #666);margin:0 0 .75rem}.search-results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.search-results-tile{position:relative;cursor:pointer;border-radius:10px;overflow:hidden;background:var(--card-bg, #f8f9fa);transition:transform .15s,box-shadow .15s}.search-results-tile:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0000001f}.search-results-tile-img{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.search-results-tile-placeholder{width:100%;aspect-ratio:1 / 1;border-radius:10px;background:var(--skeleton, #e9ecef)}.search-results-tile .search-results-tile-placeholder{border-radius:0}.search-results-tile-placeholder--loading{animation:search-results-pulse 1.2s ease-in-out infinite}@keyframes search-results-pulse{0%,to{opacity:1}50%{opacity:.55}}.search-results-tile-play{position:absolute;right:6px;bottom:6px;color:#fff;font-size:.8rem;text-shadow:0 1px 4px rgba(0,0,0,.7);pointer-events:none}.search-results-empty{padding:3rem 1.5rem;text-align:center;color:var(--text-secondary, #666)}.search-results-empty h2{color:var(--text, #222);margin:0 0 .75rem;font-size:1.2rem}.search-results-empty-hint{font-size:.9rem;color:var(--text-secondary, #888);margin:0 0 1.25rem}.search-results-examples{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.search-results-example{padding:6px 16px;border-radius:999px;font-size:.85rem;font-weight:600;color:var(--accent, #007bff);background:var(--accent-light, #e7f1ff);border:none;cursor:pointer;transition:transform .12s,box-shadow .12s}.search-results-example:hover{transform:translateY(-1px);box-shadow:0 3px 10px #007bff2e}.search-results-loading{padding-top:.25rem}@media (max-width: 768px){.search-results-page{padding:.75rem 1rem 1.5rem}.search-results-header{gap:10px}.search-results-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}}.takeout-section-title{margin:0 0 .75rem;font-size:1.1rem;font-weight:700;color:var(--text-primary, #222)}.takeout-muted{color:var(--text-secondary, #777);font-size:.85rem;margin:.35rem 0 0}.takeout-danger{color:var(--status-danger, #c0392b);font-size:.85rem;margin:.5rem 0 0}.takeout-error{display:flex;align-items:center;gap:12px;color:var(--status-danger, #c0392b);font-size:.9rem}.takeout-steps{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem;color:var(--text-primary, #333);font-size:.92rem}.takeout-drop{border:2px dashed var(--border-default, #c9cdd3);border-radius:12px;padding:22px 14px;text-align:center;cursor:pointer;transition:border-color .15s}.takeout-drop:hover{border-color:var(--color-primary, #007bff)}.takeout-drop-text{margin:0;font-weight:600;color:var(--text-primary, #333)}.takeout-drop-file{margin:0;font-weight:600;color:var(--color-primary, #007bff);word-break:break-all}.takeout-upload-actions{display:flex;gap:10px;margin-top:1rem;flex-wrap:wrap}.takeout-upload-progress{margin-top:.9rem}.takeout-gallery-hint{margin-top:1rem}.takeout-progressbar{height:8px;border-radius:999px;background:var(--surface-sunken, #eee);overflow:hidden}.takeout-progressbar-fill{display:block;height:100%;background:var(--color-primary, #007bff);transition:width .3s}.takeout-jobs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.takeout-job{border:1px solid var(--border-default, #e3e3e3);border-radius:var(--radius-sm, 8px);padding:.8rem 1rem;background:var(--surface-card, #fff)}.takeout-job-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.takeout-job-name{font-weight:600;color:var(--text-primary, #222);word-break:break-all}.takeout-job-progress{display:flex;align-items:center;gap:10px;margin-top:.6rem}.takeout-job-progress .takeout-progressbar{flex:1}.takeout-job-progress-text{font-size:.8rem;color:var(--text-secondary, #666);white-space:nowrap}.takeout-job-stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:.6rem;font-size:.85rem;color:var(--text-secondary, #555)}.takeout-job-error{word-break:break-word}.takeout-job-dates{margin:.5rem 0 0;font-size:.78rem;color:var(--text-secondary, #999)}.public-cta{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin:32px auto 8px;padding:14px 20px;max-width:640px;border-radius:12px;background:#7f7f7f14;font-size:14px;text-align:center}.public-cta__text{opacity:.85}.public-cta__button{display:inline-block;padding:8px 18px;border-radius:8px;background:#2563eb;color:#fff;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .15s ease}.public-cta__button:hover{background:#1d4ed8;color:#fff}@media (max-width: 480px){.public-cta{flex-direction:column;gap:8px}}.pub-collect{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:16px 12px 24px;background:var(--surface-page, #f5f6f8)}.pub-collect-card{width:100%;max-width:560px;background:var(--surface-card, #fff);border:1px solid var(--border-default, #e3e3e3);border-radius:14px;padding:20px 16px 24px;box-shadow:0 2px 12px #0000000d}.pub-collect-center{text-align:center;padding-top:40px;padding-bottom:40px}.pub-collect-title{margin:0 0 6px;font-size:1.3rem;font-weight:700;color:var(--text-primary, #222);text-align:center}.pub-collect-counter{margin:0 0 16px;text-align:center;font-size:.9rem;color:var(--text-secondary, #666)}.pub-collect-hint{margin:8px 0;text-align:center;font-size:.9rem;color:var(--text-secondary, #666)}.pub-collect-drop{border:2px dashed var(--border-default, #c9cdd3);border-radius:12px;padding:28px 14px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.pub-collect-drop--active{border-color:var(--color-primary, #007bff);background:var(--color-primary-soft, #eaf3ff)}.pub-collect-drop-text{margin:0 0 4px;font-weight:600;color:var(--text-primary, #333)}.pub-collect-drop-sub{margin:0;font-size:.82rem;color:var(--text-secondary, #888)}.pub-collect-pickers{display:flex;gap:10px;margin-top:12px}.pub-collect-btn{flex:1;padding:12px 16px;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;border:1px solid var(--border-default, #d0d4da);background:var(--surface-card, #fff);color:var(--text-primary, #333)}.pub-collect-btn--primary{display:block;width:100%;margin-top:16px;background:var(--color-primary, #007bff);border-color:var(--color-primary, #007bff);color:#fff}.pub-collect-btn--primary:disabled{opacity:.5;cursor:default}.pub-collect-btn--ghost{background:transparent}.pub-collect-filelist{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.pub-collect-filerow{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--border-default, #eee);border-radius:8px;font-size:.85rem}.pub-collect-filename{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary, #333)}.pub-collect-remove{border:none;background:none;font-size:1.1rem;line-height:1;color:var(--text-secondary, #999);cursor:pointer;padding:2px 6px}.pub-collect-progress{flex:0 0 80px;height:6px;border-radius:999px;background:var(--surface-sunken, #eee);overflow:hidden}.pub-collect-progress-fill{display:block;height:100%;background:var(--color-primary, #007bff);transition:width .2s}.pub-collect-filestatus{font-weight:600;font-size:.78rem;white-space:nowrap}.pub-collect-filestatus--created{color:var(--status-success, #1e8e3e)}.pub-collect-filestatus--duplicate{color:var(--text-secondary, #888)}.pub-collect-filestatus--rejected,.pub-collect-filestatus--failed,.pub-collect-failed{color:var(--status-danger, #c0392b)}.pub-collect-failed{text-align:center;font-size:.85rem;margin:10px 0 0}.pub-collect-done-icon{width:52px;height:52px;margin:4px auto 12px;border-radius:50%;background:var(--status-success, #1e8e3e);color:#fff;font-size:26px;line-height:52px;text-align:center}.pub-collect-summary{list-style:none;margin:14px 0;padding:0;text-align:center;font-size:.9rem;color:var(--text-primary, #333);display:flex;flex-direction:column;gap:4px}.pub-collect-footer{margin-top:18px;font-size:.8rem}.pub-collect-footer a{color:var(--text-secondary, #999);text-decoration:none}.pub-collect-footer a:hover{text-decoration:underline}@media (min-width: 640px){.pub-collect{padding-top:48px}.pub-collect-card{padding:28px 28px 32px}}.cmdk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;background:#0f111473;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}.cmdk-panel{width:100%;max-width:620px;max-height:min(480px,72vh);display:flex;flex-direction:column;overflow:hidden;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg, 12px);box-shadow:0 24px 64px #00000047}.cmdk-inputrow{flex:none;display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--border-default);color:var(--text-tertiary)}.cmdk-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font:inherit;font-size:16px;color:var(--text-primary)}.cmdk-input::placeholder{color:var(--text-tertiary)}.cmdk-kbd{flex:none;padding:2px 7px;border:1px solid var(--border-default);border-radius:var(--radius-sm, 6px);background:var(--surface-sunken);color:var(--text-tertiary);font-size:11px;font-family:inherit;font-weight:600}.cmdk-list{flex:1;min-height:0;overflow-y:auto;padding:6px}.cmdk-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;border-radius:var(--radius-md, 8px);background:transparent;color:var(--text-primary);font:inherit;font-size:14px;text-align:left;cursor:pointer}.cmdk-item.active{background:var(--surface-hover)}.cmdk-item--ask{color:var(--ai-accent, var(--color-primary));font-weight:600}.cmdk-item--ask.active{background:var(--ai-accent-soft, var(--color-primary-soft))}.cmdk-item-ico{flex:none;display:inline-flex;color:var(--text-tertiary)}.cmdk-item--ask .cmdk-item-ico{color:inherit}.cmdk-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-item-path{flex:none;font-size:12px;color:var(--text-tertiary)}.cmdk-empty{padding:20px 12px;text-align:center;color:var(--text-secondary);font-size:13.5px}.cmdk-foot{flex:none;padding:8px 14px;border-top:1px solid var(--border-default);color:var(--text-tertiary);font-size:11.5px}@media (max-width: 640px){.cmdk-overlay{padding-top:7vh}.cmdk-item-path{display:none}}.cc-container{padding:var(--content-gutter)}.cc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--section-gap);flex-wrap:wrap;gap:12px}.cc-header h1{margin:0;font-size:1.75rem;font-weight:800;color:var(--text);letter-spacing:-.03em}.cc-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cc-auto-refresh{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);cursor:pointer}.cc-auto-refresh input{accent-color:var(--accent)}.cc-last-updated{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.cc-period-select{height:var(--control-h);padding:0 14px;border:1px solid var(--border);border-radius:14px;background:var(--field-bg);color:var(--text);font-size:14px;font-family:var(--font-sans);cursor:pointer}.cc-refresh-btn{height:var(--control-h);padding:0 18px;background:linear-gradient(180deg,#1677ffeb,#1677ffb8);color:#fff;border:none;border-radius:14px;font-size:14px;font-weight:700;font-family:var(--font-sans);cursor:pointer;transition:transform var(--transition-fast),background var(--transition-normal);box-shadow:0 8px 22px #1677ff2e}.cc-refresh-btn:hover{background:linear-gradient(180deg,#1677ff,#1677ffd1)}.cc-refresh-btn:active{transform:translateY(1px) scale(.99)}[data-theme=dark] .cc-refresh-btn{background:linear-gradient(180deg,#1677ffeb,#1677ffb8);box-shadow:0 8px 22px #1677ff38}.cc-section{background:var(--panel);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-sm);animation:cc-fadein .4s ease both}.cc-section:nth-child(2){animation-delay:.04s}.cc-section:nth-child(3){animation-delay:.08s}.cc-section:nth-child(4){animation-delay:.12s}.cc-section:nth-child(5){animation-delay:.16s}.cc-section:nth-child(6){animation-delay:.2s}.cc-section:nth-child(7){animation-delay:.24s}.cc-section:nth-child(8){animation-delay:.28s}.cc-section:nth-child(9){animation-delay:.32s}@keyframes cc-fadein{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.cc-section-title{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 16px}.cc-banner{display:flex;align-items:center;gap:16px;padding:18px 24px;border-radius:var(--radius-lg);margin-bottom:16px;border:1px solid var(--border);animation:cc-fadein .4s ease both}.cc-banner--healthy{background:linear-gradient(135deg,#16a34a1a,#16a34a0a);border-color:#16a34a40}.cc-banner--warning{background:linear-gradient(135deg,#f59e0b1a,#f59e0b0a);border-color:#f59e0b40}.cc-banner--critical{background:linear-gradient(135deg,#e5484d1a,#e5484d0a);border-color:#e5484d40}[data-theme=dark] .cc-banner--healthy{background:linear-gradient(135deg,#16a34a1f,#16a34a0a);border-color:#16a34a4d}[data-theme=dark] .cc-banner--warning{background:linear-gradient(135deg,#f59e0b1f,#f59e0b0a);border-color:#f59e0b4d}[data-theme=dark] .cc-banner--critical{background:linear-gradient(135deg,#e5484d1f,#e5484d0a);border-color:#e5484d4d}.cc-status-orb{width:14px;height:14px;border-radius:50%;flex-shrink:0}.cc-status-orb--ok{background:var(--accent-2);box-shadow:0 0 10px #16a34a80}.cc-status-orb--warning{background:var(--warning);box-shadow:0 0 10px #f59e0b80;animation:cc-pulse 2s ease-in-out infinite}.cc-status-orb--critical{background:var(--danger);box-shadow:0 0 10px #e5484d80;animation:cc-pulse 1.5s ease-in-out infinite}@keyframes cc-pulse{0%,to{box-shadow:0 0 0 0 currentColor;opacity:1}50%{box-shadow:0 0 0 8px transparent;opacity:.8}}.cc-banner-text h2{margin:0;font-size:1.1rem;font-weight:700;color:var(--text)}.cc-banner-text p{margin:2px 0 0;font-size:.85rem;color:var(--muted)}.cc-banner-score{margin-left:auto;font-size:2.2rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1}.cc-banner--healthy .cc-banner-score{color:var(--accent-2)}.cc-banner--warning .cc-banner-score{color:var(--warning)}.cc-banner--critical .cc-banner-score{color:var(--danger)}.cc-services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.cc-service-card{display:flex;align-items:center;gap:10px;padding:14px;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-md);transition:box-shadow var(--transition-normal),transform var(--transition-fast);cursor:default}.cc-service-card--clickable{cursor:pointer}.cc-service-card--clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.cc-service-card--down{border-color:#e5484d4d}.cc-service-card--degraded{border-color:#f59e0b4d}.cc-svc-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.cc-svc-dot--ok{background:var(--accent-2);box-shadow:0 0 6px #16a34a66}.cc-svc-dot--degraded{background:var(--warning)}.cc-svc-dot--down{background:var(--danger);animation:cc-pulse 2s infinite}.cc-svc-info{min-width:0;flex:1}.cc-svc-name{display:block;font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-svc-latency{display:block;font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.cc-svc-info-icon{flex-shrink:0;font-size:1rem;color:var(--muted);opacity:0;transition:opacity var(--transition-normal)}.cc-service-card--clickable:hover .cc-svc-info-icon{opacity:1}.cc-metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.cc-metric-card{padding:18px;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;transition:box-shadow var(--transition-normal),transform var(--transition-fast)}.cc-metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.cc-metric-label{font-size:.8rem;color:var(--muted);font-weight:600;margin-bottom:6px}.cc-metric-value{font-size:2rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.cc-metric-trend{font-size:.78rem;color:var(--muted);margin-top:4px;font-variant-numeric:tabular-nums}.cc-charts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(480px,1fr));gap:16px}.cc-chart-panel{background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px}.cc-chart-title{font-size:.85rem;font-weight:700;color:var(--text);margin:0 0 12px}.cc-chart-empty{text-align:center;padding:40px;color:var(--muted)}.cc-chart-ok{text-align:center;padding:20px;color:var(--accent-2);font-weight:600}.cc-chart-footnote{font-size:.8rem;color:var(--muted);margin-top:8px}.cc-chart-container{width:100%;height:300px}.cc-chart-container--sm{height:200px}.cc-chart-container--md{height:250px}.cc-processor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:20px}.cc-proc-card{padding:16px;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-md);transition:box-shadow var(--transition-normal),transform var(--transition-fast)}.cc-proc-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.cc-proc-card--issue{border-color:#e5484d4d;background:linear-gradient(135deg,var(--panel-solid),var(--color-error-bg))}.cc-proc-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.cc-proc-name{font-size:.9rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-cb-badge{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.cc-cb-badge--closed{background:var(--color-success-bg);color:var(--color-success-text)}.cc-cb-badge--open{background:var(--color-error-bg);color:var(--color-error-text)}.cc-cb-badge--half_open{background:var(--color-warning-bg);color:var(--color-warning-text)}.cc-proc-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cc-proc-stat{display:flex;flex-direction:column}.cc-proc-stat-label{font-size:.7rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.cc-proc-stat-value{font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.3}.cc-proc-sparkline{margin-top:10px;height:40px;width:100%}.cc-proc-charts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:16px;margin-top:4px}.cc-storage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.cc-stor-card{padding:16px;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-md);transition:box-shadow var(--transition-normal),transform var(--transition-fast)}.cc-stor-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.cc-stor-card--offline{border-color:#e5484d4d}.cc-stor-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.cc-stor-name{font-size:.9rem;font-weight:700;color:var(--text)}.cc-stor-subtitle{font-size:.75rem;color:var(--muted);font-family:var(--font-mono);margin-bottom:10px}.cc-status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.cc-status-badge--read_write{background:var(--color-success-bg);color:var(--color-success-text)}.cc-status-badge--read_only{background:var(--color-warning-bg);color:var(--color-warning-text)}.cc-status-badge--offline{background:var(--color-error-bg);color:var(--color-error-text)}.cc-status-badge--disabled{background:var(--color-bg-tertiary);color:var(--muted)}.cc-stor-stats{display:flex;gap:16px;flex-wrap:wrap}.cc-stor-stat{display:flex;flex-direction:column}.cc-stor-stat-label{font-size:.68rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.cc-stor-stat-value{font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.cc-health-bar{margin-top:10px;height:6px;border-radius:3px;background:var(--color-bg-tertiary);overflow:hidden}.cc-health-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.cc-queue-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cc-queue-stats{display:flex;gap:20px}.cc-queue-stat{text-align:center}.cc-queue-stat-value{font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text)}.cc-queue-stat-label{font-size:.75rem;color:var(--muted);font-weight:600}.cc-dlq-count{font-size:1.4rem;font-weight:800;font-variant-numeric:tabular-nums}.cc-dlq-count--alert{color:var(--danger)}.cc-dlq-count--ok{color:var(--accent-2)}.cc-issues-list{list-style:none;margin:0;padding:0}.cc-issue-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.cc-issue-item:last-child{border-bottom:none}.cc-issue-severity{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cc-issue-severity--error{background:var(--danger)}.cc-issue-severity--warning{background:var(--warning)}.cc-issue-text{font-size:.85rem;color:var(--text);flex:1}.cc-issue-source{font-size:.72rem;color:var(--muted);font-weight:600;text-transform:uppercase;flex-shrink:0}.cc-issue-link{font-size:.78rem;color:var(--accent);flex-shrink:0;text-decoration:none}.cc-issue-link:hover{text-decoration:underline}.cc-no-issues{text-align:center;padding:24px;color:var(--accent-2);font-weight:600}.cc-gauges-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.cc-gauge-card{text-align:center;padding:16px;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-md)}.cc-gauge-ring-wrap{width:120px;height:120px;margin:0 auto}.cc-gauge-svg{width:100%;height:100%}.cc-gauge-pct{font-size:18px;font-weight:800;font-family:var(--font-sans);font-variant-numeric:tabular-nums}.cc-gauge-label-inner{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-family:var(--font-sans)}.cc-gauge-sub{margin-top:8px;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.cc-gauge-spark{margin-top:8px;height:32px}.cc-system-unavailable{text-align:center;padding:24px;color:var(--muted);font-size:.85rem}.cc-db-conns{margin-bottom:20px}.cc-db-capacity{margin-bottom:12px}.cc-db-capacity-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.cc-db-capacity-label{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.cc-db-capacity-pct{font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums}.cc-db-conns-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.cc-db-conn-card{padding:12px;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-sm)}.cc-db-conn-name{font-size:.8rem;font-weight:700;color:var(--text);margin-bottom:8px;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-db-conn-stats{display:flex;gap:12px;flex-wrap:wrap}.cc-db-conn-stat{display:flex;flex-direction:column;align-items:center}.cc-db-conn-stat-value{font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums}.cc-db-conn-stat-label{font-size:.62rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.cc-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0000004d;animation:cc-overlay-in .2s ease}@keyframes cc-overlay-in{0%{opacity:0}to{opacity:1}}.cc-drawer{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:90vw;background:var(--panel-solid);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);overflow-y:auto;animation:cc-drawer-slide .25s ease;z-index:1001}@keyframes cc-drawer-slide{0%{transform:translate(100%)}to{transform:translate(0)}}.cc-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--panel-solid);z-index:1}.cc-drawer-header h3{margin:0;font-size:1.1rem;font-weight:700;color:var(--text)}.cc-drawer-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:var(--color-bg-tertiary);border-radius:50%;font-size:1.2rem;color:var(--muted);cursor:pointer;transition:background var(--transition-normal)}.cc-drawer-close:hover{background:var(--color-bg-hover);color:var(--text)}.cc-drawer-body{padding:20px 24px}.cc-drawer-desc{font-size:.85rem;color:var(--text);line-height:1.5;margin:0 0 20px}.cc-drawer-section{margin-bottom:16px}.cc-drawer-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px}.cc-drawer-value{font-size:.85rem;color:var(--text)}.cc-drawer-mono{font-family:var(--font-mono);font-size:.82rem}.cc-drawer-ports{display:flex;gap:8px;flex-wrap:wrap}.cc-drawer-port{display:flex;align-items:center;gap:4px;padding:4px 10px;background:var(--color-bg-tertiary);border-radius:6px;font-size:.78rem}.cc-drawer-port-label{color:var(--muted);font-weight:600;text-transform:uppercase;font-size:.68rem}.cc-drawer-port-value{color:var(--accent);font-weight:700;font-family:var(--font-mono)}.cc-drawer-links{display:flex;gap:6px;flex-wrap:wrap}.cc-drawer-link{padding:4px 10px;background:var(--accent-light);color:var(--accent);border-radius:6px;font-size:.78rem;font-weight:600;text-decoration:none}.cc-drawer-link:hover{text-decoration:underline}.cc-log-panel{border-top:1px solid var(--border);margin-top:12px}.cc-log-controls{display:flex;align-items:center;gap:10px;padding:10px 0;flex-wrap:wrap}.cc-log-search-wrap{position:relative;flex:1;min-width:180px}.cc-log-search{width:100%;height:36px;padding:0 32px 0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:.82rem;font-family:var(--font-sans);box-sizing:border-box}.cc-log-search::placeholder{color:var(--placeholder)}.cc-log-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.cc-log-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:var(--color-bg-tertiary);border-radius:50%;font-size:.9rem;color:var(--muted);cursor:pointer}.cc-log-filters{display:flex;gap:4px;flex-wrap:wrap}.cc-log-chip{padding:4px 10px;border:1px solid var(--border);border-radius:20px;background:transparent;color:var(--muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;cursor:pointer;transition:all var(--transition-normal)}.cc-log-chip:hover{border-color:var(--accent);color:var(--accent)}.cc-log-chip--active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.cc-log-list{max-height:140px;overflow-y:auto;transition:max-height .35s ease}.cc-log-panel--expanded .cc-log-list{max-height:600px}.cc-log-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:.8rem;line-height:1.4}.cc-log-item:last-child{border-bottom:none}.cc-log-time{flex-shrink:0;font-size:.72rem;color:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:1px}.cc-log-badge{flex-shrink:0;display:inline-block;padding:1px 6px;border-radius:4px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;background:var(--color-error-bg);color:var(--color-error-text)}.cc-log-msg{color:var(--text);font-family:var(--font-mono);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cc-log-empty{text-align:center;padding:20px;color:var(--accent-2);font-weight:600}.cc-log-no-results{text-align:center;padding:16px;color:var(--muted);font-size:.82rem}.cc-log-toggle{display:block;width:100%;padding:8px;margin-top:4px;border:none;background:transparent;color:var(--accent);font-size:.78rem;font-weight:600;cursor:pointer;text-align:center;transition:color var(--transition-normal)}.cc-log-toggle:hover{color:var(--accent-hover)}.cc-loading{display:flex;align-items:center;justify-content:center;min-height:400px;font-size:1rem;color:var(--muted)}.cc-loading .spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-right:12px}.cc-sub-title{font-size:.8rem;font-weight:700;color:var(--text);margin:16px 0 8px}@media (max-width: 1024px){.cc-charts-row,.cc-proc-charts-row,.cc-queue-row{grid-template-columns:1fr}}@media (max-width: 768px){.cc-container{padding:var(--spacing-md)}.cc-metrics-grid,.cc-services-grid,.cc-processor-grid,.cc-storage-grid,.cc-gauges-grid,.cc-db-conns-grid{grid-template-columns:1fr}.cc-banner-score{font-size:1.6rem}.cc-drawer{width:100%;max-width:100vw}}.hc-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem;background:var(--panel-solid);cursor:pointer;transition:box-shadow .2s,transform .2s;box-shadow:var(--shadow-sm)}.hc-card:hover,.hc-card-hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.hc-card-issues{border:2px solid var(--danger);box-shadow:0 0 0 .2rem #e5484d26}.hc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.hc-title{margin:0;font-size:1.1rem;color:var(--text)}.hc-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:.5rem;color:var(--text)}.hc-muted{color:var(--muted)}.hc-success{color:var(--color-success)}.hc-warning{color:var(--warning)}.hc-danger{color:var(--danger)}.hc-accent{color:var(--accent)}.hc-actions{display:flex;gap:.5rem;margin-top:1rem}.hc-btn{padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;transition:opacity .2s}.hc-btn:hover{opacity:.9}.hc-btn-primary{background:var(--accent);color:#fff}.hc-btn-warning{background:var(--warning);color:#000}.pd-container{padding:2rem;min-height:100vh}.pd-loading,.pd-error{padding:2rem}.pd-error{color:var(--danger)}.pd-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.pd-header h1{margin:0;color:var(--text)}.pd-header-actions{display:flex;gap:.5rem;align-items:center}.pd-period-select{padding:.5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--field-bg);color:var(--text)}.pd-refresh-btn{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:500}.pd-refresh-btn:hover{background:var(--accent-hover)}.pd-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius-sm);padding:1rem;margin-bottom:1.5rem;color:var(--text)}.pd-warning ul{margin-top:.5rem;margin-bottom:0;padding-left:1.5rem}.pd-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}@media (max-width: 1024px){.pd-charts-row{grid-template-columns:1fr}}.pd-section{background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:1.5rem}.pd-section-title{font-size:1.1rem;font-weight:600;margin-bottom:1rem;color:var(--text)}.pd-no-data{height:300px;display:flex;align-items:center;justify-content:center;color:var(--muted)}.pd-no-data-sm{height:200px}.pd-health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}@media (max-width: 768px){.pd-container{padding:1rem}.pd-header{flex-direction:column;align-items:flex-start;gap:1rem}.pd-health-grid{grid-template-columns:1fr}}.config-backup{max-width:1200px}.config-backup h1{margin-top:0;margin-bottom:1.5rem;font-size:1.5rem;color:var(--text)}.config-backup-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}.config-backup-tabs button{padding:.5rem 1rem;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem;border-bottom:2px solid transparent;margin-bottom:-1px}.config-backup-tabs button:hover{color:var(--text)}.config-backup-tabs button.active{color:var(--accent);font-weight:500;border-bottom-color:var(--accent)}.config-backup-section{margin-top:1rem}.config-backup-section>p{color:var(--muted);margin-bottom:1rem}.config-backup-section button{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem}.config-backup-section button:hover:not(:disabled){background:var(--accent-hover)}.config-backup-section button:disabled{opacity:.7;cursor:not-allowed}.config-backup-section input[type=file]{display:block;margin-bottom:.75rem;color:var(--text)}.config-backup-import-types{margin-bottom:1rem}.config-backup-import-types>span{display:block;font-size:.9rem;color:var(--muted);margin-bottom:.5rem}.config-backup-import-types-list{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.config-backup-import-type-block{flex:1 1 280px;min-width:0}.config-backup-import-type-block>label{display:flex;align-items:center;gap:.35rem;margin-bottom:.25rem;cursor:pointer;font-size:.9rem;font-weight:500;color:var(--text)}.config-backup-import-entities{margin-left:1.25rem;margin-bottom:.5rem;display:flex;flex-direction:column;gap:.2rem}.config-backup-import-entities label{display:flex;align-items:center;gap:.35rem;margin-bottom:0;cursor:pointer;font-size:.85rem;color:var(--text)}.config-backup-import-types-list label{display:flex;align-items:center;gap:.35rem;margin-bottom:0;cursor:pointer;font-size:.9rem;color:var(--text)}.config-backup-section label{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;cursor:pointer;color:var(--text)}.config-backup-message{padding:.75rem 1rem;margin-bottom:1rem;border-radius:var(--radius-sm);font-size:.9rem}.config-backup-message.success{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border)}.config-backup-message.error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border)}.config-backup-revisions{width:100%;border-collapse:collapse;margin-top:.5rem;font-size:.9rem}.config-backup-revisions th,.config-backup-revisions td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border);color:var(--text)}.config-backup-revisions th{background:var(--color-bg-tertiary);font-weight:600}.config-backup-revisions tbody tr:hover{background:var(--row-hover)}.config-backup-revisions td button{padding:.25rem .5rem;margin-right:.5rem;margin-bottom:.25rem;font-size:.8rem}.config-backup-revisions td button:last-child{margin-right:0}.config-backup-detail{margin-bottom:1.5rem;padding:1rem;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border)}.config-backup-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;gap:.5rem}.config-backup-detail-header h3{margin:0;font-size:1rem;color:var(--text)}.config-backup-detail-close{flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;line-height:1;font-size:1.25rem;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.config-backup-detail-close:hover{color:var(--text);background:var(--color-bg-hover)}.config-backup-detail h3{margin-top:0;margin-bottom:.75rem;font-size:1rem;color:var(--text)}.config-backup-detail pre{margin:0;font-size:.8rem;overflow-x:auto;white-space:pre-wrap;word-break:break-all;color:var(--text)}.config-backup-import-result{margin-top:1rem;padding:1rem;background:var(--color-bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;overflow-x:auto;max-height:300px;overflow-y:auto;color:var(--text)}.config-backup-empty{color:var(--muted);font-style:italic;padding:1.5rem;text-align:center}.config-backup-history{display:flex;flex-direction:column;min-height:0;height:75vh;min-height:500px}.config-backup-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end;margin-bottom:1rem}.config-backup-filters label{display:flex;flex-direction:column;gap:.25rem;margin-bottom:0;color:var(--text)}.config-backup-filters label span{font-size:.85rem;color:var(--muted)}.config-backup-filters input[type=date],.config-backup-filters select{padding:.35rem .5rem;font-size:.9rem;border:1px solid var(--border);border-radius:var(--radius-sm);min-width:10rem;background:var(--field-bg);color:var(--text)}.config-backup-filters button{flex-shrink:0}.config-backup-history-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.config-backup-detail-sticky{flex-shrink:0;position:sticky;top:0;z-index:2;margin-bottom:.75rem;max-height:280px;display:flex;flex-direction:column}.config-backup-detail-sticky pre{overflow:auto;flex:1;max-height:200px}.config-backup-history-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.transcode-nodes{padding:2rem;background-color:#f5f6fa;min-height:100vh}.transcode-nodes__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.transcode-nodes__header h1{margin:0;font-size:1.5rem;color:#333}.transcode-nodes__header-actions{display:flex;gap:.5rem}.transcode-nodes__btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:opacity .2s}.transcode-nodes__btn:hover{opacity:.85}.transcode-nodes__btn:disabled{opacity:.5;cursor:not-allowed}.transcode-nodes__btn--primary{background-color:#007bff;color:#fff}.transcode-nodes__btn--success{background-color:#28a745;color:#fff}.transcode-nodes__btn--danger{background-color:#dc3545;color:#fff}.transcode-nodes__btn--small{padding:.3rem .6rem;font-size:.85rem}.transcode-nodes__summary{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.transcode-nodes__card{background-color:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1rem 1.5rem;min-width:160px;flex:1}.transcode-nodes__card-label{font-size:.85rem;color:#666;margin-bottom:.25rem}.transcode-nodes__card-value{font-size:1.5rem;font-weight:700;color:#333}.transcode-nodes__card-value--green{color:#28a745}.transcode-nodes__card-value--red{color:#dc3545}.transcode-nodes__error{margin-bottom:1rem;padding:1rem;background-color:#f8d7da;border-radius:4px;color:#721c24}.transcode-nodes__table-wrapper{background-color:#fff;border:1px solid #dee2e6;border-radius:8px;overflow-x:auto}.transcode-nodes__table{width:100%;border-collapse:collapse;font-size:.9rem}.transcode-nodes__table th{text-align:left;padding:.75rem;border-bottom:2px solid #dee2e6;font-weight:600;color:#333;white-space:nowrap;background-color:#f8f9fa}.transcode-nodes__table td{padding:.75rem;border-bottom:1px solid #eee;vertical-align:middle}.transcode-nodes__table tbody tr:nth-child(2n){background-color:#f8f9fa}.transcode-nodes__table tbody tr:hover{background-color:#e9ecef}.transcode-nodes__badge{display:inline-block;padding:.2rem .6rem;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:capitalize}.transcode-nodes__badge--active{background-color:#d4edda;color:#155724}.transcode-nodes__badge--draining{background-color:#fff3cd;color:#856404}.transcode-nodes__badge--offline{background-color:#f8d7da;color:#721c24}.transcode-nodes__caps{display:flex;flex-wrap:wrap;gap:.25rem}.transcode-nodes__cap{display:inline-block;padding:.15rem .5rem;background-color:#e7f1ff;color:#0d6efd;border-radius:10px;font-size:.75rem;font-weight:500;white-space:nowrap}.transcode-nodes__heartbeat--stale{color:#dc3545;font-weight:600}.transcode-nodes__modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.transcode-nodes__modal{background-color:#fff;border-radius:8px;padding:2rem;width:100%;max-width:500px;box-shadow:0 4px 20px #00000026}.transcode-nodes__modal h2{margin:0 0 1.5rem;font-size:1.25rem;color:#333}.transcode-nodes__form-group{margin-bottom:1rem}.transcode-nodes__form-group label{display:block;font-size:.9rem;font-weight:500;color:#333;margin-bottom:.25rem}.transcode-nodes__form-group input{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;box-sizing:border-box}.transcode-nodes__form-group .hint{font-size:.8rem;color:#666;margin-top:.25rem}.transcode-nodes__modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem}.transcode-nodes__token-box{margin-top:1rem;padding:1rem;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px}.transcode-nodes__token-box p{margin:0 0 .5rem;font-size:.9rem;color:#856404;font-weight:600}.transcode-nodes__token-field{display:flex;gap:.5rem;align-items:center}.transcode-nodes__token-field input{flex:1;padding:.5rem;font-family:monospace;font-size:.85rem;border:1px solid #ccc;border-radius:4px;background-color:#f8f9fa}.transcode-nodes__token-field button{white-space:nowrap}.transcode-nodes__empty{text-align:center;padding:3rem 1rem;color:#666}.transcode-nodes__loading{padding:2rem;text-align:center;color:#666}.transcode-nodes__download{background-color:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1rem 1.5rem;margin-bottom:1.5rem}.transcode-nodes__download-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.transcode-nodes__download h3{margin:0 0 .25rem;font-size:1.05rem;color:#333}.transcode-nodes__download-meta{font-size:.85rem;color:#666}.transcode-nodes__download-meta code{background:#f1f3f5;padding:.05rem .35rem;border-radius:3px;font-size:.8rem}.transcode-nodes__download-stale{color:#856404;font-style:italic}.transcode-nodes__download-links{display:flex;gap:.5rem;flex-wrap:wrap}.transcode-nodes__download-links a{text-decoration:none;display:inline-block}.transcode-nodes__download-hint{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #dee2e6;font-size:.85rem;color:#666}.transcode-nodes__install-box{margin-top:1rem;padding:1rem;background-color:#e7f5e9;border:1px solid #28a745;border-radius:4px}.transcode-nodes__install-box p{margin:0 0 .5rem;font-size:.9rem;color:#155724;font-weight:600}.transcode-nodes__install-links{margin-top:.5rem;font-size:.85rem;color:#155724}.transcode-nodes__install-links a{color:#155724;text-decoration:underline}.transcode-nodes__actions{display:flex;gap:.5rem;align-items:center;flex-wrap:nowrap}.transcode-nodes__setup-menu{position:relative;display:inline-block}.transcode-nodes__setup-menu-list{position:absolute;top:100%;right:0;margin:.25rem 0 0;padding:.25rem 0;list-style:none;background:#fff;border:1px solid #dee2e6;border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:100;min-width:220px}.transcode-nodes__setup-menu-item{padding:.5rem 1rem;cursor:pointer;white-space:nowrap;color:#212529;font-size:.9rem}.transcode-nodes__setup-menu-item:hover{background:#f8f9fa}.transcode-nodes__setup-warning{margin-top:.75rem;padding:.5rem .75rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-size:.85rem;color:#664d03}.transcode-nodes__modal-setup-btns{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.transcode-nodes__install-hint{margin-top:.75rem;padding:.5rem .75rem;background:#e9ecef;border-radius:4px;font-size:.85rem;color:#495057}@media (max-width: 768px){.transcode-nodes{padding:1rem}.transcode-nodes__summary{flex-direction:column}.transcode-nodes__card{min-width:auto}.transcode-nodes__header{flex-direction:column;gap:.5rem;align-items:flex-start}.transcode-nodes__download-header{flex-direction:column;align-items:flex-start}}.transcode-nodes__multi-env-hint{margin-top:.75rem;padding:.5rem .75rem;background:#d1ecf1;border:1px solid #bee5eb;border-radius:4px;font-size:.85rem;color:#0c5460}.transcode-tasks{padding:2rem;background-color:#f5f6fa;min-height:100vh}.transcode-tasks__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:.5rem}.transcode-tasks__header h1{margin:0;font-size:1.5rem;color:#333}.transcode-tasks__header-actions{display:flex;gap:.5rem;align-items:center}.transcode-tasks__btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:opacity .2s}.transcode-tasks__btn:hover{opacity:.85}.transcode-tasks__btn:disabled{opacity:.5;cursor:not-allowed}.transcode-tasks__btn--primary{background-color:#007bff;color:#fff}.transcode-tasks__btn--warning{background-color:#ffc107;color:#333}.transcode-tasks__btn--small{padding:.3rem .6rem;font-size:.85rem}.transcode-tasks__filter{display:flex;align-items:center;gap:.5rem}.transcode-tasks__filter label{font-size:.9rem;font-weight:500;color:#333}.transcode-tasks__filter select{padding:.4rem .75rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;background-color:#fff;cursor:pointer}.transcode-tasks__summary{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.transcode-tasks__card{background-color:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1rem 1.5rem;min-width:120px;flex:1;text-align:center}.transcode-tasks__card--clickable{cursor:pointer;transition:border-color .2s,box-shadow .2s}.transcode-tasks__card--clickable:hover{border-color:#007bff;box-shadow:0 0 0 1px #007bff}.transcode-tasks__card--active{border-color:#007bff;box-shadow:0 0 0 2px #007bff}.transcode-tasks__card-label{font-size:.8rem;color:#666;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}.transcode-tasks__card-value{font-size:1.5rem;font-weight:700;color:#333}.transcode-tasks__card-value--gray{color:#6c757d}.transcode-tasks__card-value--blue{color:#007bff}.transcode-tasks__card-value--indigo{color:#6610f2}.transcode-tasks__card-value--green{color:#28a745}.transcode-tasks__card-value--red{color:#dc3545}.transcode-tasks__error{margin-bottom:1rem;padding:1rem;background-color:#f8d7da;border-radius:4px;color:#721c24}.transcode-tasks__table-wrapper{background-color:#fff;border:1px solid #dee2e6;border-radius:8px;overflow-x:auto}.transcode-tasks__table{width:100%;border-collapse:collapse;font-size:.85rem}.transcode-tasks__table th{text-align:left;padding:.75rem;border-bottom:2px solid #dee2e6;font-weight:600;color:#333;white-space:nowrap;background-color:#f8f9fa}.transcode-tasks__table td{padding:.75rem;border-bottom:1px solid #eee;vertical-align:middle}.transcode-tasks__table tbody tr:nth-child(2n){background-color:#f8f9fa}.transcode-tasks__table tbody tr:hover{background-color:#e9ecef}.transcode-tasks__badge{display:inline-block;padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:capitalize}.transcode-tasks__badge--pending{background-color:#e2e3e5;color:#383d41}.transcode-tasks__badge--assigned,.transcode-tasks__badge--running{background-color:#cce5ff;color:#004085}.transcode-tasks__badge--processing{background-color:#d8c5f7;color:#3b0f7a}.transcode-tasks__badge--done,.transcode-tasks__badge--completed{background-color:#d4edda;color:#155724}.transcode-tasks__badge--error,.transcode-tasks__badge--failed{background-color:#f8d7da;color:#721c24}.transcode-tasks__badge--cancelled{background-color:#e2e3e5;color:#6c757d;text-decoration:line-through}.transcode-tasks__type{display:inline-block;padding:.15rem .5rem;background-color:#f0f0f0;color:#555;border-radius:4px;font-size:.8rem;font-weight:500}.transcode-tasks__progress{width:100%;min-width:80px;height:8px;background-color:#e9ecef;border-radius:4px;overflow:hidden;position:relative}.transcode-tasks__progress-bar{height:100%;border-radius:4px;transition:width .3s ease}.transcode-tasks__progress-bar--low{background-color:#dc3545}.transcode-tasks__progress-bar--mid{background-color:#ffc107}.transcode-tasks__progress-bar--high{background-color:#28a745}.transcode-tasks__progress-text{font-size:.75rem;color:#666;margin-top:.15rem}.transcode-tasks__short-id{font-family:monospace;font-size:.8rem;color:#555}.transcode-tasks__empty{text-align:center;padding:3rem 1rem;color:#666}.transcode-tasks__loading{padding:2rem;text-align:center;color:#666}.transcode-tasks__actions{display:flex;gap:.3rem;flex-wrap:nowrap}.transcode-tasks__btn--success{background-color:#28a745;color:#fff}.transcode-tasks__btn--danger{background-color:#dc3545;color:#fff}.transcode-tasks__video-cell{display:flex;align-items:center;gap:.5rem}.transcode-tasks__thumb{width:48px;height:36px;object-fit:cover;border-radius:3px;flex-shrink:0;background:#eee}.transcode-tasks__video-info{display:flex;flex-direction:column;gap:1px;min-width:0}.transcode-tasks__video-id{font-weight:600;font-size:.85rem;color:#333}.transcode-tasks__video-name{font-size:.75rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transcode-tasks__video-res,.transcode-tasks__video-dur{font-size:.7rem;color:#999}.transcode-tasks__profiles{font-size:.8rem;color:#555}.transcode-tasks__profiles--done{color:#28a745;font-weight:600}.transcode-tasks__error-indicator{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;background:#dc3545;color:#fff;border-radius:50%;font-size:.7rem;font-weight:700;margin-left:4px;vertical-align:middle}.transcode-tasks__row--expanded>td{background-color:#f0f4ff}.transcode-tasks__row--has-error{border-left:3px solid #dc3545}.transcode-tasks__detail-row td{padding:0;background-color:#f8f9ff}.transcode-tasks__detail{padding:1rem 1.5rem}.transcode-tasks__detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:.5rem}.transcode-tasks__detail-section{font-size:.85rem;line-height:1.6}.transcode-tasks__detail-section strong{display:block;margin-bottom:.25rem;color:#333}.transcode-tasks__detail-section code{font-size:.75rem;background:#e9ecef;padding:.1rem .3rem;border-radius:3px}.transcode-tasks__variant{font-size:.8rem;color:#555;padding:.15rem 0}.transcode-tasks__error-box{margin-top:.5rem;padding:.75rem;background:#fff5f5;border:1px solid #f8d7da;border-radius:4px}.transcode-tasks__error-box strong{color:#721c24}.transcode-tasks__pre{margin:.25rem 0 0;padding:.5rem;background:#f8f9fa;border-radius:4px;font-size:.75rem;overflow-x:auto;max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.transcode-tasks__pre--error{background:#fff0f0;color:#721c24}.transcode-tasks__derivatives{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #dee2e6}.transcode-tasks__deriv-row{display:flex;gap:16px;align-items:flex-start;margin-bottom:.75rem;flex-wrap:wrap}.transcode-tasks__deriv-item{text-align:center;min-width:80px}.transcode-tasks__deriv-img{max-height:72px;border-radius:4px;background:#f0f0f0;border:1px solid #dee2e6}.transcode-tasks__deriv-img--wide{max-height:40px;max-width:300px;width:300px;object-fit:contain}.transcode-tasks__deriv-img--sprite{max-height:72px;max-width:400px}.transcode-tasks__deriv-placeholder{display:flex;align-items:center;justify-content:center;height:48px;min-width:80px;padding:0 8px;background:#f8f9fa;border:1px dashed #ccc;border-radius:4px;color:#999;font-size:.75rem;font-style:italic}.transcode-tasks__deriv-label{font-size:.7rem;color:#666;margin-top:2px}.transcode-tasks__deriv-missing{color:#999;font-style:italic}.transcode-tasks__deriv-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem;color:#555}.transcode-tasks__deriv-meta strong{color:#333}.transcode-tasks__view-toggle{display:flex;border:1px solid #ccc;border-radius:4px;overflow:hidden}.transcode-tasks__view-btn{padding:.4rem .9rem;border:none;background:#fff;cursor:pointer;font-size:.85rem;font-weight:500;color:#555;transition:background .15s,color .15s}.transcode-tasks__view-btn:not(:last-child){border-right:1px solid #ccc}.transcode-tasks__view-btn--active{background:#007bff;color:#fff}.transcode-tasks__view-btn:hover:not(.transcode-tasks__view-btn--active){background:#f0f0f0}.transcode-tasks__expand-cell{width:28px;text-align:center}.transcode-tasks__expand-icon{display:inline-block;font-size:.65rem;color:#999;transition:transform .2s}.transcode-tasks__expand-icon--open{transform:rotate(90deg)}.transcode-tasks__profile-pills{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.transcode-tasks__profile-pill{display:inline-block;padding:2px 7px;border-radius:10px;font-size:.7rem;font-weight:600;white-space:nowrap}.transcode-tasks__profile-pill--completed{background:#d4edda;color:#155724}.transcode-tasks__profile-pill--failed{background:#f8d7da;color:#721c24}.transcode-tasks__profile-pill--processing,.transcode-tasks__profile-pill--assigned{background:#d8c5f7;color:#3b0f7a}.transcode-tasks__profile-pill--pending{background:#e2e3e5;color:#383d41}.transcode-tasks__profile-pill--cancelled{background:#e2e3e5;color:#6c757d;text-decoration:line-through}.transcode-tasks__subtable{width:100%;border-collapse:collapse;font-size:.85rem}.transcode-tasks__subtable th{text-align:left;padding:.5rem .75rem;background:#edf0f5;font-size:.8rem;font-weight:600;color:#444;border-bottom:1px solid #dee2e6}.transcode-tasks__subtable td{padding:.5rem .75rem;border-bottom:1px solid #eee;vertical-align:middle}.transcode-tasks__subtable tbody tr:hover{background:#f0f4ff}.transcode-tasks__video-row>td{padding:.6rem .75rem}@media (max-width: 768px){.transcode-tasks{padding:1rem}.transcode-tasks__summary{flex-direction:column}.transcode-tasks__card{min-width:auto}.transcode-tasks__header{flex-direction:column;align-items:flex-start}}.video-library{padding:2rem;background-color:#f5f6fa;min-height:100vh}.video-library__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:.5rem}.video-library__header h1{margin:0;font-size:1.5rem;color:#333}.video-library__header-actions{display:flex;gap:.5rem;align-items:center}.video-library__btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:opacity .2s}.video-library__btn:hover{opacity:.85}.video-library__btn:disabled{opacity:.5;cursor:not-allowed}.video-library__btn--primary{background-color:#007bff;color:#fff}.video-library__btn--success{background-color:#28a745;color:#fff}.video-library__btn--danger{background-color:#dc3545;color:#fff}.video-library__btn--small{padding:.3rem .6rem;font-size:.85rem}.video-library__error{margin-bottom:1rem;padding:1rem;background-color:#f8d7da;border-radius:4px;color:#721c24}.video-library__summary{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.video-library__card{background-color:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1rem 1.5rem;min-width:110px;flex:1;text-align:center}.video-library__card-label{font-size:.8rem;color:#666;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}.video-library__card-value{font-size:1.5rem;font-weight:700;color:#333}.video-library__card-value--green{color:#28a745}.video-library__card-value--blue{color:#007bff}.video-library__card-value--red{color:#dc3545}.video-library__filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;align-items:center}.video-library__filter{display:flex;align-items:center;gap:.5rem}.video-library__filter label{font-size:.9rem;font-weight:500;color:#333}.video-library__filter select{padding:.4rem .75rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;background-color:#fff;cursor:pointer}.video-library__search{padding:.4rem .75rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;min-width:220px}.video-library__search:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff26}.video-library__order-btn{min-width:32px;text-align:center;font-size:1rem;line-height:1}.video-library__content{display:flex;gap:0;position:relative}.video-library__content--with-panel .video-library__table-area{flex:1;min-width:0;margin-right:0}.video-library__table-area{flex:1;min-width:0}.video-library__table-wrapper{background-color:#fff;border:1px solid #dee2e6;border-radius:8px;overflow-x:auto}.video-library__table{width:100%;border-collapse:collapse;font-size:.85rem}.video-library__table th{text-align:left;padding:.75rem;border-bottom:2px solid #dee2e6;font-weight:600;color:#333;white-space:nowrap;background-color:#f8f9fa}.video-library__table td{padding:.75rem;border-bottom:1px solid #eee;vertical-align:middle}.video-library__table tbody tr:nth-child(2n){background-color:#f8f9fa}.video-library__table tbody tr:hover{background-color:#e9ecef}.video-library__row--selected>td{background-color:#e3f0ff}.video-library__row--has-error{border-left:3px solid #dc3545}.video-library__thumb-cell{width:40px;height:23px;display:flex;align-items:center;justify-content:center}.video-library__thumb{width:40px;height:23px;object-fit:cover;border-radius:2px;flex-shrink:0;background:#eee}.video-library__thumb-placeholder{width:40px;height:23px;display:flex;align-items:center;justify-content:center;background:#f0f0f0;border-radius:2px;color:#999}.video-library__filename{font-size:.85rem;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;display:inline-block}.video-library__user-id{font-size:.75rem;background:#e9ecef;padding:.1rem .3rem;border-radius:3px}.video-library__codec{display:inline-block;padding:.15rem .5rem;background-color:#f0f0f0;color:#555;border-radius:4px;font-size:.8rem;font-weight:500}.video-library__codec-small{font-size:.75rem;background:#e9ecef;padding:.1rem .3rem;border-radius:3px}.video-library__badge{display:inline-block;padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:capitalize}.video-library__badge--ready{background-color:#d4edda;color:#155724}.video-library__badge--processing{background-color:#cce5ff;color:#004085}.video-library__badge--error,.video-library__badge--failed{background-color:#f8d7da;color:#721c24}.video-library__badge--pending{background-color:#e2e3e5;color:#383d41}.video-library__badge--assigned{background-color:#cce5ff;color:#004085}.video-library__badge--completed{background-color:#d4edda;color:#155724}.video-library__badge--cancelled{background-color:#e2e3e5;color:#6c757d;text-decoration:line-through}.video-library__badge--unknown{background-color:#e2e3e5;color:#383d41}.video-library__actions{display:flex;gap:.3rem;flex-wrap:nowrap}.video-library__load-more{text-align:center;padding:1.5rem}.video-library__empty{text-align:center;padding:3rem 1rem;color:#666}.video-library__loading{padding:2rem;text-align:center;color:#666}.video-library__panel{width:60%;min-width:400px;max-width:800px;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:-4px 0 16px #00000014;display:flex;flex-direction:column;max-height:calc(100vh - 300px);overflow:hidden;position:sticky;top:2rem;margin-left:1rem}.video-library__panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #dee2e6;flex-shrink:0}.video-library__panel-header h2{margin:0;font-size:1.1rem;color:#333}.video-library__panel-close{background:none;border:none;font-size:1.5rem;color:#999;cursor:pointer;padding:0 .25rem;line-height:1}.video-library__panel-body{padding:1.25rem;overflow-y:auto;flex:1}.video-library__player-wrapper{margin-bottom:1.25rem;border-radius:6px;overflow:hidden;background:#000;aspect-ratio:16/9;max-height:360px}.video-library__player-wrapper video{width:100%;height:100%}.video-library__meta-section{margin-bottom:1.25rem}.video-library__meta-section h3{margin:0 0 .5rem;font-size:.95rem;color:#333;border-bottom:1px solid #eee;padding-bottom:.35rem}.video-library__meta-table{width:100%;border-collapse:collapse;font-size:.85rem}.video-library__meta-table td{padding:.35rem .5rem;border-bottom:1px solid #f0f0f0;vertical-align:middle}.video-library__meta-table td:first-child{font-weight:600;color:#555;width:120px;white-space:nowrap}.video-library__meta-table td:last-child{color:#333;word-break:break-all}.video-library__meta-table code{font-size:.75rem;background:#e9ecef;padding:.1rem .3rem;border-radius:3px}.video-library__derivatives{display:flex;gap:12px;flex-wrap:wrap}.video-library__deriv-item{text-align:center;min-width:70px}.video-library__deriv-img{max-height:56px;border-radius:4px;background:#f0f0f0;border:1px solid #dee2e6}.video-library__deriv-img--wide{max-height:32px;max-width:200px;width:200px;object-fit:contain}.video-library__deriv-img--sprite{max-height:56px;max-width:250px}.video-library__deriv-placeholder{display:flex;align-items:center;justify-content:center;height:40px;min-width:70px;padding:0 6px;background:#f8f9fa;border:1px dashed #ccc;border-radius:4px;color:#999;font-size:.7rem;font-style:italic}.video-library__deriv-file{display:flex;align-items:center;justify-content:center;height:40px;min-width:70px;padding:0 6px;background:#d4edda;border:1px solid #c3e6cb;border-radius:4px;color:#155724;font-size:.7rem;font-weight:500}.video-library__deriv-label{font-size:.7rem;color:#666;margin-top:2px}.video-library__hls-table{width:100%;border-collapse:collapse;font-size:.85rem}.video-library__hls-table th{text-align:left;padding:.5rem;background:#f8f9fa;font-size:.8rem;font-weight:600;color:#444;border-bottom:1px solid #dee2e6}.video-library__hls-table td{padding:.4rem .5rem;border-bottom:1px solid #eee;vertical-align:middle}.video-library__tasks-table{width:100%;border-collapse:collapse;font-size:.85rem}.video-library__tasks-table th{text-align:left;padding:.5rem;background:#f8f9fa;font-size:.8rem;font-weight:600;color:#444;border-bottom:1px solid #dee2e6}.video-library__tasks-table td{padding:.4rem .5rem;border-bottom:1px solid #eee;vertical-align:middle}.video-library__tasks-table tbody tr:hover{background:#f0f4ff}.video-library__task-error-row td{padding:.25rem .5rem;background:#fff5f5}.video-library__progress{width:100%;min-width:60px;height:6px;background-color:#e9ecef;border-radius:3px;overflow:hidden}.video-library__progress-bar{height:100%;border-radius:3px;transition:width .3s ease}.video-library__progress-bar--low{background-color:#dc3545}.video-library__progress-bar--mid{background-color:#ffc107}.video-library__progress-bar--high{background-color:#28a745}.video-library__progress-text{font-size:.7rem;color:#666;margin-top:.1rem}.video-library__pre{margin:0;padding:.4rem;background:#f8f9fa;border-radius:4px;font-size:.7rem;overflow-x:auto;max-height:120px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.video-library__pre--error{background:#fff0f0;color:#721c24}.video-library__player-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;margin-bottom:1.25rem;background:#f8f9fa;border:1px dashed #ccc;border-radius:6px;color:#666;font-size:.9rem}.video-library__spinner{width:24px;height:24px;border:3px solid #dee2e6;border-top-color:#007bff;border-radius:50%;animation:video-library-spin .8s linear infinite}@keyframes video-library-spin{to{transform:rotate(360deg)}}.video-library__link{color:#007bff;text-decoration:none}.video-library__link:hover{text-decoration:underline}.video-library__date{font-size:.8rem;color:#666;white-space:nowrap}.video-library__badge--metadata_unavailable{background-color:#fff3cd;color:#856404}.video-library__badge--uploaded{background-color:#e2e3e5;color:#383d41}.video-library__panel-actions{display:flex;gap:.5rem;padding-top:1rem;border-top:1px solid #eee;margin-top:.5rem;flex-wrap:wrap}@media (max-width: 1200px){.video-library__panel{width:50%;min-width:350px}}@media (max-width: 900px){.video-library__content--with-panel{flex-direction:column}.video-library__panel{width:100%;max-width:none;min-width:auto;margin-left:0;margin-top:1rem;position:static;max-height:none}}@media (max-width: 768px){.video-library{padding:1rem}.video-library__summary{flex-direction:column}.video-library__card{min-width:auto}.video-library__header,.video-library__filters{flex-direction:column;align-items:flex-start}}.video-library__panel{position:fixed;top:0;right:0;width:60%;max-width:800px;height:100vh;background:#fff;box-shadow:-4px 0 20px #00000026;z-index:1000;overflow-y:auto;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.video-library__panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;position:sticky;top:0;background:#fff;z-index:1}.video-library__panel-header h2{margin:0;font-size:1.2rem}.video-library__panel-close{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;color:#666}.video-library__panel-close:hover{color:#333}.video-library__panel-body{padding:1.5rem}.video-library__player-wrapper{margin-bottom:1.5rem;background:#000;border-radius:8px;overflow:hidden;aspect-ratio:16/9}.video-library__player-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;background:#1e1e1e;border-radius:8px;color:#999;margin-bottom:1.5rem}.video-library__spinner{width:32px;height:32px;border:3px solid #333;border-top-color:#2196f3;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.video-library__metadata{margin-bottom:1.5rem}.video-library__metadata h3{margin:0 0 .75rem;font-size:1rem}.video-library__metadata table{width:100%;font-size:.85rem}.video-library__metadata td{padding:.25rem .5rem;border-bottom:1px solid #f0f0f0}.video-library__metadata td:first-child{font-weight:600;color:#666;width:120px}.video-library__panel-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.video-library__panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:999}@media (max-width: 768px){.video-library__panel{width:100%;max-width:none}}.modules-page{padding:1.5rem;max-width:1400px}.modules-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.modules-header h1{margin:0}.modules-error{background:#ffebee;color:#b71c1c;padding:.5rem 1rem;border-radius:4px;margin-bottom:1rem}.modules-loading{color:#757575;padding:2rem;text-align:center}.modules-group{margin-bottom:2rem}.modules-group h2{font-size:1.15rem;border-bottom:1px solid #e0e0e0;padding-bottom:.5rem;margin-bottom:.75rem}.modules-group-header{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:.5rem}.modules-group-header:hover{color:#1565c0}.modules-group-header:focus-visible{outline:2px solid #1976d2;outline-offset:2px;border-radius:2px}.collapse-chevron{font-size:.75rem;color:#757575;transition:transform .15s;width:1rem;display:inline-block}.group-count{color:#9e9e9e;font-weight:400;font-size:.9rem}.modules-header-actions{display:flex;gap:.5rem}.modules-filters{display:flex;align-items:center;gap:1.25rem;padding:.75rem 1rem;background:#fafafa;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.modules-filters label{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.filter-count{margin-left:auto;color:#757575;font-size:.85rem}.modules-revert-ribbon{background:#fff3e0;border:1px solid #ffb74d;color:#e65100;padding:.65rem 1rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.module-highlight{animation:module-highlight-flash 2s ease-out}@keyframes module-highlight-flash{0%{background:#fff59d}50%{background:#fff59d}to{background:transparent}}.modules-table{width:100%;border-collapse:collapse;font-size:.9rem}.modules-table th,.modules-table td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid #f0f0f0;vertical-align:top}.modules-table th{background:#fafafa;font-weight:600;color:#424242}.modules-table tr.module-orphan{background:#fff8e1}.orphan-badge{color:#e65100;font-size:.75rem;margin-left:.25rem}.depends-on{color:#757575;font-size:.75rem;margin-top:.25rem}.email-muted{color:#9e9e9e;font-size:.75rem}.notes-cell{max-width:200px;word-wrap:break-word;color:#616161}.health-cell{text-align:center;font-size:1.25rem}.module-state-segment{display:inline-flex;border:1px solid #bdbdbd;border-radius:4px;overflow:hidden}.module-state-btn{background:#fff;border:none;border-right:1px solid #e0e0e0;padding:.4rem .75rem;cursor:pointer;font-size:.8rem;color:#616161;transition:background .15s}.module-state-btn:last-child{border-right:none}.module-state-btn:hover:not(:disabled){background:#f5f5f5}.module-state-btn.active{background:#fafafa;cursor:default}.module-state-btn:disabled:not(.active){opacity:.5;cursor:not-allowed}.module-recent-audit{list-style:none;padding:0;margin:0;font-size:.75rem;color:#616161}.module-recent-audit li{padding:.1rem 0;display:flex;gap:.5rem;flex-wrap:wrap}.audit-when{color:#9e9e9e}.audit-change{font-weight:600;color:#424242}.audit-by{color:#757575}.audit-notes{color:#4a148c;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-none{color:#bdbdbd}.modules-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modules-modal{background:#fff;padding:1.5rem;border-radius:6px;min-width:400px;max-width:600px}.modules-modal h2{margin-top:0}.modules-modal textarea{width:100%;font-family:inherit;font-size:.9rem;padding:.5rem;border:1px solid #bdbdbd;border-radius:4px}.modules-modal-actions{margin-top:1rem;display:flex;justify-content:flex-end;gap:.5rem}.modules-modal-actions button{padding:.5rem 1rem;border:1px solid #bdbdbd;background:#fff;border-radius:4px;cursor:pointer}.modules-modal-actions button:last-child{background:#1976d2;color:#fff;border-color:#1976d2}.modules-modal-actions button:disabled{opacity:.5;cursor:not-allowed}.audit-page{padding:1.5rem;max-width:1400px}.audit-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;padding:1rem;background:#fafafa;border-radius:6px}.audit-filters label{display:flex;flex-direction:column;font-size:.8rem}.audit-filters input,.audit-filters select{padding:.25rem;font-size:.9rem}.audit-table{width:100%;border-collapse:collapse;font-size:.85rem}.audit-table th,.audit-table td{border-bottom:1px solid #e0e0e0;padding:.4rem .5rem;text-align:left}.audit-table th{background:#fafafa}.audit-pagination{margin-top:1rem;display:flex;gap:.5rem;align-items:center}.btn-revert{padding:.25rem .6rem;background:#fff;border:1px solid #1976d2;color:#1976d2;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-revert:hover:not(:disabled){background:#e3f2fd}.btn-revert:disabled{opacity:.5;cursor:not-allowed;border-color:#bdbdbd;color:#bdbdbd}.audit-change-read_write{color:#2e7d32;font-weight:600}.audit-change-read_only{color:#f9a825;font-weight:600}.audit-change-admins_only{color:#ef6c00;font-weight:600}.audit-change-off{color:#c62828;font-weight:600}.btn-secondary{padding:.4rem .9rem;background:#fff;border:1px solid #1976d2;color:#1976d2;border-radius:4px;text-decoration:none;font-size:.9rem}.btn-secondary:hover{background:#e3f2fd}.ss-page{padding:var(--space-6);max-width:1100px}.ss-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-2)}.ss-header h1{font-size:var(--text-2xl);margin:0}.ss-header-actions{display:flex;gap:var(--space-2)}.ss-hint{color:var(--muted);font-size:var(--text-sm);margin:0 0 var(--space-4)}.ss-error{background:var(--color-primary-soft);border:1px solid var(--red-500);color:var(--red-500);padding:var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-3)}.ss-loading,.ss-empty{color:var(--muted);padding:var(--space-6);text-align:center}.ss-tree{display:flex;flex-direction:column;gap:var(--space-1)}.ss-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md)}.ss-drag-handle{cursor:grab;border:none;background:transparent;color:var(--text-tertiary);padding:2px;display:flex;align-items:center}.ss-drag-handle:active{cursor:grabbing}.ss-badge{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:var(--radius-xs);border:1px solid var(--border);flex-shrink:0}.ss-badge--module{color:var(--blue-600);border-color:var(--color-primary-border);background:var(--blue-50)}.ss-badge--content{color:var(--green-500);border-color:var(--green-500);background:#eafaef}.ss-badge--link{color:var(--amber-500);border-color:var(--amber-500);background:#fff7e6}.ss-row-title{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.ss-row-ref{font-size:var(--text-xs);color:var(--muted);font-family:var(--font-mono, monospace)}.ss-title-editor{display:flex;align-items:center;gap:var(--space-2);flex:1 1 auto;min-width:0}.ss-title-tabs{display:flex;gap:2px}.ss-title-tab{border:1px solid var(--border);background:transparent;color:var(--muted);border-radius:var(--radius-xs);padding:1px 6px;font-size:11px;cursor:pointer}.ss-title-tab.active{border-color:var(--color-primary);color:var(--color-primary)}.ss-title-tab.empty{opacity:.55}.ss-title-input{flex:1 1 auto;min-width:0;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:var(--text-sm);background:var(--surface-card);color:var(--text-primary)}.ss-toggle-chip{display:inline-block;font-size:11px;padding:1px 6px;border-radius:var(--radius-pill);border:1px solid var(--border);text-decoration:none;color:var(--muted);width:fit-content}.ss-toggle-chip--read_write{color:var(--green-500);border-color:var(--green-500)}.ss-toggle-chip--read_only{color:#b59000;border-color:var(--amber-500)}.ss-toggle-chip--admins_only{color:var(--amber-500);border-color:var(--amber-500)}.ss-toggle-chip--off{color:var(--red-500);border-color:var(--red-500)}.ss-select{flex:0 0 auto;width:auto;min-width:96px;max-width:150px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 6px;font-size:var(--text-sm);background:var(--surface-card);color:var(--text-primary)}.ss-placements{display:flex;gap:var(--space-2)}.ss-check{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--muted);cursor:pointer}.ss-eye,.ss-del{border:1px solid var(--border);background:transparent;border-radius:var(--radius-sm);padding:4px;color:var(--muted);cursor:pointer;display:flex}.ss-eye.hidden{color:var(--amber-500);border-color:var(--amber-500)}.ss-del:hover{color:var(--red-500);border-color:var(--red-500)}.ss-open{flex-shrink:0;border:1px solid var(--border);background:transparent;border-radius:var(--radius-sm);padding:4px;color:var(--muted);cursor:pointer;display:flex;text-decoration:none}.ss-open:hover{color:var(--color-primary);border-color:var(--color-primary)}a.ss-row-ref{text-decoration:none}a.ss-row-ref:hover{text-decoration:underline;color:var(--text-link)}.ss-pv{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);margin-bottom:var(--space-4);overflow:hidden}.ss-pv-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.ss-pv-toggle{display:flex;align-items:center;gap:var(--space-2);border:none;background:transparent;cursor:pointer;font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.ss-pv-caret{display:flex;color:var(--text-tertiary);transform:rotate(-90deg);transition:transform .15s}.ss-pv-caret.open{transform:rotate(0)}.ss-pv-controls{display:flex;gap:var(--space-3);flex-wrap:wrap}.ss-seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.ss-seg-btn{border:none;border-right:1px solid var(--border);background:transparent;cursor:pointer;padding:3px 10px;font-size:12px;color:var(--muted)}.ss-seg-btn:last-child{border-right:none}.ss-seg-btn.active{background:var(--color-primary);color:#fff}.ss-pv-body{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-4)}.ss-pv-block{display:flex;flex-direction:column;gap:var(--space-2)}.ss-pv-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.ss-pv-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm)}.ss-pv-footer{display:flex;flex-wrap:wrap;gap:var(--space-6);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm)}.ss-pv-col{display:flex;flex-direction:column;gap:4px;min-width:120px}.ss-pv-col-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.ss-pv-link{color:var(--text-link);text-decoration:none;font-size:var(--text-sm)}.ss-pv-link:hover{text-decoration:underline}.ss-pv-link.is-plain{color:var(--muted)}.ss-pv-col-title{font-weight:600}.ss-pv-col-title.is-plain{color:var(--text-primary)}.ss-pv-empty{color:var(--muted);font-size:var(--text-sm);font-style:italic}.ss-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:flex;align-items:center;justify-content:center;z-index:1000}.ss-dialog{background:var(--surface-card);border-radius:var(--radius-xl);border:1px solid var(--border);padding:var(--space-6);width:min(440px,92vw);display:flex;flex-direction:column;gap:var(--space-3)}.ss-dialog h3{margin:0 0 var(--space-2)}.ss-field{display:flex;flex-direction:column;gap:4px;font-size:var(--text-sm);color:var(--muted)}.ss-field input,.ss-field select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:var(--text-md);background:var(--surface-card);color:var(--text-primary)}.ss-shortcut{font-size:var(--text-xs);color:var(--text-link);text-decoration:none;margin-top:2px}.ss-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.ss-audit-filters{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin-bottom:var(--space-4)}.ss-audit-filters label{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);color:var(--muted)}.ss-audit-filters input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:var(--text-sm);background:var(--surface-card);color:var(--text-primary)}.ss-audit-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ss-audit-table th,.ss-audit-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.ss-audit-action{font-size:var(--text-xs);padding:1px 6px;border-radius:var(--radius-xs);border:1px solid var(--border)}.ss-audit-action--create{color:var(--green-500);border-color:var(--green-500)}.ss-audit-action--update{color:var(--blue-600);border-color:var(--color-primary-border)}.ss-audit-action--move{color:var(--amber-500);border-color:var(--amber-500)}.ss-audit-action--delete{color:var(--red-500);border-color:var(--red-500)}.ss-audit-pagination{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-4)}.ss-audit-pagination button{border:1px solid var(--border);background:var(--surface-card);border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer}.ss-audit-pagination button:disabled{opacity:.5;cursor:default}@media (max-width: 720px){.ss-row{flex-wrap:wrap}.ss-row-title{flex-basis:100%}}.lib-card{height:auto;transition:box-shadow .15s var(--ease-out),border-color .15s,transform .15s var(--ease-out)}.lib-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.lib-tree-row{transition:background .1s}.lib-tree-row:hover{background:var(--surface-hover)}.lib-tree-btn:hover{background:var(--surface-sunken)!important}.lib-book-cover{transition:transform .15s var(--ease-out),box-shadow .15s}.lib-book-cover:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.lc-item .lc-rm{opacity:0;transition:opacity .12s}.lc-item:hover .lc-rm{opacity:1}.lc-fc-actions{opacity:0;transition:opacity .12s}.lib-card:hover .lc-fc-actions{opacity:1}.main-content:has(>.lib-hub){padding:0}.lib-hub{display:flex;flex-direction:column}.lib-nav{height:52px;flex:none;position:sticky;top:0;z-index:30;background:var(--surface-card);border-bottom:1px solid var(--border-default);overflow-x:auto}.lib-nav-inner{height:100%;max-width:1180px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.lib-nav-tabs{grid-column:2;display:flex;align-items:center;gap:2px}.lib-nav-right{grid-column:3;justify-self:end}.lib-nav-item{height:38px;padding:0 13px;display:inline-flex;align-items:center;gap:7px;border-radius:var(--radius-md);border:none;background:transparent;cursor:pointer;flex:none;color:var(--text-secondary);font-family:var(--font-sans);font-size:14px;font-weight:600;white-space:nowrap;text-decoration:none;transition:background .12s,color .12s}.lib-nav-item:hover{background:var(--surface-hover)}.lib-nav-item.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.lib-nav-item[aria-disabled=true]{color:var(--text-tertiary);opacity:.6;cursor:default}.lib-nav-count{font-size:12px;font-weight:700;color:var(--text-tertiary)}.lib-nav-item.active .lib-nav-count{color:var(--color-primary)}.lib-content{min-width:0}.lib-cat{display:flex;align-items:stretch;--lib-top: 48px}.lib-cat-tree{position:sticky;top:52px;align-self:flex-start;height:calc(100dvh - var(--lib-top) - 52px)}.lib-cat-main{min-height:calc(100dvh - var(--lib-top) - 52px)}.lib-cat-head{position:sticky;top:52px;z-index:10}.lib-cat-body{padding:22px}.lib-cat-search input{width:200px}.lib-ov{padding:24px}.lib-ov-page{min-height:calc(100dvh - 100px)}.lib-ov-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));max-width:1180px}.lib-ov-card{display:block;text-decoration:none;padding:18px;border-radius:var(--radius-lg);background:var(--surface-card);border:1px solid var(--border-default);box-shadow:var(--shadow-xs);transition:box-shadow .15s var(--ease-out),border-color .15s,transform .15s var(--ease-out)}.lib-ov-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.lib-ov-stat{font-size:30px;font-weight:800;color:var(--text-primary);letter-spacing:-.5px}.lib-ov-label{margin-top:4px;font-size:13.5px;font-weight:600;color:var(--text-secondary)}.lib-ov-sec{margin-top:26px;max-width:1180px}.lib-ov-h2{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--text-primary);margin:0 0 12px}.lib-mini-row{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.lib-mini{display:block;text-decoration:none;padding:12px 14px;border-radius:var(--radius-md);background:var(--surface-card);border:1px solid var(--border-default);box-shadow:var(--shadow-xs);transition:box-shadow .15s,border-color .15s}.lib-mini:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.lib-mini-title{font-size:13.5px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-mini-sub{margin-top:6px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-tertiary)}.lib-badge{padding:1px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:600}.lib-badge--draft{background:color-mix(in srgb,var(--status-warning) 16%,#fff);color:var(--status-warning)}.lib-badge--published{background:color-mix(in srgb,var(--status-success) 16%,#fff);color:var(--status-success)}.lib-badge--archived{background:var(--surface-sunken);color:var(--text-tertiary)}.lib-shelf{display:flex;flex-wrap:wrap;gap:10px}.lib-book-spine{display:inline-flex;align-items:center;gap:8px;max-width:240px;padding:10px 14px;border-radius:var(--radius-md);background:var(--color-primary-soft);border:1px solid var(--color-primary-border);color:var(--color-primary);text-decoration:none;font-size:13px;font-weight:600}.lib-book-spine span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-book-spine:hover{box-shadow:var(--shadow-sm)}.lib-trash-list{display:grid;gap:8px;max-width:880px}.lib-trash-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:var(--radius-md);background:var(--surface-card);border:1px solid var(--border-default)}.lib-trash-info{flex:1;min-width:0}.lib-trash-title{font-size:14px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-trash-sub{font-size:12px;color:var(--text-tertiary)}.lib-trash-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;flex:none}.lib-trash-btn:hover{border-color:var(--border-strong)}.lib-trash-btn--danger:hover{border-color:var(--status-danger);color:var(--status-danger)}.lib-cat-chips{display:none}@media (max-width: 768px){.lib-cat-tree{display:none!important}.lib-nav{height:auto;overflow-x:visible}.lib-nav-mrow{display:flex;align-items:center;padding:6px 10px}.lib-nav-picker{display:inline-flex;align-items:center;gap:7px;height:37px;padding:0 12px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;font-weight:700;cursor:pointer;max-width:100%}.lib-nav-picker-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-cat-head{position:static}.lib-cat-viewtoggle{display:none!important}.lib-btn-label{display:none}.lib-cat-main{min-height:0}.lib-cat-body{padding:12px 12px 96px}.lib-ov{padding:16px 12px 96px}.lib-ov-page{min-height:0;padding-bottom:96px}.lib-cat-chips{display:flex;flex:none;gap:6px;padding:10px 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--surface-card);border-bottom:1px solid var(--border-default)}.lib-cat-chips::-webkit-scrollbar{display:none}.lib-chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;flex:none;border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);font-family:var(--font-sans);font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.lib-chip.active{background:var(--color-primary-soft);border-color:var(--color-primary-border);color:var(--color-primary);font-weight:700}.lib-chip-n{font-size:11.5px;font-weight:700;color:var(--text-tertiary)}.lib-chip.active .lib-chip-n{color:var(--color-primary)}.lib-cat-head{padding:12px 16px 10px!important}.lib-cat-search{flex:1 1 100%}.lib-cat-search input{width:100%!important}}@media (max-width: 768px){.lib-cat-folders,.lib-cat-items{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}}.cm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;flex-direction:column;z-index:1100}.cm-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--panel-solid);border-bottom:1px solid var(--border);flex-shrink:0}.cm-title{font-size:16px;font-weight:600;color:var(--text)}.cm-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--field-bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:18px;color:var(--text);transition:all var(--transition-fast)}.cm-close:hover{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--danger)}.cm-body{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;min-height:0;overflow:hidden}.cm-canvas{position:relative;display:inline-block;-webkit-user-select:none;user-select:none;touch-action:none;max-width:100%;max-height:100%}.cm-image{display:block;max-width:80vw;max-height:calc(100vh - 180px);max-height:calc(100dvh - 180px);object-fit:contain;border-radius:var(--radius-sm)}.cm-shade{position:absolute;background:#00000073;pointer-events:none;transition:all .06s ease-out}.cm-selection{position:absolute;border:2px solid var(--accent);box-shadow:0 0 0 1px #00000040;cursor:move;z-index:1}.cm-thirds-h,.cm-thirds-v{position:absolute;pointer-events:none}.cm-thirds-h{left:0;right:0;height:1px;background:#fff3}.cm-thirds-v{top:0;bottom:0;width:1px;background:#fff3}.cm-handle{position:absolute;width:12px;height:12px;background:var(--panel-solid);border:2px solid var(--accent);border-radius:2px;z-index:2}.cm-handle--nw{top:-6px;left:-6px;cursor:nw-resize}.cm-handle--n{top:-6px;left:50%;margin-left:-6px;cursor:n-resize}.cm-handle--ne{top:-6px;right:-6px;cursor:ne-resize}.cm-handle--e{top:50%;margin-top:-6px;right:-6px;cursor:e-resize}.cm-handle--se{bottom:-6px;right:-6px;cursor:se-resize}.cm-handle--s{bottom:-6px;left:50%;margin-left:-6px;cursor:s-resize}.cm-handle--sw{bottom:-6px;left:-6px;cursor:sw-resize}.cm-handle--w{top:50%;margin-top:-6px;left:-6px;cursor:w-resize}.cm-handle:hover{background:var(--accent)}.cm-face-box{position:absolute;border:1.5px dashed rgba(52,199,89,.6);border-radius:2px;pointer-events:none;z-index:3}.cm-ai-badge{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#000000a6;color:#fffc;padding:4px 12px;border-radius:999px;font-size:12px;white-space:nowrap;pointer-events:none;z-index:4}.cm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:var(--panel-solid);border-top:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.cm-toolbar-group{display:flex;align-items:center;gap:8px}.cm-btn{height:var(--control-h);padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--field-bg);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all var(--transition-normal);white-space:nowrap}.cm-btn:hover{background:var(--field-hover)}.cm-btn--disabled,.cm-btn:disabled{opacity:.4;cursor:not-allowed}.cm-btn--ai{border-color:var(--accent);color:var(--accent)}.cm-btn--ai:hover:not(:disabled){background:var(--accent-light)}.cm-btn--faces{border-color:var(--color-success-text, #16a34a);color:var(--color-success-text, #16a34a)}.cm-btn--faces:hover:not(:disabled){background:var(--color-success-bg)}.cm-btn--reset{color:var(--muted);border-color:var(--border)}.cm-btn--cancel{color:var(--text)}.cm-btn--apply{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.cm-btn--apply:hover{background:var(--accent-hover)}.cm-rotate-group{gap:4px}.cm-btn--rotate{font-size:18px;min-width:var(--control-h);padding:0 10px;border-color:var(--border);color:var(--text)}.cm-btn--rotate:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.cm-presets{gap:4px}.cm-preset{height:32px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.cm-preset:hover{border-color:var(--accent);color:var(--text)}.cm-preset--active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}@media (max-width: 768px){.cm-body{padding:12px}.cm-image{max-width:95vw;max-height:calc(100vh - 200px);max-height:calc(100dvh - 200px)}.cm-toolbar{flex-direction:column;gap:8px}.cm-toolbar-group{flex-wrap:wrap;justify-content:center}}.sl-page{display:flex;flex-direction:column;height:calc(100vh - 60px);height:calc(100dvh - 60px);overflow:hidden;background:var(--bg)}.sl-toolbar{display:flex;flex-direction:column;gap:8px;padding:12px 20px;background:var(--panel-solid);border-bottom:1px solid var(--border);flex-shrink:0}.sl-toolbar-row{display:flex;align-items:center;gap:8px}.sl-toolbar-row--filters{flex-wrap:wrap}.sl-search-wrap{position:relative;flex:1;min-width:180px;max-width:420px}.sl-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.sl-search{width:100%;height:var(--control-h);padding:0 36px 0 34px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:14px;outline:none;transition:border-color var(--transition-fast)}.sl-search:focus{border-color:var(--accent)}.sl-search::placeholder{color:var(--muted)}.sl-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px;line-height:1;padding:4px}.sl-search-clear:hover{color:var(--text)}.sl-sort{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-left:auto}.sl-sort-btn{height:var(--control-h);padding:0 12px;border:none;background:var(--field-bg);color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.sl-sort-btn:not(:last-child){border-right:1px solid var(--border)}.sl-sort-btn:hover{color:var(--text)}.sl-sort-btn--active{background:var(--accent);color:#fff}.sl-sort-arrow{font-size:11px;margin-left:2px}.sl-btn-icon{width:var(--control-h);padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sl-btn{height:var(--control-h);padding:0 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer;transition:all var(--transition-normal)}.sl-status-tabs{display:flex;gap:4px}.sl-status-tab{display:inline-flex;align-items:center;gap:6px;height:var(--control-h);padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.sl-status-tab:hover{border-color:var(--accent);color:var(--accent)}.sl-status-tab--active{background:var(--accent);color:#fff;border-color:var(--accent)}.sl-status-tab--active:hover{color:#fff}.sl-status-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:9999px;font-size:11px;font-weight:600;background:var(--border);color:var(--muted)}.sl-status-tab--active .sl-status-tab-count{background:#fff3;color:#fff}.sl-layout{display:flex;flex:1;overflow:hidden}.sl-sidebar{width:280px;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border);background:var(--panel-solid)}.sl-sidebar .efp-search-icon{left:12px}.sl-sidebar .efp-search{padding-left:34px}.sl-content{flex:1;overflow-y:auto;padding:20px}.sl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.sl-merge-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--color-primary-soft);border-radius:8px;margin:0 16px 8px}.sl-merge-info{font-size:14px;font-weight:500;color:var(--color-primary)}.sl-card-wrap{position:relative}.sl-card-wrap--select{cursor:pointer}.sl-card-wrap--select .sc-card{pointer-events:none}.sl-card-wrap--select:hover{opacity:.9}.sl-card-wrap--selected{outline:3px solid var(--color-primary);border-radius:12px;outline-offset:2px}.sl-card-checkbox{position:absolute;top:8px;right:8px;z-index:10;display:flex;align-items:center;gap:4px;cursor:pointer;background:#ffffffe6;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:700;box-shadow:var(--shadow-sm)}.sl-card-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.sl-card-check-num{color:var(--color-primary);min-width:14px;text-align:center}.sl-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:var(--muted)}.sl-empty p{margin-bottom:12px}.sl-empty-hint{font-size:14px;margin-bottom:20px}.sl-pagination{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 8px}.sl-pagination-controls{display:flex;align-items:center;gap:4px}.sl-page-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.sl-page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sl-page-btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.sl-page-btn--active:hover{color:#fff}.sl-page-btn:disabled{opacity:.35;cursor:default}.sl-page-dots{display:inline-flex;align-items:center;justify-content:center;width:28px;height:36px;color:var(--muted);font-size:14px}.sl-pagination-info{font-size:12px;color:var(--muted)}.sl-pagination-footer{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}.sl-pagesize{display:inline-flex;align-items:center;gap:6px}.sl-pagesize-label{font-size:12px;color:var(--muted);white-space:nowrap}.sl-pagesize-select{height:28px;padding:0 24px 0 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:12px;cursor:pointer}.sl-pagesize-select:focus{outline:none;border-color:var(--accent)}.sc-card{background:var(--panel-solid);border-radius:var(--radius-md);border:1px solid var(--border);overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.sc-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.sc-cover{position:relative;height:160px;overflow:hidden;background:var(--border)}.sc-cover-img{width:100%;height:100%;object-fit:cover;display:block}.sc-cover-img--contain{object-fit:contain;background:linear-gradient(135deg,#0000000a,#00000014)}.sc-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0000000a,#00000014)}.sc-cover-icon{font-size:28px;opacity:.75}.sc-crop-badge{position:absolute;left:8px;bottom:8px;font-size:10px;font-weight:700;letter-spacing:.4px;border-radius:9999px;padding:2px 7px;background:#0000009e;color:#fff;z-index:2}.sc-crop-badge--llm{background:#106610b8}.sc-crop-badge--face_safe{background:#134e9fc7}.sc-crop-badge--contain{background:#424242c7}.sc-cover-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--muted);font-size:13px}.sc-body{padding:14px 16px;flex:1;display:flex;flex-direction:column}.sc-title{font-size:16px;font-weight:600;margin:0 0 6px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sc-chapters{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.sc-chapter-pill{display:inline-block;padding:2px 8px;border-radius:10px;background:var(--surface-sunken);font-size:11px;color:var(--text-secondary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-desc{font-size:13px;color:var(--muted);margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.sc-previews{display:flex;flex-wrap:nowrap;gap:4px;margin-bottom:10px;overflow:hidden}.sc-preview-thumb{width:40px;height:40px;flex:0 0 auto;object-fit:cover;border-radius:var(--radius-sm);background:var(--border);border:1px solid var(--border)}.sc-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.sc-event-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:500;background:var(--accent-light);color:var(--accent)}.sc-status{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;align-items:center;padding:3px 9px;border-radius:9999px;font-size:11px;font-weight:700;box-shadow:0 1px 2px #00000026}.sc-status--draft{background:var(--color-warning-bg);color:var(--color-warning-text)}.sc-status--published{background:var(--color-success-bg);color:var(--color-success-text)}.sc-cover .source-badge{position:absolute;top:10px;right:10px;z-index:2;box-shadow:0 1px 2px #00000026}.sc-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:10px;border-top:1px solid var(--border)}.sc-date{font-size:12px;color:var(--muted)}.sc-date--upd{font-style:italic}.sc-date--event{color:var(--accent);font-weight:500}.sc-photos{font-size:12px;color:var(--muted)}.sc-actions{display:flex;gap:6px}.sc-edit,.sc-delete{padding:4px 10px;border-radius:var(--radius-sm);font-size:12px;border:1px solid var(--border);background:var(--field-bg);color:var(--text);cursor:pointer;transition:all var(--transition-fast)}.sc-edit:hover{border-color:var(--accent);color:var(--accent)}.sc-delete:hover{border-color:var(--danger);color:var(--danger)}.drf-wrap{display:flex;align-items:center;gap:6px}.drf-label{font-size:13px;color:var(--muted);white-space:nowrap}.drf-input{height:36px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:13px}.drf-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.drf-clear{height:36px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--muted);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.drf-clear:hover{border-color:var(--danger);color:var(--danger)}.se-page{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--bg)}.main-content:has(>.se-page){height:100%;min-height:0;overflow:hidden;padding:0}.main-body-content:has(.se-page){overflow:hidden}.main-body-content:has(.se-page) .app-footer,.main-body-content:has(.se-page) .portal-footer,.main-body-content:has(.bb-root) .app-footer,.main-body-content:has(.bb-root) .portal-footer{display:none}.main-content:has(>.se-page),.main-content:has(>.bb-root){padding-bottom:0!important}.se-header{display:flex;align-items:center;padding:0 16px;height:var(--topbar-h);min-height:var(--topbar-h);background:var(--surface-card);border-bottom:1px solid var(--border-default);flex-shrink:0;z-index:100;gap:12px}.se-header-left{flex:1;display:flex;align-items:center;min-width:0}.se-back{color:var(--text-link);text-decoration:none;font-size:var(--text-sm);font-weight:600;transition:opacity var(--transition-fast);white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.se-back:before{content:"←";font-size:15px}.se-back:hover{opacity:.7}.se-header-actions{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.se-mode-seg{display:inline-flex;gap:2px;padding:2px;background:var(--surface-sunken);border-radius:var(--radius-md);flex:none}.se-mode-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border:none;border-radius:calc(var(--radius-md) - 2px);background:transparent;color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--duration-fast),color var(--duration-fast)}.se-mode-btn--active{background:var(--surface-card);color:var(--color-primary);box-shadow:var(--shadow-sm)}.se-ptoggle{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;flex:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast)}.se-ptoggle:hover{background:var(--surface-hover)}.se-ptoggle--on{background:var(--color-primary-soft);border-color:var(--color-primary-border);color:var(--blue-600)}.se-header-sep{width:1px;height:18px;background:var(--border-default);margin:0 4px;flex-shrink:0}.se-tools{display:inline-flex;align-items:center;gap:4px;flex:none;flex-wrap:nowrap}.se-tool-btn{display:inline-flex;align-items:center;gap:6px;height:var(--control-h-sm, 30px);padding:0 10px;flex:none;border:1px solid var(--border-default);border-radius:var(--radius-pill, 999px);background:var(--surface-card);color:var(--text-default);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--duration-fast),border-color var(--duration-fast)}.se-tool-btn:hover:not(:disabled){background:var(--surface-hover, color-mix(in srgb, var(--text-default) 6%, var(--surface-card)));border-color:var(--border-strong, var(--border-default))}.se-tool-btn:disabled{opacity:.5;cursor:default}@media (max-width: 1180px){.se-tool-btn span{display:none}.se-tool-btn{padding:0 9px}}.se-fresh-btn{position:relative;display:inline-flex;align-items:center;gap:6px;height:var(--control-h-sm, 30px);padding:0 12px;flex:none;border:1px solid var(--color-primary-border);border-radius:var(--radius-pill, 999px);background:var(--color-primary-soft);color:var(--color-primary);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background var(--duration-fast),border-color var(--duration-fast)}.se-fresh-btn:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 16%,var(--surface-card))}.se-fresh-btn:disabled{opacity:.6;cursor:default}.se-fresh-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--color-primary);animation:se-fresh-pulse 1.6s ease-in-out infinite}@keyframes se-fresh-pulse{0%,to{opacity:1;box-shadow:0 0 color-mix(in srgb,var(--color-primary) 45%,transparent)}50%{opacity:.55;box-shadow:0 0 0 4px transparent}}@media (prefers-reduced-motion: reduce){.se-fresh-dot{animation:none}}.se-fresh-gone{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;flex:none;border-radius:var(--radius-pill, 999px);border:1px solid var(--border-default);background:var(--surface-sunken);color:var(--text-tertiary);font-size:11.5px;font-weight:600;white-space:nowrap}@media (max-width: 760px){.se-fresh-btn-label{display:none}.se-fresh-btn{padding:0 9px}}.se-context-textarea{width:100%;min-height:120px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font:inherit;font-size:14px;line-height:1.45;resize:vertical}.se-context-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.se-context-counter{margin-top:4px;font-size:12px;color:var(--text-tertiary);text-align:right;font-variant-numeric:tabular-nums}.se-context-input{flex-direction:column;align-items:stretch;gap:8px}.se-context-input>.smart-ctl{align-self:flex-end}.se-context-stale-hint{display:flex;align-items:flex-start;gap:7px;margin:0 0 1rem;padding:8px 10px;border:1px solid var(--color-primary-border);border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);font-size:13px;line-height:1.4}.se-header .se-btn{height:var(--control-h-sm);padding:0 12px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.se-header .se-btn:disabled{opacity:.5;cursor:not-allowed}.se-header .btn-primary.se-btn{height:var(--control-h-sm);padding:0 12px;font-size:var(--text-sm)}.se-btn--warn{background:var(--surface-card);color:var(--status-warning);border:1px solid var(--status-warning)}.se-btn--warn:hover{background:var(--status-warning);color:#fff}.se-autosave{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);white-space:nowrap}.se-savestatus{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);font-weight:600;color:var(--status-success);white-space:nowrap}.se-savestatus--saving{color:var(--text-tertiary)}.se-savestatus--error{color:var(--status-danger)}.se-menu-wrap{position:relative;display:inline-flex}.se-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;max-height:320px;overflow-y:auto;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:6px;z-index:200}.se-menu-header{padding:6px 10px;font-size:var(--text-2xs, 10px);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-tertiary)}.se-menu-empty{padding:10px;font-size:var(--text-xs);color:var(--text-tertiary)}.se-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background var(--duration-fast)}.se-menu-item:hover:not(:disabled){background:var(--surface-hover)}.se-menu-item:disabled{opacity:.45;cursor:default}.se-menu-item--current{background:var(--color-primary-soft);color:var(--color-primary)}.se-menu-item--danger{color:var(--status-danger)}.se-menu-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.se-menu-item-hint{font-size:var(--text-2xs, 10px);color:var(--text-tertiary);white-space:nowrap}.se-autosave--saving{color:var(--text-secondary)}.se-autosave--saved{color:var(--status-success)}.se-autosave--error{color:var(--status-danger)}.se-error{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--muted)}.se-layout{display:flex;flex:1;overflow:hidden;min-height:0}.se-left{width:var(--panel-w-left);flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--surface-card)}.se-resizer{flex:none;display:flex;align-items:center;justify-content:center;background:var(--surface-sunken)}.se-resizer:after{content:"";border-radius:var(--radius-pill);background:var(--text-tertiary);opacity:.4;transition:opacity var(--duration-fast)}.se-resizer:hover:after,.se-resizer:active:after{opacity:1}.se-resizer--x{width:7px;cursor:col-resize;border-left:1px solid var(--border-default);border-right:1px solid var(--border-default)}.se-resizer--x:after{width:3px;height:32px}.se-resizer--y{height:7px;cursor:row-resize;border-top:1px solid var(--border-default);border-bottom:1px solid var(--border-default)}.se-resizer--y:after{width:32px;height:3px}.se-gallery{flex:1 1 0;min-height:0;width:100%;overflow:hidden;background:var(--surface-card)}.se-content{flex:1;overflow-y:auto;padding:20px 24px 110px;min-width:0}.se-content>*{max-width:var(--content-w-story);margin-left:auto;margin-right:auto}.se-content-inner{max-width:var(--content-w-story);margin:0 auto}.se-content--preview{max-width:100%;padding:0}.se-book-preview-host{height:calc(100vh - 200px);height:calc(100dvh - 200px);min-height:480px}.se-content--preview>*{max-width:800px}.sv-page--embedded{max-width:800px;margin:0 auto;padding:32px 24px}.sv-empty-preview{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--muted);font-size:15px}.se-events{width:var(--panel-w-right);flex-shrink:0;overflow-y:auto;background:var(--surface-card)}.se-meta{margin-bottom:20px}.se-title-input{font-size:var(--text-3xl);font-weight:700;border:none;border-radius:0;padding:6px 0;margin-bottom:4px;width:100%;background:transparent;color:var(--text-primary);line-height:var(--leading-tight)}.se-title-input:focus{outline:none}.se-title-input::placeholder{color:var(--text-tertiary)}.se-desc-input{border:none;background:transparent;resize:none;color:var(--text-secondary);width:100%;font-size:var(--text-md);line-height:var(--leading-normal);padding:4px 0}.se-desc-input:focus{outline:none}.se-desc-input::placeholder{color:var(--text-tertiary)}.se-blocks{display:flex;flex-direction:column;gap:6px}.se-block-anchor{min-width:0}.se-addbar-sticky{position:sticky;bottom:16px;display:flex;flex-direction:column;align-items:center;gap:8px;justify-content:center;pointer-events:none;padding:0 16px;margin-top:16px;z-index:50}.se-addbar--extended{border-color:var(--color-primary-border);background:var(--color-primary-soft)}.se-addbar-group-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary);padding:0 6px}.xb-edit-wrap{position:relative;margin:var(--space-3) 0}.xb-edit-wrap--selected{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:var(--radius-lg)}.xb-edit-wrap-controls{position:absolute;top:-12px;right:8px;z-index:2;display:flex;gap:2px;background:var(--surface-card);border:1px solid var(--color-primary-border);border-radius:var(--radius-pill);padding:2px 4px}.xb-drag-handle{cursor:grab;color:var(--text-tertiary);display:inline-flex;padding:2px}.se-addbar-sticky--drag .se-addbar{pointer-events:none;opacity:.35}.se-addbar{pointer-events:auto;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;padding:6px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-pill);box-shadow:var(--shadow-md)}.se-addbar-btn{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--duration-fast),color var(--duration-fast)}.se-addbar-sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px 0}.se-addbar-btn--sheet{height:44px;justify-content:flex-start;padding:0 12px;font-size:var(--text-sm);background:var(--surface-sunken);border-radius:var(--radius-md)}.se-addbar-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.se-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-soft);display:flex;align-items:center;justify-content:center;z-index:1000}.se-modal{background:var(--panel-solid);padding:28px;border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.se-modal h2{margin:0 0 8px;font-size:20px}.se-modal .form-group{margin-bottom:16px}.se-modal .form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--muted)}.se-modal .form-group input{width:100%;height:var(--control-h);padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:14px}.se-modal .form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.se-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}@keyframes se-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.se-skel{display:block;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--border) 25%,var(--bg) 50%,var(--border) 75%);background-size:200% 100%;animation:se-shimmer 1.5s ease-in-out infinite}.se-skel--back{width:100px;height:18px}.se-skel--btn{width:72px;height:30px}.se-skel--btn-primary{width:80px;height:30px;border-radius:var(--radius-md)}.se-skel--title{width:60%;height:28px;margin-bottom:10px}.se-skel--desc{width:40%;height:16px;margin-bottom:24px}.se-skel--block{width:100%;height:100px;margin-bottom:8px}.se-skel--block-short{width:100%;height:60px}.stp{flex:1 1 0;min-height:0;display:flex;flex-direction:column;background:var(--surface-card)}.stp-header{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;border-bottom:1px solid var(--border-default);flex:none}.stp-title{flex:1;font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.stp-body{flex:1;overflow-y:auto;padding:8px;display:grid;gap:2px;align-content:start}.stp-empty{padding:20px;text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.stp-row{display:flex;align-items:center;gap:6px;padding:5px 8px;min-width:0;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.stp-row:hover{background:var(--surface-hover)}.stp-row--selected{background:var(--color-primary-soft);border-color:var(--color-primary-border)}.stp-row--selected:hover{background:var(--color-primary-soft)}.stp-chapter--h1{padding-top:8px;padding-bottom:8px}.stp-chevron{width:18px;height:18px;flex:none;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:transform var(--duration-fast)}.stp-chevron--collapsed{transform:rotate(-90deg)}.stp-chevron--empty{visibility:hidden}.stp-chapter-input{flex:1;min-width:0;border:none;outline:none;background:transparent;padding:0;box-shadow:none;font-family:var(--font-sans);font-weight:700;font-size:13.5px;color:var(--text-primary)}.stp-chapter-input--h1{font-size:15px}.stp-chapter-input::placeholder{color:var(--text-tertiary)}.stp-chapter-label{flex:1;min-width:0;font-weight:700;font-size:13.5px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stp-count{font-size:11px;color:var(--text-tertiary);flex:none;white-space:nowrap}.stp-children{margin-left:16px;padding-left:8px;display:grid;gap:1px;border-left:1px solid var(--border-default)}.stp-leaf-icon{color:var(--text-tertiary);display:flex;flex:none}.stp-leaf-label{flex:1;min-width:0;font-size:12.5px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stp-row-actions{display:flex;gap:2px;flex:none;opacity:0;transition:opacity var(--duration-fast)}.stp-row:hover .stp-row-actions{opacity:1}.stp-action-btn{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.stp-action-btn:hover{background:var(--surface-sunken);color:var(--text-primary)}.stp-action-btn:disabled{opacity:.3;cursor:default}.stp-action-btn--danger{color:var(--status-danger)}.stp-thumbstack{display:inline-flex;align-items:center;flex:none}.stp-thumb{width:34px;height:26px;object-fit:cover;border-radius:4px;border:1.5px solid #fff;box-shadow:var(--shadow-xs)}.stp-thumb+.stp-thumb{margin-left:-7px}.stp-thumb-extra{margin-left:3px;font-size:10px;font-weight:600;color:var(--text-tertiary)}.sbi{position:relative;background:transparent;border:1px solid transparent;border-radius:var(--radius-lg);padding:10px 14px;transition:border-color var(--duration-fast),box-shadow var(--duration-fast),background var(--duration-fast)}.sbi:hover{border-color:var(--border-default)}.sbi--selected{background:var(--surface-card);border-color:var(--color-primary);box-shadow:var(--focus-ring)}.sbi--selected:hover{border-color:var(--color-primary)}.sbi-controls{position:absolute;top:-14px;right:10px;z-index:40;display:flex;align-items:center;gap:2px;padding:2px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;transition:opacity var(--duration-fast)}.sbi:hover .sbi-controls,.sbi:focus-within .sbi-controls,.sbi--selected .sbi-controls{opacity:1;pointer-events:auto}.sbi-type-badge{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;padding:0 6px;border-radius:0;background:transparent;color:var(--text-tertiary);text-transform:uppercase;white-space:nowrap}.sbi-prov-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:var(--radius-pill, 999px);white-space:nowrap;line-height:1.6}.sbi-prov-badge--auto{background:var(--surface-subtle, rgba(22, 119, 255, .08));color:var(--brand-primary, #1677ff)}.sbi-prov-badge--edited{background:#faad141f;color:#d48806}.sbi-prov-badge--locked{background:var(--surface-hover);color:var(--text-secondary)}.sbi-lock-btn--on{color:var(--brand-primary, #1677ff)}.sbi-actions{display:flex;gap:2px;opacity:1}.sbi-preset-select{height:24px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-secondary);font-size:var(--text-xs);padding:0 4px}.sbi-btn{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-xs);cursor:pointer;font-size:11px;color:var(--text-secondary);transition:background var(--duration-fast),color var(--duration-fast);padding:0}.sbi-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.sbi-btn:disabled{opacity:.3;cursor:default}.sbi-btn--danger{color:var(--status-danger)}.sbi-btn--danger:hover{background:#fdebec;color:var(--status-danger)}.sbi textarea,.sbi input[type=text]{background:transparent;border:none;box-shadow:none}.sbi-heading{border:none;font-weight:700;width:100%;background:transparent;color:var(--text-primary);padding:4px 0;line-height:var(--leading-tight)}.sbi-heading:focus{outline:none}.sbi-heading--h1{font-size:var(--text-3xl)}.sbi-heading--h2{font-size:var(--text-2xl)}.sbi-heading--h3{font-size:var(--text-xl)}.sbi-textarea{border:none;resize:vertical;min-height:80px;width:100%;background:transparent;color:var(--text-primary);font-size:var(--text-lg);line-height:var(--leading-loose);padding:4px 0}.sbi-textarea:focus{outline:none}.sbi-text-block,.sbi-heading-block{display:flex;flex-direction:column}.sbi-book-controls{margin-top:8px;display:grid;gap:6px}.sbi-book-select{height:30px;padding:0 8px;border:1px solid var(--border);border-radius:6px;background:var(--field-bg);color:var(--text);font-size:12px}.sbi-book-range{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:8px}.sbi-book-range span{font-size:11px;color:var(--muted)}.sbi-book-range strong{min-width:38px;text-align:right;font-size:11px;color:var(--text)}.sbi-book-align{display:inline-flex;gap:4px;align-items:center}.sbi-lang-toggle{display:flex;gap:2px;margin-bottom:6px}.sbi-lang-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:24px;border:1px solid var(--border);border-radius:4px;background:var(--field-bg);color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.5px;cursor:pointer;transition:all var(--transition-fast)}.sbi-lang-btn:hover{border-color:var(--accent);color:var(--accent)}.sbi-lang-btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.se-lang-toggle{display:flex;gap:1px;background:var(--surface-sunken);border-radius:6px;padding:2px}.se-lang-btn{display:inline-flex;align-items:center;justify-content:center;height:30px;min-width:36px;padding:0 8px;border:none;border-radius:5px;background:transparent;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.se-lang-btn:hover{background:var(--surface-hover);color:var(--text)}.se-lang-btn--active{background:var(--accent);color:#fff}.sbi-photo-zone{display:flex;flex-direction:column;border:2px dashed var(--border);border-radius:var(--radius-sm);padding:12px;transition:all var(--transition-normal);min-height:100px}.sbi-photo-zone--hover{border-color:var(--accent);background:var(--accent-light)}.sbi-photo-preview{position:relative;display:inline-block;max-width:320px}.sbi-photo-preview img{width:100%;height:auto;border-radius:6px;display:block}.sbi-photo-loading{width:200px;height:140px;border-radius:6px;background:var(--border);animation:sbi-pulse 1.5s ease-in-out infinite}@keyframes sbi-pulse{0%,to{opacity:.4}50%{opacity:.7}}.sbi-photo-x{position:absolute;top:6px;right:6px;width:24px;height:24px;background:#0009;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast)}.sbi-photo-preview:hover .sbi-photo-x,.sbi-thumb:hover .sbi-photo-x{opacity:1}.sbi-photo-x:hover{background:var(--danger)}.sbi-photo-x--sm{width:20px;height:20px;font-size:14px;top:3px;right:3px}.sbi-photo-empty{display:flex;align-items:center;justify-content:center;height:80px;color:var(--muted);font-size:13px}.sbi-caption{margin-top:8px;width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--field-bg);color:var(--text)}.sbi-caption:focus{outline:none;border-color:var(--accent)}.sbi-photos-zone{border:2px dashed var(--border);border-radius:var(--radius-sm);padding:12px;transition:all var(--transition-normal)}.sbi-photos-header{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.sbi-layout-select{height:32px;padding:0 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--field-bg);color:var(--text)}.sbi-photos-count{font-size:13px;color:var(--muted)}.sbi-collage-btn{margin-left:auto;padding:2px 10px;height:26px;border:1px solid var(--border);border-radius:6px;background:none;color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.sbi-collage-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.sbi-photos-grid{display:flex;flex-wrap:wrap;gap:6px}.sbi-thumb{position:relative;width:72px;height:72px;border-radius:6px;overflow:hidden;background:var(--border)}.sbi-thumb--square{width:auto;height:auto;aspect-ratio:1 / 1}.sbi-thumb--rect{width:auto;height:auto}.sbi-thumb img{width:100%;height:100%;object-fit:cover;display:block}.sbi-thumb--rect img{height:auto;object-fit:contain}.sbi-thumb-loading{width:100%;height:100%;animation:sbi-pulse 1.5s ease-in-out infinite;background:var(--border)}.sbi-thumb-drop{width:72px;height:72px;border:2px dashed var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;text-align:center}.sbi-columns-selector{display:flex;gap:2px}.sbi-col-btn{width:24px;height:24px;border:1px solid var(--border-default);border-radius:4px;background:var(--surface-card);color:var(--text-primary);font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.sbi-col-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.sbi-crop-mode-btn{width:24px;height:24px;border:1px solid var(--border-default);border-radius:4px;background:var(--surface-card);color:var(--text-primary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.sbi-crop-mode-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.sbi-split-btn{padding:2px 8px;height:24px;border:1px solid var(--border-default);border-radius:4px;background:none;color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .15s}.sbi-split-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.sbi-split-btn--active{border-color:var(--status-danger);color:var(--status-danger);background:#fdebec}.sbi-photos-grid--split-mode{display:flex!important;flex-wrap:wrap;align-items:stretch}.sbi-split-divider{display:flex;flex-direction:column;align-items:center;justify-content:center;width:28px;min-height:50px;background:none;border:none;cursor:pointer;padding:2px 0;flex-shrink:0;transition:all .15s}.sbi-split-divider-line{width:2px;flex:1;background:var(--status-danger);border-radius:1px;opacity:.5;transition:all .15s}.sbi-split-divider-icon{font-size:14px;color:var(--status-danger);line-height:1;margin:2px 0}.sbi-split-divider-label{font-size:9px;color:var(--text-secondary);white-space:nowrap}.sbi-split-divider:hover .sbi-split-divider-line{background:var(--color-primary);width:3px;opacity:1}.sbi-split-divider:hover .sbi-split-divider-icon{color:var(--color-primary);transform:scale(1.3)}.sbi-split-divider:hover .sbi-split-divider-label{color:var(--color-primary);font-weight:600}.sbi-photo-x--yellow{background:#e6be28d9!important;color:#fff!important}.sbi-photo-x--yellow:hover{background:#d4a017!important}.sbi-input-with-mic{display:flex;align-items:center;gap:4px;width:100%}.sbi-input-with-mic input,.sbi-input-with-mic textarea{flex:1;min-width:0}.sbi-input-with-mic--top{align-items:flex-start}.sbi-series-group{display:contents}.sbi-series-group--series{display:flex;flex-wrap:wrap;gap:4px;border:2px solid var(--blue-300);border-radius:var(--radius-xs);padding:4px;background:var(--blue-50);position:relative}.sbi-series-badge{position:absolute;top:-8px;right:6px;background:var(--blue-400);color:#fff;font-size:10px;padding:1px 6px;border-radius:8px;z-index:2}.sv-photos-item--square img{aspect-ratio:1 / 1;object-fit:cover}.egb{border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-light);overflow:hidden}.egb--selected{box-shadow:var(--focus-ring)}.egb-header{display:flex;align-items:flex-start;gap:8px;padding:10px 12px}.egb-toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;font-size:10px;color:var(--muted);border-radius:4px;transition:background var(--transition-fast);flex-shrink:0;margin-top:2px}.egb-toggle:hover{background:#0000000f}.egb-info{flex:1;min-width:0}.egb-title{margin-bottom:3px}.egb-title-input{width:100%;border:none;background:transparent;font-size:15px;font-weight:600;color:var(--text);padding:1px 0}.egb-title-input:focus{outline:none}.egb-title-input::placeholder{color:var(--placeholder)}.egb-badges{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.egb-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:9999px;font-size:11px;font-weight:500;background:#ffffffb3;color:var(--muted)}.egb-badge--loc{color:var(--accent)}.egb-badge--date{color:var(--color-info-text)}.egb-badge--count{background:var(--accent);color:#fff;font-size:10px;padding:1px 8px}.egb-actions{display:flex;gap:3px;flex-shrink:0;opacity:0;transition:opacity var(--transition-fast)}.egb:hover .egb-actions{opacity:1}.egb-content{padding:4px 12px 12px;display:flex;flex-direction:column;gap:6px}.egb-add-bar{display:flex;gap:4px;justify-content:center;padding:8px;border:1.5px dashed var(--border);border-radius:var(--radius-sm);transition:border-color var(--transition-normal)}.egb-add-bar:hover{border-color:var(--accent)}.egb-add-btn{height:30px;padding:0 10px;display:flex;align-items:center;justify-content:center;background:#fff9;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-weight:600;font-size:12px;color:var(--muted);white-space:nowrap;transition:all var(--transition-normal)}.egb-add-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.db-view{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--accent-light);border-radius:9999px;width:fit-content}.db-icon{font-size:16px}.db-text{font-size:14px;font-weight:500;color:var(--text)}.db-editor{display:flex;flex-direction:column;gap:8px}.db-row{display:flex;align-items:center;gap:8px}.db-controls{display:flex;gap:8px}.db-select{height:32px;padding:0 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--field-bg);color:var(--text)}.lb-view{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--color-error-bg);border-radius:9999px;width:fit-content}.lb-icon{font-size:16px}.lb-text{font-size:14px;font-weight:500;color:var(--text)}.lb-editor{display:flex;flex-direction:column;gap:8px}.lb-row{display:flex;align-items:center;gap:8px}.lb-input{flex:1;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--field-bg);color:var(--text)}.lb-input:focus{outline:none;border-color:var(--accent)}.lb-coords{font-size:12px;color:var(--muted);font-family:var(--font-mono)}.stp-row[data-dragover]{background:var(--color-primary-soft, rgba(22, 119, 255, .08));box-shadow:inset 0 0 0 1.5px var(--color-primary, #1677ff);border-radius:6px}.vb-wrap{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);background:#000}.vb-video{display:block;width:100%;max-height:520px;background:#000}.vb-empty{padding:24px;border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--muted);font-size:13px;text-align:center}.vb-caption{padding:8px 12px;background:var(--surface);color:var(--muted);font-size:13px}.vtp{background:var(--surface);border-top:1px solid var(--border)}.vtp-bar{display:flex;align-items:center;gap:6px;padding:6px 8px;flex-wrap:wrap}.vtp-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-secondary, var(--muted));font-size:12px;cursor:pointer}.vtp-btn:hover{border-color:var(--primary);color:var(--primary)}.vtp-btn--on{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--bg))}.vtp-btn--insert{margin-left:auto}.vtp-status{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:12px}.vtp-body{max-height:220px;overflow-y:auto;padding:4px 8px 8px}.vtp-hint{padding:8px;color:var(--muted);font-size:12px}.vtp-seg{display:flex;align-items:baseline;gap:8px;width:100%;padding:3px 6px;border:0;border-radius:var(--radius-xs);background:transparent;text-align:left;font-size:13px;color:var(--text);cursor:pointer}.vtp-seg:hover{background:color-mix(in srgb,var(--primary) 8%,transparent)}.vtp-seg-ts{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--primary);font-size:11px}.vtp-seg-text{flex:1}.mb-wrap{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);position:relative}.mb-pick-hint{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:500;padding:4px 12px;border-radius:var(--radius-pill);background:#101828bf;color:#fff;font-size:12px;font-weight:600;pointer-events:none;white-space:nowrap}.mb-controls{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel-solid);border-bottom:1px solid var(--border)}.mb-style-select{height:32px;padding:0 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--field-bg);color:var(--text)}.mb-zoom{display:flex;align-items:center;gap:6px}.mb-zoom-label{font-size:12px;color:var(--muted);white-space:nowrap}.mb-zoom input[type=range]{width:80px;height:4px}.mb-map{height:300px}.mb-map .leaflet-container{height:100%;width:100%;border-radius:0}.mb-map .leaflet-popup-content img{max-width:120px;border-radius:4px}.setp{padding:14px;display:flex;flex-direction:column;height:100%}.setp-header{margin-bottom:10px}.setp-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.setp-tree{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.setp-loading,.setp-empty{padding:20px;text-align:center;color:var(--muted);font-size:13px}.setp-node{margin-bottom:2px}.setp-node--used{opacity:.5}.setp-node-row{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;cursor:grab;transition:background var(--transition-fast)}.setp-node-row:hover{background:var(--field-hover)}.setp-node-row:active{cursor:grabbing}.setp-toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;font-size:10px;color:var(--muted);flex-shrink:0;border-radius:4px}.setp-toggle:hover{background:var(--border)}.setp-info{flex:1;min-width:0;overflow:hidden}.setp-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setp-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--muted);margin-top:2px}.setp-meta span{white-space:nowrap}.setp-check{font-size:14px;color:var(--accent-2);flex-shrink:0}.setp-add-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--field-bg);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:14px;color:var(--text);flex-shrink:0;transition:all var(--transition-fast)}.setp-add-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.setp-spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.setp-children{padding-left:16px;border-left:2px solid var(--border);margin-left:12px}.setp-chapters{padding:8px 12px 12px;border-bottom:1px solid var(--border);margin-bottom:8px}.setp-chapters-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px}.setp-chapter-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;font-size:12px;cursor:default}.setp-chapter-item:hover{background:var(--surface-sunken)}.setp-ch-num{font-weight:700;color:var(--accent);font-size:11px;flex-shrink:0}.setp-ch-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setp-ch-date,.setp-ch-photos{font-size:10px;color:var(--muted);flex-shrink:0}.setp-ch-photos:after{content:" 📷";font-size:9px}.setp-quick{border-top:1px solid var(--border);padding-top:12px;margin-top:12px}.setp-quick-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);display:block;margin-bottom:8px}.setp-quick-btns{display:flex;gap:6px}.setp-quick-btn{flex:1;height:36px;border:1px solid var(--border);border-radius:6px;background:var(--field-bg);color:var(--text);font-size:16px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.setp-quick-btn:hover{border-color:var(--accent);background:var(--accent-light)}.sv-page{max-width:800px;margin:0 auto;padding:48px 24px}.sv-article{color:var(--text)}.sv-header{text-align:center;margin-bottom:40px}.sv-title{font-size:36px;font-weight:700;margin:0 0 12px;line-height:1.2}.sv-lead{font-size:18px;color:var(--muted);margin:0 0 12px;line-height:1.5}.sv-date{font-size:14px;color:var(--muted)}.sv-body{display:flex;flex-direction:column}.sv-section{margin-bottom:20px;overflow:visible}.sv-section--h1 h1{font-size:28px;margin:24px 0 8px}.sv-section--h2 h2{font-size:22px;margin:20px 0 8px}.sv-section--h3 h3{font-size:18px;margin:16px 0 8px}.sv-section--text p,.sv-text{font-size:16px;line-height:1.8;margin:0}.sv-figure{margin:8px 0}.sv-figure img,.sv-photo{width:100%;height:auto;border-radius:var(--radius-sm);display:block}.sv-figure figcaption{text-align:center;color:var(--muted);font-size:13px;margin-top:8px}.sv-photo-placeholder{background:var(--border);padding:40px;text-align:center;border-radius:var(--radius-sm);color:var(--muted);min-height:120px}.sv-photos{display:grid;gap:8px}.sv-photos--grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.sv-photos--carousel{grid-template-columns:repeat(auto-fill,250px);overflow-x:auto}.sv-photos--masonry{display:block;columns:3;column-gap:8px}.sv-photos--masonry .sv-photos-item{break-inside:avoid;margin-bottom:8px}.sv-photos-item img{width:100%;height:auto;border-radius:var(--radius-sm);display:block}.sv-event-group{border-left:4px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-light);padding:24px;margin:24px 0}.sv-eg-header{margin-bottom:20px}.sv-eg-title{font-size:24px;font-weight:700;margin:0 0 10px}.sv-eg-meta{display:flex;flex-wrap:wrap;gap:8px}.sv-eg-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:9999px;font-size:13px;font-weight:500;background:var(--panel-solid)}.sv-eg-pill--loc{color:var(--accent)}.sv-eg-pill--date{color:var(--color-info-text)}.sv-eg-pill--count{background:var(--accent);color:#fff}.sv-eg-content .sv-section{margin-bottom:16px}.sv-error{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--muted)}.se-header .se-btn.btn,.se-header .se-btn.btn-primary,.se-header .se-btn{height:36px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap}@media (max-width: 1024px){.se-addbar-sticky{position:fixed;left:0;right:0;bottom:calc(var(--st-tabbar-clearance, 10px) + 6px);margin-top:0;z-index:60}.se-content{padding-bottom:calc(var(--st-tabbar-clearance, 10px) + 70px)!important}.sl-sidebar,.se-left,.se-gallery,.se-events,.se-resizer{display:none}.se-content{max-width:100%}}@media (max-width: 768px){.sl-toolbar{flex-direction:column;align-items:stretch;gap:8px}.sl-toolbar-row{flex-wrap:wrap}.sl-search-wrap{max-width:none;order:10}.sl-grid{grid-template-columns:1fr}.se-mode-seg{flex:none}.se-content{padding:16px}.sv-page{padding:24px 16px}.sv-title{font-size:28px}.sv-lead{font-size:16px}.sv-event-group{padding:16px}.sv-eg-title{font-size:20px}.drf-wrap{flex-wrap:wrap}}.loading{display:flex;align-items:center;justify-content:center;min-height:200px}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.alert{padding:10px 16px;border-radius:var(--radius-sm);font-size:14px}.alert-danger{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text)}.sbi-photo-preview{position:relative}.sbi-photo-actions{position:absolute;top:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity var(--transition-fast)}.sbi-photo-preview:hover .sbi-photo-actions{opacity:1}.sbi-crop-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;cursor:pointer;transition:all var(--transition-fast)}.sbi-crop-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.sbi-photo-actions .sbi-photo-x,.sbi-thumb-actions .sbi-photo-x{position:static;opacity:1}.sbi-thumb{position:relative}.sbi-thumb-actions{position:absolute;top:4px;right:4px;display:flex;gap:2px;opacity:0;transition:opacity var(--transition-fast)}.sbi-thumb:hover .sbi-thumb-actions{opacity:1}.sbi-crop-btn--sm{width:22px;height:22px;font-size:11px}.cropped-photo{border-radius:var(--radius-sm)}.cropped-photo img{pointer-events:none}.sl-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;animation:slFadeIn .25s ease both}@keyframes slFadeIn{0%{opacity:0}to{opacity:1}}.sl-close{position:absolute;top:16px;right:16px;z-index:10;background:#ffffff1f;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:background .2s}.sl-close:hover{background:#ffffff40}.sl-counter{position:absolute;top:20px;left:50%;transform:translate(-50%);font-size:13px;font-weight:500;color:#fff9;z-index:10;letter-spacing:.05em}.sl-lb-content{display:flex;align-items:center;gap:12px;width:100%;height:100%;padding:60px 16px 24px;box-sizing:border-box}.sl-nav{background:#ffffff1a;border:none;border-radius:50%;width:48px;height:48px;min-width:48px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:background .2s,opacity .2s,transform .15s;flex-shrink:0}.sl-nav:hover:not(:disabled){background:#ffffff38;transform:scale(1.08)}.sl-nav:disabled{opacity:.2;cursor:default}.sl-photo-wrap{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%}.sl-photo-container{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;width:100%;overflow:hidden;transition:transform .35s cubic-bezier(.22,1,.36,1);cursor:zoom-in}.sl-photo-container--zoomed{transform:scale(2);cursor:zoom-out}.sl-photo-container .sl-photo{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-sm, 8px);-webkit-user-select:none;user-select:none;animation:slPhotoIn .3s cubic-bezier(.22,1,.36,1) both}.sl-photo-container .cropped-photo{max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center}.sl-photo-container .cropped-photo img{border-radius:var(--radius-sm, 8px)}@keyframes slPhotoIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.sl-caption{color:#fffc;font-size:14px;text-align:center;margin:0;padding:0 24px;max-width:600px;line-height:1.5;flex-shrink:0}.sv-figure{cursor:pointer;position:relative;transition:transform .35s cubic-bezier(.22,1,.36,1)}.sv-figure:hover{transform:scale(2);z-index:20}.sv-photos{overflow:visible}.sv-photos-item{cursor:pointer;border-radius:var(--radius-sm, 8px);position:relative;transition:transform .35s cubic-bezier(.22,1,.36,1)}.sv-photos-item:hover{transform:scale(2);z-index:20}.se-sheet-structure{max-height:96dvh}.se-sheet-structure .se-structure-sheet{height:44dvh}.se-sheet-structure.se-sheet-structure--full .se-structure-sheet{height:calc(96dvh - 110px)}.se-structure-sheet-bar{display:flex;gap:6px;padding:2px 2px 10px}.se-structure-sheet-bar button{flex:1;height:34px;border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.se-structure-sheet-bar button.active{background:var(--color-primary-soft);border-color:var(--color-primary-border);color:var(--color-primary);font-weight:700}@media (orientation: landscape) and (max-width: 1024px){.st-sheet.se-sheet-structure{left:auto;right:0;top:0;bottom:0;width:min(420px,55vw);max-height:none;border-radius:16px 0 0 16px;animation:none;transform:none}.st-sheet.se-sheet-structure.se-sheet-structure--full{width:100vw;border-radius:0}.st-sheet.se-sheet-structure .st-sheet-body{flex:1;min-height:0;display:flex;flex-direction:column}.st-sheet.se-sheet-structure .se-structure-sheet,.st-sheet.se-sheet-structure.se-sheet-structure--full .se-structure-sheet{height:auto;flex:1;min-height:0}}.bv-reader-box{height:calc(100vh - 130px);min-height:480px}@media (max-width: 768px){.bv-reader-box{height:calc(100dvh - 120px - var(--st-tabbar-clearance, 78px));min-height:320px}}@media (max-width: 640px){.sl-nav{width:36px;height:36px;min-width:36px}.sl-lb-content{gap:6px;padding:56px 8px 16px}.sl-caption{font-size:13px;padding:0 12px}.sl-photo-container--zoomed{transform:scale(1.5)}}@media (max-width: 1600px){.se-header{flex-wrap:wrap;height:auto;min-height:var(--topbar-h);padding:8px 12px;row-gap:8px}.se-header-left{flex:1 1 0}.se-mode-seg{flex:none}.se-header-actions{order:3;flex:1 1 100%;flex-wrap:nowrap;justify-content:flex-end}}@media (max-width: 768px){.se-header{min-height:0;padding:6px 10px;gap:6px 8px}.se-header-left{flex:1 1 100%;order:1}.se-mode-seg{order:2;width:auto;justify-content:flex-start}.se-header-actions{order:3;flex:1 1 0;min-width:0;flex-wrap:nowrap;gap:4px}.se-header .se-header-sep{display:none}.se-header-actions .se-menu-wrap:has([data-testid="page.storyEditor.historyBtn"]){display:none}.se-savestatus-label{display:none}}.sbi-ai-marker{position:absolute;left:-3px;top:12px;bottom:12px;width:3px;background:var(--ai-accent);border-radius:2px;opacity:.7;pointer-events:none}.egb{position:relative}.egb .sbi-ai-marker{top:8px;bottom:8px}.sbi-accept-chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:none;border-radius:var(--radius-xs);background:var(--ai-accent-soft);color:var(--ai-accent);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap}.sbi-accept-chip:hover{filter:brightness(.96)}.aib{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--ai-accent-soft);border:1px solid color-mix(in srgb,var(--ai-accent) 25%,transparent);border-radius:var(--radius-lg);margin-bottom:14px}.aib-icon{color:var(--ai-accent);display:flex}.aib-body{flex:1;min-width:0}.aib-text{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.aib-track{height:4px;background:color-mix(in srgb,var(--ai-accent) 22%,transparent);border-radius:2px;margin-top:6px}.aib-fill{height:4px;background:var(--ai-accent);border-radius:2px;transition:width var(--duration-normal)}.sbi-typo-wrap{position:relative;display:inline-flex}.sbi-btn--on{background:var(--color-primary-soft);color:var(--color-primary)}.sbi-popover{position:absolute;top:100%;right:0;margin-top:6px;width:240px;z-index:50;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:12px}.sbi-typo{display:grid;gap:10px}.sbi-typo-chips{display:flex;gap:4px}.sbi-typo-chip{flex:1;height:30px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);font-size:12px}.sbi-typo-chip--active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.sbi-lang-toggle--toolbar{margin-bottom:0;align-items:center}.sbi-lang-toggle--toolbar .sbi-lang-btn{width:26px;height:20px;font-size:9px;border-radius:var(--radius-xs)}.sbi-te{width:100%;border:none;outline:none;resize:none;background:transparent;padding:2px 0;margin:0;overflow:hidden;box-shadow:none;color:var(--text-primary);display:block}.sbi-te--h1,.sbi-te--h2,.sbi-te--h3{font-weight:700;line-height:var(--leading-tight)}.sbi-te--text{line-height:var(--leading-loose)}.sbi-meta-row{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.sbi-meta-value{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);min-width:0}.sbi-meta-input{flex:1;min-width:0;border:none;outline:none;background:transparent;box-shadow:none;padding:0;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.sbi-meta-controls{display:flex;align-items:center;gap:8px;margin-top:8px}.sbi-meta-controls .lb-coords,.sbi-meta-controls.lb-coords{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:8px}.mb-map{border-radius:var(--radius-sm);border:1px solid var(--border-default);overflow:hidden}.sbi-tile{position:relative;border-radius:var(--radius-xs);overflow:hidden;background:var(--surface-sunken)}.sbi-tile img{width:100%;display:block;object-fit:cover}.sbi-tile-ph{position:relative;aspect-ratio:4 / 3;background:var(--surface-sunken);animation:sbi-pulse 1.5s ease-in-out infinite}.sbi-tile-ctls{position:absolute;top:6px;right:6px;display:flex;gap:4px;z-index:3;opacity:0;transition:opacity var(--duration-fast)}.sbi-tile:hover .sbi-tile-ctls{opacity:1}.cg-block{min-width:0}.cg-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.cg-count{display:inline-flex;align-items:center;gap:4px;margin-left:auto}.cg-count-label{font-size:var(--text-xs);color:var(--text-secondary);min-width:56px;text-align:center}.cg-frame{padding:12px;width:100%;margin:0 auto;background:var(--surface-card);border:1px solid var(--border-default);border-radius:4px;box-shadow:var(--shadow-page)}.cg-frame--sm{padding:6px}.cg-ph{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface-sunken);animation:sbi-pulse 1.5s ease-in-out infinite}.cg-cap-overlay{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 7px;background:var(--caption-scrim);color:#fff;font-size:11.5px;line-height:1.3;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:2}.cg-cap-overlay--sm{padding:14px 6px 4px;font-size:9px}.cg-ctl{width:20px;height:20px;border-radius:10px;border:none;cursor:pointer;padding:0;background:#ffffffeb;color:var(--gray-700);display:flex;align-items:center;justify-content:center;flex:none}.cg-ctl:hover{background:#fff}.cg-ctl--off,.cg-ctl--danger{color:var(--status-danger)}.cg-cell-ctls{position:absolute;top:4px;right:4px;display:flex;gap:3px;z-index:3}.cg-score{position:absolute;top:4px;left:4px;display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:var(--radius-pill);background:#ffffffeb;font-size:10px;font-weight:700;color:var(--gray-600);z-index:3}.cg-adjust{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;cursor:move;border:2px solid var(--color-primary);background:#1677ff12}.cg-adjust-bar{position:absolute;left:5px;right:5px;bottom:5px;display:flex;gap:6px;align-items:center;background:#fffffff2;border-radius:6px;padding:3px 7px;box-shadow:var(--shadow-sm)}.cg-adjust-bar input[type=range]{flex:1;min-width:0;height:4px;accent-color:var(--color-primary);margin:0}.cg-adjust-label{font-size:9.5px;font-weight:600;color:var(--text-secondary);flex:none}.cg-adjust-done{width:20px;height:20px;flex:none;border-radius:10px;border:none;cursor:pointer;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;padding:0}.cg-add-cell{border:1.5px dashed var(--border-strong);border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-tertiary);background:transparent;min-height:0;min-width:0;transition:border-color var(--duration-fast),background var(--duration-fast)}.cg-add-cell--over{border-color:var(--color-primary);background:var(--color-primary-soft)}.cg-add-hint{font-size:var(--text-sm)}.cg-polaroid-cap{position:absolute;left:4.5%;right:4.5%;bottom:0;height:13%;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-style:italic;font-size:11px;color:var(--gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cg-polaroid-cap--sm{font-size:7px}.cg-shared-cap{display:block;width:85%;margin:10px auto 0;text-align:center;border:none;outline:none;background:transparent;box-shadow:none;padding:0;font-family:var(--font-serif);font-style:italic;font-size:13.5px;color:var(--text-secondary)}.cg-shared-cap::placeholder{color:var(--text-tertiary);font-style:italic}.cg-shared-cap-view{text-align:center;font-family:var(--font-serif);font-style:italic;font-size:13px;color:var(--text-secondary);margin-top:8px}.cg-shared-cap-view--sm{font-size:9px;margin-top:4px}.cg-rail{position:fixed;z-index:80;overflow-y:auto;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:8px;display:grid;gap:8px;align-content:start}.cg-rail-item{display:block;width:100%;text-align:center;cursor:pointer;padding:5px;background:var(--surface-card);border-radius:var(--radius-sm);border:1px solid var(--border-default)}.cg-rail-item--active{border:2px solid var(--color-primary);box-shadow:var(--focus-ring)}.cg-rail-label{font-size:10.5px;font-weight:600;margin-top:4px;color:var(--text-secondary)}.cg-rail-item--active .cg-rail-label{color:var(--color-primary)}.egb-add-btn{display:inline-flex;align-items:center;gap:5px}.egb .sbi-ai-marker{left:0}.sbi .sbi-input-with-mic .voice-mic-btn{opacity:0;transition:opacity var(--duration-fast)}.sbi:hover .sbi-input-with-mic .voice-mic-btn,.sbi:focus-within .sbi-input-with-mic .voice-mic-btn,.sbi--selected .sbi-input-with-mic .voice-mic-btn,.sbi .sbi-input-with-mic .voice-mic-btn--active{opacity:1}.ch-page{display:flex;flex-direction:column;min-height:100%}.ch-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem 1.5rem 1rem;flex-wrap:wrap}.ch-title{font-size:var(--text-2xl);font-weight:700;margin:0;color:var(--text-primary)}.ch-subtitle{margin:.25rem 0 0;color:var(--text-secondary);font-size:var(--text-sm)}.ch-hero-actions{display:flex;gap:.5rem;flex-wrap:wrap}.ch-tabs{display:flex;gap:.25rem;padding:0 1.5rem;border-bottom:1px solid var(--border-subtle, var(--border))}.ch-tab{display:inline-flex;align-items:center;gap:6px;padding:.6rem .9rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast)}.ch-tab:hover{color:var(--text-primary)}.ch-tab--active{color:var(--brand-primary, #1677ff);border-bottom-color:var(--brand-primary, #1677ff)}.ch-content{flex:1;min-height:0}.ch-books{padding:1.25rem 1.5rem}.ch-book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.ch-book-card{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-md, 10px);background:var(--surface, #fff);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.ch-book-card:hover{border-color:var(--brand-primary, #1677ff);box-shadow:var(--shadow-sm)}.ch-book-icon{color:var(--brand-primary, #1677ff);display:flex}.ch-book-info{flex:1;min-width:0}.ch-book-title{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ch-book-meta{margin-top:2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ch-book-date{font-size:12px;color:var(--text-secondary, var(--muted))}.ch-book-status{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:var(--radius-pill, 999px);background:var(--surface-hover);color:var(--text-secondary)}.ch-book-status--published{background:#52c41a1f;color:#389e0d}.ch-book-status--ready{background:#1677ff1f;color:var(--brand-primary, #1677ff)}.ch-book-del{flex-shrink:0}.cwz-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal, 1000);padding:1rem}.cwz-modal{background:var(--surface, #fff);border-radius:var(--radius-lg, 14px);width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden}.cwz-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-subtle, var(--border))}.cwz-title{margin:0;font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.cwz-close{background:transparent;border:none;cursor:pointer;color:var(--text-secondary);padding:4px;border-radius:var(--radius-xs);display:flex}.cwz-close:hover{background:var(--surface-hover);color:var(--text-primary)}.cwz-steps{display:flex;gap:.5rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-subtle, var(--border))}.cwz-step{display:inline-flex;align-items:center;gap:6px;color:var(--text-tertiary);font-size:var(--text-xs)}.cwz-step-num{width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-hover);color:var(--text-secondary);font-size:11px;font-weight:600}.cwz-step--active{color:var(--text-primary)}.cwz-step--active .cwz-step-num{background:var(--brand-primary, #1677ff);color:#fff}.cwz-step--done .cwz-step-num{background:#52c41a2e;color:#389e0d}.cwz-body{padding:1.25rem;overflow-y:auto;flex:1;min-height:0}.cwz-step-pane{display:flex;flex-direction:column;gap:1rem}.cwz-kinds{display:flex;gap:.75rem;margin-bottom:1.25rem}.cwz-kind{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:.85rem;border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-md, 10px);background:var(--surface, #fff);cursor:pointer;color:var(--text-secondary);text-align:left;transition:border-color var(--duration-fast),background var(--duration-fast)}.cwz-kind:hover{border-color:var(--brand-primary, #1677ff)}.cwz-kind--active{border-color:var(--brand-primary, #1677ff);background:var(--surface-subtle, rgba(22, 119, 255, .06));color:var(--text-primary)}.cwz-kind-name{font-weight:600;font-size:var(--text-sm);color:var(--text-primary)}.cwz-kind-desc{font-size:var(--text-xs);color:var(--text-secondary)}.cwz-source-label,.cwz-field-label,.pp-label{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.cwz-event-tree{max-height:320px;overflow-y:auto;border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-sm, 8px)}.cwz-story-list{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow-y:auto}.cwz-story-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .65rem;border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-sm, 8px);background:var(--surface, #fff);cursor:pointer;text-align:left;color:var(--text-primary)}.cwz-story-item:hover{border-color:var(--brand-primary, #1677ff)}.cwz-story-item--checked{border-color:var(--brand-primary, #1677ff);background:var(--surface-subtle, rgba(22, 119, 255, .06))}.cwz-story-check{width:20px;height:20px;flex-shrink:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--border);font-size:11px;font-weight:700;color:var(--brand-primary, #1677ff)}.cwz-story-item--checked .cwz-story-check{border-color:var(--brand-primary, #1677ff)}.cwz-story-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm)}.cwz-note,.pp-note{margin-top:.6rem;font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.4}.cwz-empty{padding:2rem;text-align:center;color:var(--text-tertiary)}.cwz-field{display:flex;flex-direction:column}.cwz-input{padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);font-size:var(--text-sm);color:var(--text-primary);background:var(--surface, #fff)}.cwz-input:focus{outline:none;border-color:var(--brand-primary, #1677ff)}.cwz-sizes{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.cwz-size{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:.6rem .75rem;border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-sm, 8px);background:var(--surface, #fff);cursor:pointer;text-align:left;transition:border-color var(--duration-fast),background var(--duration-fast)}.cwz-size:hover{border-color:var(--brand-primary, #1677ff)}.cwz-size--active{border-color:var(--brand-primary, #1677ff);background:var(--surface-subtle, rgba(22, 119, 255, .06))}.cwz-size-key{font-weight:700;font-size:var(--text-base);color:var(--text-primary)}.cwz-size-desc{font-size:var(--text-xs);color:var(--text-secondary)}.cwz-error{margin:0 1.25rem}.cwz-footer{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.25rem;border-top:1px solid var(--border-subtle, var(--border))}.pp-picker{display:flex;flex-direction:column}.pp-loading{padding:1rem;display:flex;justify-content:center}.pp-options{display:flex;flex-direction:column;gap:6px}.pp-option{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-sm, 8px);background:var(--surface, #fff);cursor:pointer;text-align:left;color:var(--text-primary);transition:border-color var(--duration-fast),background var(--duration-fast)}.pp-option:hover{border-color:var(--brand-primary, #1677ff)}.pp-option--selected{border-color:var(--brand-primary, #1677ff);background:var(--surface-subtle, rgba(22, 119, 255, .06))}.pp-option-name{font-weight:600;font-size:var(--text-sm)}.pp-option-desc{font-size:var(--text-xs);color:var(--text-secondary);margin-left:auto;margin-right:.5rem}.pp-option .pp-option-desc{margin-right:0}.pp-option--selected>svg{color:var(--brand-primary, #1677ff);margin-left:auto}.efp-panel{display:flex;flex-direction:column;height:100%;background:var(--panel-solid);border-right:1px solid var(--border)}.efp-search-wrap{position:relative;padding:8px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.efp-search-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.efp-search{width:100%;height:32px;padding:0 28px 0 30px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:12px;outline:none;transition:border-color var(--transition-fast)}.efp-search:focus{border-color:var(--accent)}.efp-search::placeholder{color:var(--muted)}.efp-search-clear{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:2px}.efp-search-clear:hover{color:var(--text)}.efp-source-pills{display:flex;gap:4px;padding:8px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.efp-pill{flex:1;height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--muted);font-size:11px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.efp-pill:hover{border-color:var(--accent);color:var(--text)}.efp-pill--active{background:var(--accent);border-color:var(--accent);color:#fff}.efp-tree{flex:1;overflow-y:auto;padding:6px}.efp-loading,.efp-empty{padding:16px;text-align:center;color:var(--muted);font-size:13px}.efp-node{margin-bottom:2px}.efp-node--l0{border-left:3px solid var(--accent);border-radius:var(--radius-sm)}.efp-node--l1{border-left:3px solid var(--accent-2);border-radius:var(--radius-sm);margin-left:8px}.efp-node--l2{border-left:3px solid var(--warning);border-radius:var(--radius-sm);margin-left:16px}.efp-node--l3{border-left:3px solid var(--muted);border-radius:var(--radius-sm);margin-left:24px}.efp-node-row{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);font-size:13px}.efp-node-row:hover{background:var(--row-hover)}.efp-node--sel>.efp-node-row{background:var(--accent-light)}.efp-node-toggle{background:none;border:none;cursor:pointer;padding:0 2px;font-size:9px;color:var(--muted);flex-shrink:0;width:16px;text-align:center}.efp-node-toggle:hover{color:var(--text)}.efp-node-info{flex:1;min-width:0}.efp-node-title{font-weight:600;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.efp-node-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.efp-node-loc,.efp-node-date,.efp-node-photos{font-size:11px;color:var(--muted)}.efp-node-children{margin-left:12px;padding-left:6px;border-left:1px solid var(--border)}.efp-count-badge{flex-shrink:0;font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-light);padding:1px 6px;border-radius:9999px;min-width:18px;text-align:center}.efp-check{flex-shrink:0;color:var(--accent-2);font-size:14px}.efp-add-btn{flex-shrink:0;width:22px;height:22px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--accent);font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.efp-add-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.efp-special-row{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);font-size:13px;margin-bottom:4px}.efp-special-row:hover{background:var(--row-hover)}.efp-special-row--sel{background:var(--accent-light)}.efp-special-row .efp-node-title--muted{color:var(--muted);font-style:italic}.efp-divider{margin-top:8px;border-top:1px solid var(--border);padding-top:10px}.eps{display:flex;align-items:center;gap:8px;padding:10px 12px 4px;flex-wrap:wrap}.eps-thumb{position:relative;flex:none;width:64px;height:64px;border-radius:var(--radius-md, 8px);overflow:hidden;background:var(--gray-100, #f1f1f1);border:1px solid var(--border-default, #e5e5e5);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,z-index 0s;transform-origin:center}.eps-thumb img,.eps-thumb .cropped-photo{width:100%;height:100%;object-fit:cover;display:block}.eps-thumb:hover{transform:scale(1.85);z-index:5;box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .25));border-color:var(--color-primary, #1677ff)}.eps-thumb-ph{width:100%;height:100%;background:var(--gray-100, #f1f1f1)}.eps-more{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:64px;height:64px;padding:0 8px;border-radius:var(--radius-md, 8px);background:var(--gray-100, #f1f1f1);color:var(--text-secondary, #555);font-size:var(--text-sm, 13px);font-weight:600}.cwm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh;z-index:999;background:#0a0c10f5;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;flex-direction:column;animation:cwmFadeIn .2s ease-out}@keyframes cwmFadeIn{0%{opacity:0}to{opacity:1}}.cwm-empty{margin:auto;text-align:center;color:#ffffff80;font-size:15px}.cwm-btn--close{margin-top:16px;padding:8px 24px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:none;color:#ffffffb3;cursor:pointer;font-size:14px}.cwm-btn--close:hover{background:#ffffff14;color:#fff}.cwm-header{display:flex;align-items:center;gap:16px;padding:12px 24px;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.06)}.cwm-title{margin:0;font-size:15px;font-weight:600;color:#ffffffd9;white-space:nowrap;letter-spacing:-.01em}.cwm-formats{display:flex;gap:2px;background:#ffffff0f;border-radius:8px;padding:2px}.cwm-fmt-btn{width:32px;height:28px;border:none;border-radius:6px;background:none;font-size:16px;cursor:pointer;color:#fff6;transition:all .15s;display:flex;align-items:center;justify-content:center}.cwm-fmt-btn:hover{color:#ffffffb3}.cwm-fmt-btn--active{background:#ffffff1f;color:#fff}.cwm-stats{font-size:13px;color:#fff6;white-space:nowrap;flex:1}.cwm-create-btn{padding:0 20px;height:34px;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.cwm-create-btn:hover{background:#06d}.cwm-close{width:34px;height:34px;border:none;background:#ffffff0f;font-size:18px;line-height:1;cursor:pointer;color:#ffffff80;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.cwm-close:hover{background:#ffffff1f;color:#fff}.cwm-grid{display:flex;flex-wrap:wrap;align-content:flex-start;gap:20px;padding:24px;overflow-y:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.cwm-grid::-webkit-scrollbar{width:6px}.cwm-grid::-webkit-scrollbar-track{background:transparent}.cwm-grid::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}@keyframes cwmCardIn{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.cwm-card{position:relative;width:calc(33.333% - 14px);border:2px solid rgba(255,255,255,.06);border-radius:12px;background:#ffffff05;overflow:hidden;animation:cwmCardIn .35s ease-out backwards;animation-delay:calc(var(--i) * .05s);transition:border-color .2s,box-shadow .25s}.cwm-card:hover{border-color:#ffffff1f;box-shadow:0 12px 40px #0000004d}.cwm-card-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.04)}.cwm-card-num{font-size:12px;font-weight:700;color:#ffffff4d;width:24px;height:24px;border-radius:6px;background:#ffffff0f;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cwm-card-name{font-size:12px;font-weight:500;color:#ffffff80;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cwm-card-remove{width:24px;height:24px;border:none;background:none;color:#ffffff40;font-size:16px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.cwm-card-remove:hover{background:#ff505026;color:#ff6464cc}.cwm-card-preview{padding:8px}.cwm-card-preview .tpm-svg{width:100%;height:auto;display:block}.cwm-card-footer{display:flex;align-items:center;gap:8px;padding:6px 12px 8px;border-top:1px solid rgba(255,255,255,.04)}.cwm-card-template{font-size:11px;color:#ffffff59;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cwm-card-change{padding:2px 10px;height:24px;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:none;color:#ffffff80;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s;flex-shrink:0}.cwm-card-change:hover{border-color:#ffffff4d;color:#ffffffd9;background:#ffffff0f}.cwm-card--add{display:flex;align-items:center;justify-content:center;cursor:pointer;border-style:dashed;border-color:#ffffff1a;background:none;min-height:180px;transition:border-color .2s,background .2s}.cwm-card--add:hover{border-color:#ffffff40;background:#ffffff0a}.cwm-card-add-content{display:flex;flex-direction:column;align-items:center;gap:8px;color:#ffffff4d;font-size:13px;font-weight:500;transition:color .2s}.cwm-card--add:hover .cwm-card-add-content{color:#fff9}@media (max-width: 1000px){.cwm-card{width:calc(50% - 10px)}}@media (max-width: 600px){.cwm-header{flex-wrap:wrap;padding:10px 16px;gap:10px}.cwm-stats{width:100%;order:5}.cwm-card{width:100%}.cwm-grid{gap:14px;padding:16px}}.bkl-root .spread{display:flex;gap:0;margin:0 auto 26px;box-shadow:0 8px 30px #00000029;width:max-content;background:#fff;position:relative}.bkl-root .spread .gutter{width:0;border-left:1px dashed rgba(0,0,0,.12)}.bkl-root .spread.single{box-shadow:0 8px 30px #00000029}.bkl-root .page{position:relative;background:#fff;overflow:hidden;flex:0 0 auto}.bkl-root .page .content{position:absolute}.bkl-root .prow{position:absolute;left:0;right:0}.bkl-root .cell{position:absolute;overflow:hidden}.bkl-root .cell .media{position:absolute}.bkl-root .cell img{width:100%;height:100%;display:block}.bkl-root .cap{position:absolute;left:0;right:0;bottom:0;font-size:11px;line-height:1.3;padding:5px 7px;color:#fff;background:linear-gradient(to top,#0000009e,#0000)}.bkl-root .cap.under{position:static;color:#444;background:none;padding:4px 2px 0}.bkl-root .cell.under-wrap{display:flex;flex-direction:column}.bkl-root .ov{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;padding:12px;color:#fff;background:linear-gradient(to top,#0000008c,#0000000d 55%)}.bkl-root .ov .t{font-size:15px;font-weight:600;text-shadow:0 1px 6px rgba(0,0,0,.5)}.bkl-root .tblock{position:absolute;padding:2px}.bkl-root .tblock.heading1{font-weight:700}.bkl-root .tblock.heading2{font-weight:600;color:#333}.bkl-root .tblock .body{width:100%}.bkl-root .mapblock{position:absolute;background:#dce7f0 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40"><path d="M0 20h40M20 0v40" stroke="%23b9cdde" stroke-width="1"/></svg>');display:flex;align-items:center;justify-content:center;color:#5a7891;font-size:12px;border-radius:4px}.bkl-root .wrapblock{position:absolute}.bkl-root .wrapblock img{border-radius:2px}.bkl-root .sub-tag{position:absolute;bottom:4px;right:4px;z-index:7;font-size:8px;letter-spacing:.04em;color:#fff;background:#0000006b;border-radius:3px;padding:1px 4px;pointer-events:none}.bkl-root .facebox{position:absolute;border:1.5px solid rgba(255,64,64,.95);box-shadow:0 0 0 1px #00000059;border-radius:2px;pointer-events:none;z-index:6}.bkl-root .safebox{position:absolute;border:1.5px dashed rgba(38,220,120,.95);border-radius:3px;pointer-events:none;z-index:6}.bkl-root .gridoverlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-size:100% 12.5%;background-image:repeating-linear-gradient(to bottom,rgba(22,119,255,.1) 0 1px,transparent 1px 100%)}.bkl-root .baselineoverlay{position:absolute;pointer-events:none;z-index:4;background-image:repeating-linear-gradient(to bottom,rgba(224,49,49,.16) 0 1px,transparent 1px 100%)}.bkl-root .tblock.dropcap:first-letter{float:left;font-family:var(--dcf, inherit);font-weight:700;font-size:calc(var(--dc,3.8) * 1em);line-height:.72;padding:.02em .09em 0 0;color:#1b1b1b}.bkl-root .pagenum{position:absolute;bottom:4px;font-size:9px;color:#bbb}.bkl-root .pgscore{position:absolute;top:4px;right:6px;z-index:8;font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:8px;color:#fff;opacity:.92;pointer-events:auto;cursor:help}.bkl-root .cover-wrap{position:relative;margin:0 auto;overflow:hidden;box-shadow:0 8px 30px #0000002e}.bkl-root .cover-panel{position:absolute;top:0;bottom:0;overflow:hidden}.bkl-root .cover-panel img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.bkl-root .cover-scrim{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.bkl-root .cover-scrim.bottom{background:linear-gradient(to top,rgba(0,0,0,.68),rgba(0,0,0,.25) 32%,transparent 55%)}.bkl-root .cover-scrim.top{background:linear-gradient(to bottom,rgba(0,0,0,.66),rgba(0,0,0,.24) 32%,transparent 55%)}.bkl-root .cover-scrim.center{background:linear-gradient(transparent 18%,rgba(0,0,0,.55) 42%,rgba(0,0,0,.55) 58%,transparent 82%)}.bkl-root .cover-titles{position:absolute;color:#fff;z-index:3}.bkl-root .cover-titles.center{top:50%;transform:translateY(-50%);text-align:center}.bkl-root .cover-title{font-weight:700;line-height:1.08;letter-spacing:-.01em;text-shadow:0 1px 10px rgba(0,0,0,.35)}.bkl-root .cover-subtitle{margin-top:.45em;font-weight:600;letter-spacing:.14em;text-transform:uppercase;opacity:.88}.bkl-root .cover-author{margin-top:.9em;font-weight:400;letter-spacing:.06em;opacity:.8}.bkl-root .cover-spine-text{position:absolute;left:0;right:0;writing-mode:vertical-rl;text-orientation:mixed;display:flex;align-items:center;justify-content:center;font-weight:600;letter-spacing:.08em;white-space:nowrap;overflow:hidden}.bkl-root .cover-blurb{position:absolute;overflow:hidden}.bkl-root .cover-rule{width:34%;height:3px;margin-bottom:1.2em;opacity:.85}.bkl-root .cover-blurb-text{line-height:1.55;opacity:.92}.bkl-root .cover-zone{position:absolute;overflow:hidden}.bkl-root .cover-zone img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.bkl-root .cover-plate{position:absolute;overflow:hidden}.bkl-root .cover-plate .cover-rule{position:relative;width:26%}.bkl-root .cover-titles.plate{text-align:left}.bkl-root .cover-frame{position:absolute;overflow:hidden;border:1px solid rgba(0,0,0,.25);background:#fff}.bkl-root .cover-frame img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.bkl-root .cover-titles.editorial{text-align:center;text-shadow:none}.bkl-root .cover-titles.editorial .cover-title,.bkl-root .cover-titles.typographic{text-shadow:none}.bkl-root .cover-titles.typographic .cover-title{text-shadow:none;line-height:1.04}.bkl-root .cover-rule{height:4px}.bkl-root .cover-titles.typographic+.cover-rule,.bkl-root .cover-front>.cover-rule{width:18%;height:4px}.bkl-root .cover-mosaic{position:absolute}.bkl-root .cover-mcell{position:absolute;overflow:hidden}.bkl-root .cover-mcell img{position:absolute;top:0;right:0;bottom:0;left:0;width:calc(100% - 2px);height:calc(100% - 2px);margin:1px;object-fit:cover;display:block}.bkl-root .cover-guide{position:absolute;pointer-events:none;z-index:6}.bkl-root .cover-guide.trim{border:1px dashed rgba(233,64,64,.65)}.bkl-root .cover-guide.safe{border:1px dashed rgba(64,158,233,.55)}.bkl-root .cover-guide.fold{width:0;border-left:1px dashed rgba(255,255,255,.45);mix-blend-mode:difference}.bbv2-root{height:100%;display:flex;flex-direction:column;overflow:hidden}.bbv2-toolbar{flex:none;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;padding:12px 16px 8px}.bbv2-score{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono)}.bbv2-pro{flex:none;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:center;padding:4px 16px 12px;border-top:1px solid var(--border-subtle, #eee);background:var(--surface-subtle, #fafafa)}.bbv2-pro-grp{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.bbv2-pro-grp>label{font-size:var(--text-xs);color:var(--text-tertiary);margin-right:2px}.bbv2-pro-checks{gap:12px}.bbv2-area{flex:1;min-height:0;overflow-y:auto;background:#f3efe9;border-top:1px solid var(--border-default)}.bbv2-scalebox{overflow:hidden}.bbv2-stage{display:flex;flex-direction:column;align-items:center;gap:18px;padding:18px 12px 28px}.bbv2-clickable{cursor:pointer}.bbv2-cellbar{position:absolute;top:4px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:2px 3px;border-radius:7px;background:#141418d1;box-shadow:0 2px 8px #00000059;z-index:9;opacity:0;pointer-events:none;transition:opacity .12s;max-width:calc(100% - 8px);flex-wrap:wrap;justify-content:center}.bkl-root .cell:hover .bbv2-cellbar{opacity:1;pointer-events:auto}.bbv2-cellbar button{min-width:20px;height:20px;padding:0 4px;border:none;border-radius:5px;background:transparent;color:#fff;font-size:12px;line-height:1;cursor:pointer}.bbv2-cellbar button:hover{background:#ffffff2e}.bbv2-cellbar button.on{background:var(--color-primary, #1677ff);color:#fff}.bbv2-cellbar-sep{width:1px;height:14px;margin:0 2px;background:#ffffff40}.bbv2-cellbar-crop{font-size:11px}.bbv2-cover-bar2{padding-top:0}.bbv2-cover-alts{display:inline-flex;gap:4px;align-items:center}.bbv2-cover-alts button{display:flex;flex-direction:column;align-items:center;gap:1px;padding:2px;border:1px solid var(--border-default, #ddd);border-radius:6px;background:var(--surface-default, #fff);cursor:pointer}.bbv2-cover-alts button.on{border-color:var(--color-primary, #1677ff);box-shadow:0 0 0 1px var(--color-primary, #1677ff)}.bbv2-cover-alts button img{width:30px;height:30px;object-fit:cover;border-radius:4px;background:#eee;display:block}.bbv2-cover-alt-typo{width:30px;height:30px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.bbv2-cover-alts button i{font-style:normal;font-size:9px;line-height:1;color:var(--text-tertiary, #999)}.bbv2-cover-swatches{display:inline-flex;gap:4px;align-items:center}.bbv2-cover-swatches i{width:16px;height:16px;border-radius:4px;border:1px solid rgba(0,0,0,.15);display:inline-block}.bbv2-cover-empty{padding:40px;text-align:center;color:var(--text-tertiary, #999)}.bb-root{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--surface-page)}.main-content:has(>.bb-root){height:100%;min-height:0;overflow:hidden;padding-bottom:0!important}.main-body-content:has(.bb-root) .app-footer,.main-body-content:has(.bb-root) .portal-footer{display:none}.bb-col-preview{min-width:360px}@media (max-width: 1180px){.bb-col-src{width:232px}.bb-col-right{width:272px}}@media (max-width: 980px){.bb-col-right{width:248px}.bb-tpl-gallery{grid-template-columns:1fr}}.bb-toolbar{flex:none;height:50px;display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--surface-card);border-bottom:1px solid var(--border-default)}.bb-toolbar-title{font-weight:700;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bb-back{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.bb-back:hover{border-color:var(--border-strong)}.bb-savestate{font-size:12.5px;font-weight:600}.bb-savestate--saved{color:var(--status-success)}.bb-savestate--saving{color:var(--text-tertiary)}.bb-savestate--dirty{color:var(--status-warning)}.bb-body{flex:1;min-height:0;display:flex}.bb-col{display:flex;min-height:0}.bb-col-src{width:280px;flex:none;position:relative;border-right:1px solid var(--border-default);background:var(--surface-card)}.bb-col-preview{flex:1;min-width:0;min-height:0;overflow:hidden;background:var(--surface-sunken)}.bb-col-right{width:320px;flex:none;flex-direction:column;border-left:1px solid var(--border-default);background:var(--surface-card);overflow-y:auto}.bb-col-rail{width:40px;flex:none;border-right:1px solid var(--border-default);background:var(--surface-card);display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:12px;cursor:pointer;border-top:none;border-bottom:none;border-left:none;color:var(--text-tertiary)}.bb-collapse{position:absolute;top:10px;right:8px;width:24px;height:24px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:6px}.bb-collapse:hover{background:var(--surface-sunken)}.bb-dock{display:flex;flex-direction:column;min-height:0;width:100%}.bb-col-src .bb-dock{height:100%}.bb-dock-head{flex:none;display:flex;align-items:center;gap:8px;padding:13px 14px 10px;font-size:14px;font-weight:700;color:var(--text-primary);border-bottom:1px solid var(--border-default)}.bb-dock-search{flex:none;display:flex;align-items:center;gap:7px;margin:10px 12px;padding:0 10px;height:32px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card)}.bb-dock-search input{flex:1;border:none;outline:none;background:transparent;font:inherit;font-size:13px}.bb-dock-body{flex:1;min-height:0;overflow-y:auto;padding:6px 12px 16px}.bb-muted{color:var(--text-tertiary);font-size:13px;padding:14px 4px;text-align:center}.bb-src-row{display:flex;align-items:center;gap:8px;padding:8px;border-radius:var(--radius-sm)}.bb-src-row:hover{background:var(--surface-hover)}.bb-src-info{flex:1;min-width:0}.bb-src-title{font-size:13.5px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bb-src-sub{font-size:11.5px;color:var(--text-tertiary)}.bb-add-btn{flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--color-primary-border);background:var(--color-primary-soft);color:var(--color-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.bb-add-btn:disabled{border-color:var(--border-default);background:var(--surface-sunken);color:var(--status-success);cursor:default}.bb-book-title{flex:none;padding:10px 12px;border-bottom:1px solid var(--border-default)}.bb-book-title input{width:100%;height:34px;padding:0 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font:inherit;font-size:14px;font-weight:600;outline:none}.bb-chapter{display:flex;align-items:center;gap:6px;padding:8px;border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:8px;background:var(--surface-card)}.bb-chapter:hover{border-color:var(--border-strong)}.bb-grip{color:var(--text-tertiary);cursor:grab;flex:none}.bb-chapter-main{flex:1;min-width:0}.bb-chapter-title{font-size:13px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bb-tpl-select{margin-top:5px;width:100%;height:28px;border:1px solid var(--border-default);border-radius:var(--radius-xs);font:inherit;font-size:12px;background:var(--surface-card);padding:0 6px}.bb-x{flex:none;width:24px;height:24px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:6px}.bb-x:hover{background:var(--surface-sunken);color:var(--status-danger)}.bb-section-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin:14px 2px 8px}.bb-tpl-gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bb-tpl-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;height:auto;gap:6px;padding:8px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);cursor:pointer;text-align:left}.bb-tpl-card:hover{border-color:var(--border-strong)}.bb-tpl-card.active{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.bb-tpl-name{font-size:12px;font-weight:600;color:var(--text-primary)}.bb-sch{display:flex;flex-direction:column;gap:2px;height:44px;padding:3px;background:var(--surface-sunken);border-radius:var(--radius-xs)}.bb-sch-t{height:4px;width:60%;background:var(--text-tertiary);border-radius:2px}.bb-sch-p{height:3px;width:100%;background:var(--border-strong);border-radius:2px}.bb-sch-P{flex:1;background:var(--color-primary-soft);border:1px solid var(--color-primary-border);border-radius:2px}.bb-sch-m{height:8px;width:40%;background:var(--color-primary-soft);border:1px solid var(--color-primary-border);opacity:.85;border-radius:2px}.bb-sch-g{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:2px}.bb-sch-g span{background:var(--color-primary-soft);border-radius:1px}.bb-chip-row{display:flex;flex-wrap:wrap;gap:6px}.bb-chip{height:30px;padding:0 12px;border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.bb-chip:hover{border-color:var(--border-strong)}.bb-chip.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.bb-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer}.bb-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary);text-align:center}.bb-picker{padding:24px;max-width:980px}.bb-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.bb-picker-head h1{font-size:22px;font-weight:800;color:var(--text-primary);margin:0}.bb-primary{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 16px;border-radius:var(--radius-md);border:none;background:var(--color-primary);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}.bb-primary:disabled{opacity:.6;cursor:default}.bb-picker-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.bb-picker-card{display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:var(--radius-lg);background:var(--surface-card);border:1px solid var(--border-default);box-shadow:var(--shadow-xs);text-decoration:none}.bb-picker-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.bb-picker-title{font-size:15px;font-weight:700;color:var(--text-primary)}.bb-picker-sub{font-size:12px;color:var(--text-tertiary)}.lib-icon-btn{transition:background .12s,color .12s,border-color .12s}.lib-chapter-row:hover .lib-icon-btn{color:var(--text-secondary)!important}.lib-icon-btn:hover{background:var(--surface-sunken)!important;color:var(--status-danger)!important;border-color:var(--border-default)!important}.bb-mobile-tabs{flex:none;display:flex;gap:6px;padding:8px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--surface-card);border-bottom:1px solid var(--border-default)}.bb-mobile-tabs::-webkit-scrollbar{display:none}.bb-mtab{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;flex:none;border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);font-family:var(--font-sans);font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.bb-mtab.active{background:var(--color-primary-soft);border-color:var(--color-primary-border);color:var(--color-primary);font-weight:700}.bb-body--mobile{display:flex}.bb-mpane{flex:1;min-width:0;min-height:0;flex-direction:column;background:var(--surface-card)}.bb-mpane>.bb-col-preview{flex:1;min-height:0}@media (max-width: 768px){.bb-col-preview{min-width:0}.bb-mobile-tabs{overflow-x:hidden}.bb-mtab{flex:1 1 0;min-width:0;padding:0 8px;justify-content:center;font-size:12.5px}.bb-mtab>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.bb-mpane>.bb-dock{flex:1;min-height:0;overflow-y:auto}.lib-chr-move{display:none}@media (max-width: 768px){.lib-chr-move{display:inline-flex;flex:none;gap:2px}.lib-chr-move-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:0}.lib-chr-move-btn:disabled{opacity:.35;cursor:default}}.bb-engine-switch{flex:none;display:flex;gap:4px;justify-content:flex-end;padding:8px 14px 0}.bb-engine-switch button{height:26px;padding:0 12px;border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.bb-engine-switch button.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.print-view{display:flex;flex-direction:column;align-items:center;background:#fff;min-height:100vh}.print-view--loading{justify-content:center}.print-view__spinner{width:40px;height:40px;border:3px solid rgba(0,0,0,.1);border-top-color:#007aff;border-radius:50%;animation:print-spin .6s linear infinite}@keyframes print-spin{to{transform:rotate(360deg)}}.print-page{position:relative;overflow:hidden;background:#faf9f7;box-sizing:border-box;page-break-after:always;break-after:page;flex-shrink:0}.print-page>div{box-shadow:none!important;border-radius:0!important}.print-page:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");background-size:256px 256px;mix-blend-mode:multiply}.print-page__inner{width:100%;height:100%;display:flex;flex-direction:column;position:relative}.print-page--bleed{background:#fff}.print-page--bleed:after{content:none}.print-page--bleed>div>div{box-shadow:none!important;border-radius:0!important}@media screen{.print-view{gap:20px;padding:20px}.print-page{box-shadow:0 2px 12px #0000001a}}@media print{body{margin:0;padding:0}.print-view{gap:0;padding:0}.print-page{margin:0;box-shadow:none}}.internal-services-page{max-width:1100px;padding:24px;font-family:var(--font-sans);color:var(--text-primary)}.internal-services-page h1{margin:0 0 6px;font-size:var(--text-xl, 1.5rem)}.svc-page-hint{color:var(--text-secondary);font-size:var(--text-sm);margin:0 0 24px}.svc-group{margin-bottom:28px}.svc-group h2{font-size:var(--text-sm);margin:0 0 12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.svc-link{text-decoration:none;color:inherit;display:block}.svc-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.svc-card-name{font-weight:700}.svc-card-desc{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:8px}.svc-card-url{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-primary);word-break:break-all}.svc-card-hint{margin-top:6px;font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-secondary);word-break:break-all}.attr-report{max-width:640px;padding:var(--space-4, 1rem);margin-top:var(--space-6, 1.5rem);border:1px solid var(--border-subtle, #e5e7eb);border-radius:var(--radius-md, 8px);background:var(--surface-card, #fff)}.attr-report-title{margin-top:0}.attr-report-hint{margin-top:0;color:var(--text-secondary, #666);font-size:var(--text-sm, .9em)}.attr-report-filters{display:flex;gap:var(--space-3, 12px);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--space-3, 12px)}.attr-report-label{display:block;margin-bottom:2px;font-size:var(--text-xs, .85em);color:var(--text-secondary, #555)}.attr-report-error{margin-bottom:var(--space-2, 8px);padding:var(--space-2, 8px);border-radius:var(--radius-sm, 4px);font-size:var(--text-xs, .85em);color:var(--color-warning-fg, #92400e);background:var(--color-warning-bg, #fef3c7)}.attr-report-empty{padding:var(--space-4, 1rem) 0;text-align:center;color:var(--text-tertiary, #888)}.attr-report-table{width:100%;border-collapse:collapse}.attr-report-table th,.attr-report-table td{padding:var(--space-2, .4rem) var(--space-2, .6rem);font-size:var(--text-sm, .9em);text-align:left}.attr-report-table th{border-bottom:2px solid var(--border-subtle, #e5e7eb);font-size:var(--text-xs, .85em);color:var(--text-secondary, #374151)}.attr-report-table td{border-bottom:1px solid var(--border-faint, #f0f0f0)}.attr-report-table .attr-num{text-align:right}.attr-report-table .attr-total{font-weight:600}.inbox-page{padding:2rem;max-width:800px;margin:0 auto}.inbox-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.inbox-row{padding:1rem;border-bottom:1px solid var(--border-color, #eee);cursor:pointer;display:flex;align-items:center;gap:1rem}.inbox-row-dot{width:8px;flex-shrink:0}.inbox-badge{padding:.15rem .4rem;border-radius:4px;font-size:.75rem;background-color:var(--surface-bg, #e9ecef);color:#666;flex-shrink:0;min-width:50px;text-align:center}.inbox-subject{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbox-date{font-size:.85em;color:#999;flex-shrink:0}@media (max-width: 768px){.inbox-page{padding:1rem}.inbox-row{flex-wrap:wrap;gap:.4rem .75rem}.inbox-row-dot{order:0}.inbox-badge{order:1}.inbox-date{order:2;margin-left:auto}.inbox-subject{order:3;flex:1 1 100%;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.trash-page{padding:20px;max-width:1200px;margin:0 auto}.trash-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.trash-header h1{margin:0;font-size:24px}.trash-stats{display:flex;align-items:center;gap:8px;color:var(--text-secondary, #666);font-size:14px;flex:1}.trash-stats .separator{color:var(--border-color, #ddd)}.trash-stats .expiring-soon{color:var(--color-warning, #e67e22);font-weight:500}.trash-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.filter-btn{padding:6px 14px;border:1px solid var(--border-color, #ddd);border-radius:20px;background:var(--bg-secondary, #f5f5f5);cursor:pointer;font-size:13px;display:flex;align-items:center;gap:6px;transition:all .15s}.filter-btn:hover{background:var(--bg-hover, #e8e8e8)}.filter-btn.active{background:var(--color-primary, #3498db);color:#fff;border-color:var(--color-primary, #3498db)}.count-badge{background:#00000026;padding:1px 6px;border-radius:10px;font-size:11px}.filter-btn.active .count-badge{background:#ffffff4d}.trash-actions{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-secondary, #f0f0f0);border-radius:8px;margin-bottom:16px}.trash-grid{display:flex;flex-direction:column;gap:4px}.trash-select-all{padding:8px 12px;font-size:13px}.trash-select-all label{display:flex;align-items:center;gap:8px;cursor:pointer}.trash-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s}.trash-item:hover{background:var(--bg-hover, #f5f5f5)}.trash-item.selected{background:var(--color-primary-light, #ebf5fb)}.trash-item.expiring-soon{border-left:3px solid var(--color-warning, #e67e22)}.trash-item-checkbox{cursor:pointer}.trash-item-icon{width:56px;height:56px;border-radius:6px;background:var(--bg-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.trash-item-icon-emoji{font-size:28px}.trash-item-thumb{width:100%;height:100%;object-fit:cover;display:block}.trash-item-info{flex:1;min-width:0}.trash-item-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trash-item-meta{display:flex;gap:8px;font-size:12px;color:var(--text-secondary, #888)}.trash-item-days{font-size:13px;color:var(--text-secondary, #888);white-space:nowrap}.trash-item-days.warning{color:var(--color-danger, #e74c3c);font-weight:500}.trash-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--text-secondary, #999)}.trash-empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.trash-pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:20px}.trash-loading{display:flex;justify-content:center;padding:60px;color:var(--text-secondary, #999)}.trash-btn-outline{background:transparent;border:1px solid var(--color-danger, #e74c3c);color:var(--color-danger, #e74c3c)}.auth-standalone{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(16px,3vw,40px)}.auth-standalone-card{width:min(100%,620px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-md);padding:clamp(18px,2.4vw,28px)}.auth-standalone-card--sm{width:min(100%,460px);text-align:center}.auth-standalone-card--sm .spinner{margin:0 auto 12px}.auth-standalone-title{margin:0 0 16px}.auth-standalone-subtitle{margin:0 0 14px;color:var(--muted)}.auth-status-box{padding:14px;border-radius:var(--radius-md);margin-bottom:12px}.auth-status-box--success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text)}.auth-standalone-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}.auth-terms-heading{margin:0 0 8px;font-size:15px;font-weight:700}.auth-terms-content{max-height:420px;overflow:auto;white-space:pre-wrap;font-size:13px;line-height:1.6;padding:14px;background:var(--field-bg);border-radius:var(--radius-md);border:1px solid var(--border)}.auth-terms-actions{margin-top:14px;display:flex;justify-content:flex-end}.auth-terms-actions .btn{min-width:220px}@media (max-width: 640px){.auth-terms-actions .btn{width:100%}}.pub-album{min-height:100vh;min-height:100dvh;background:var(--bg);display:flex;flex-direction:column}.pub-album__inner{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--content-gutter);flex:1}.pub-album__header{padding:28px 0 20px;display:flex;flex-direction:column;gap:6px}.pub-album__title{font-size:clamp(22px,5vw,36px);font-weight:700;letter-spacing:-.025em;color:var(--text);margin:0;line-height:1.15}.pub-album__desc{font-size:15px;color:var(--muted);margin:0;line-height:1.5}.pub-album__meta{display:flex;align-items:center;gap:14px;margin-top:4px;font-size:13px;color:var(--muted)}.pub-album__meta-sep{width:3px;height:3px;border-radius:50%;background:var(--muted);flex-shrink:0}.pub-toolbar{display:flex;align-items:center;gap:10px;padding:10px 0 14px;flex-wrap:wrap}.pub-toolbar__modes{display:flex;background:var(--field-bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;height:36px;flex-shrink:0}.pub-toolbar__mode-btn{all:unset;display:flex;align-items:center;justify-content:center;width:40px;cursor:pointer;color:var(--muted);transition:background var(--transition-fast),color var(--transition-fast)}.pub-toolbar__mode-btn:hover{background:var(--row-hover)}.pub-toolbar__mode-btn--active{background:var(--accent);color:#fff}.pub-toolbar__mode-btn--active:hover{background:var(--accent-hover)}.pub-toolbar__mode-btn svg{width:18px;height:18px}.pub-toolbar__sizer{display:flex;align-items:center;gap:8px;flex:1;min-width:140px;max-width:260px}.pub-toolbar__sizer-icon{color:var(--muted);flex-shrink:0}.pub-toolbar__sizer-icon svg{width:14px;height:14px;display:block}.pub-toolbar__sizer-icon--lg svg{width:20px;height:20px}.pub-toolbar__slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:4px;border-radius:2px;background:var(--border-strong);outline:none;transition:background var(--transition-fast)}.pub-toolbar__slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--panel-solid);box-shadow:0 1px 4px #0003;transition:transform var(--transition-fast)}.pub-toolbar__slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.pub-toolbar__slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--panel-solid);box-shadow:0 1px 4px #0003}.pub-toolbar__count{font-size:12px;color:var(--muted);margin-left:auto;white-space:nowrap;font-variant-numeric:tabular-nums}.pub-grid{display:grid;gap:var(--pub-grid-gap, 6px);grid-template-columns:repeat(auto-fill,minmax(var(--pub-cell-size, 160px),1fr));padding-bottom:20px}.pub-grid__cell{position:relative;aspect-ratio:1;border-radius:var(--pub-cell-radius, 6px);overflow:hidden;cursor:pointer;background:var(--field-bg);will-change:transform}.pub-grid__cell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;background:linear-gradient(to top,rgba(0,0,0,.35) 0%,transparent 50%);transition:opacity .2s ease;pointer-events:none}.pub-grid__cell:hover:after{opacity:1}.pub-grid__cell:active{transform:scale(.97);transition:transform .1s ease}.pub-grid__img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.pub-grid__cell:hover .pub-grid__img{transform:scale(1.04)}.pub-grid__play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6);pointer-events:none;z-index:1;opacity:.9}.pub-grid__duration{position:absolute;bottom:6px;right:6px;background:#000000bf;color:#fff;font-size:11px;font-family:SF Mono,Menlo,Consolas,monospace;padding:1px 5px;border-radius:3px;pointer-events:none;z-index:1;line-height:1.4}.pub-grid__cell--skeleton{cursor:default;animation:pub-shimmer 1.6s ease-in-out infinite}@keyframes pub-shimmer{0%,to{opacity:.5}50%{opacity:.25}}.pub-slideshow{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 0 20px;min-height:0;-webkit-user-select:none;user-select:none}.pub-slideshow__stage{position:relative;flex:1;display:flex;align-items:center;justify-content:center;width:100%;min-height:0;overflow:hidden;border-radius:var(--radius-lg);background:var(--panel-solid);border:1px solid var(--border)}.pub-slideshow__img-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.pub-slideshow__img{max-width:100%;max-height:70vh;max-height:70dvh;object-fit:contain;border-radius:var(--radius-sm);transition:opacity .25s ease}.pub-slideshow__img--loading{opacity:0}.pub-slideshow__loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.pub-slideshow__nav{all:unset;position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--panel-solid);border:1px solid var(--border);box-shadow:var(--shadow-sm);cursor:pointer;color:var(--text);z-index:2;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.pub-slideshow__nav:hover{transform:translateY(-50%) scale(1.08);box-shadow:var(--shadow-md)}.pub-slideshow__nav:active{transform:translateY(-50%) scale(.95)}.pub-slideshow__nav--prev{left:12px}.pub-slideshow__nav--next{right:12px}.pub-slideshow__nav svg{width:20px;height:20px}.pub-slideshow__progress{display:flex;align-items:center;gap:12px;width:100%;max-width:500px;margin-top:14px;padding:0 4px}.pub-slideshow__progress-bar{flex:1;height:3px;border-radius:2px;background:var(--border);overflow:hidden}.pub-slideshow__progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.pub-slideshow__progress-text{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:52px;text-align:center}.pub-slideshow__controls{display:flex;align-items:center;gap:8px;margin-top:10px}.pub-slideshow__ctrl-btn{all:unset;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;cursor:pointer;color:var(--muted);transition:color var(--transition-fast),background var(--transition-fast)}.pub-slideshow__ctrl-btn:hover{color:var(--text);background:var(--row-hover)}.pub-slideshow__ctrl-btn--play{width:44px;height:44px;background:var(--accent);color:#fff}.pub-slideshow__ctrl-btn--play:hover{background:var(--accent-hover);color:#fff}.pub-slideshow__ctrl-btn svg{width:18px;height:18px}.pub-slideshow__ctrl-btn--play svg{width:22px;height:22px}.pub-slideshow__caption{font-size:12px;color:var(--muted);margin-top:6px;text-align:center;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pub-slideshow--fullscreen{background:#000;padding:0}.pub-slideshow--fullscreen .pub-slideshow__stage{border-radius:0;border:none;background:#000}.pub-slideshow--fullscreen .pub-slideshow__img{max-height:90vh;max-height:90dvh;border-radius:0}.pub-slideshow--fullscreen .pub-slideshow__progress-text,.pub-slideshow--fullscreen .pub-slideshow__caption{color:#ffffff80}.pub-slideshow--fullscreen .pub-slideshow__ctrl-btn{color:#ffffffb3}.pub-slideshow--fullscreen .pub-slideshow__ctrl-btn:hover{color:#fff;background:#ffffff1f}.pub-slideshow--fullscreen .pub-slideshow__progress-bar{background:#ffffff26}.pub-slideshow--fullscreen .pub-slideshow__nav{background:#ffffff1a;border-color:transparent;color:#fff}.pub-slideshow--fullscreen .pub-slideshow__nav:hover{background:#fff3}.pub-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000f5;display:flex;flex-direction:column;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;animation:pub-fadeIn .2s ease}@keyframes pub-fadeIn{0%{opacity:0}to{opacity:1}}.pub-lightbox__img{max-width:94vw;max-height:86vh;max-height:86dvh;object-fit:contain;border-radius:4px;transition:opacity .2s ease}.pub-lightbox__img--loading{opacity:0}.pub-lightbox__top-bar{position:absolute;top:env(safe-area-inset-top,12px);right:12px;display:flex;gap:8px;z-index:2}.pub-lightbox__top-btn{all:unset;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff1f;color:#fff;cursor:pointer;transition:background .15s ease}.pub-lightbox__top-btn:hover{background:#ffffff38}.pub-lightbox__top-btn svg{width:20px;height:20px}.pub-lightbox__nav{all:unset;position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff1a;color:#fffc;cursor:pointer;z-index:2;transition:background .15s ease}.pub-lightbox__nav:hover{background:#fff3}.pub-lightbox__nav--prev{left:12px}.pub-lightbox__nav--next{right:12px}.pub-lightbox__nav svg{width:24px;height:24px}.pub-lightbox__actions{position:absolute;bottom:max(16px,env(safe-area-inset-bottom,16px));display:flex;gap:10px}.pub-lightbox__dl-btn{all:unset;display:flex;align-items:center;gap:6px;padding:0 16px;height:40px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.pub-lightbox__dl-btn:hover{background:var(--accent-hover)}.pub-lightbox__counter{position:absolute;bottom:max(20px,env(safe-area-inset-bottom,20px));left:50%;transform:translate(-50%);font-size:13px;color:#ffffff80;font-variant-numeric:tabular-nums}.pub-load-more{display:flex;justify-content:center;padding:16px 0 32px}.pub-load-more__btn{all:unset;display:flex;align-items:center;gap:8px;padding:0 24px;height:var(--control-h);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-solid);color:var(--text);font-size:14px;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.pub-load-more__btn:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.pub-password{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;align-items:center;justify-content:center;background:var(--bg)}.pub-password__card{width:90%;max-width:380px;padding:32px 28px;background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.pub-password__icon{width:52px;height:52px;border-radius:50%;background:var(--accent-light);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 18px}.pub-password__icon svg{width:24px;height:24px}.pub-password__title{text-align:center;font-size:20px;font-weight:700;margin:0 0 6px;color:var(--text)}.pub-password__hint{text-align:center;font-size:14px;color:var(--muted);margin:0 0 20px}.pub-password__input{width:100%;height:var(--control-h);padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:15px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box}.pub-password__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.pub-password__error{font-size:13px;color:var(--danger);margin-top:8px;text-align:center}.pub-password__actions{display:flex;gap:10px;margin-top:20px}.pub-password__btn{all:unset;flex:1;height:var(--control-h);border-radius:var(--radius-sm);font-size:15px;font-weight:500;text-align:center;cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast);box-sizing:border-box}.pub-password__btn--ghost{border:1px solid var(--border);color:var(--text);background:transparent}.pub-password__btn--ghost:hover{background:var(--row-hover)}.pub-password__btn--primary{background:var(--accent);color:#fff}.pub-password__btn--primary:hover{background:var(--accent-hover)}.pub-password__btn:disabled{opacity:.45;cursor:not-allowed}.pub-album__footer{padding:20px 0;text-align:center;font-size:12px;color:var(--placeholder);border-top:1px solid var(--border);margin-top:auto}.pub-album__error,.pub-album__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--muted);gap:8px}.pub-album__error-icon{width:56px;height:56px;border-radius:50%;background:var(--color-error-bg);color:var(--danger);display:flex;align-items:center;justify-content:center;margin-bottom:8px}.pub-album__error-icon svg{width:28px;height:28px}@media (max-width: 600px){.pub-album__inner{padding:0}.pub-album__header{padding:20px 14px 14px}.pub-toolbar{padding:6px 14px 10px;gap:8px}.pub-toolbar__sizer{order:10;min-width:0;max-width:none;flex:1 1 100%}.pub-grid{padding-left:0;padding-right:0}.pub-slideshow__stage{border-radius:0;border-left:none;border-right:none}.pub-slideshow__nav{width:36px;height:36px}.pub-slideshow__nav--prev{left:6px}.pub-slideshow__nav--next{right:6px}.pub-lightbox__nav{width:40px;height:40px}.pub-lightbox__nav--prev{left:6px}.pub-lightbox__nav--next{right:6px}.pub-slideshow__img{max-height:55vh;max-height:55dvh}.pub-album__footer{padding:20px 14px}}@media (hover: none) and (pointer: coarse){.pub-slideshow__nav,.pub-lightbox__nav{display:none}}.guest-links-section{margin-top:var(--spacing-xl)}.guest-links-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.guest-links-title{font-size:1.375rem;font-weight:700;color:var(--color-text-primary);margin:0}.guest-links-subtitle{font-size:.875rem;color:var(--color-text-secondary);margin:var(--spacing-xs) 0 0 0}@media (max-width: 768px){.guest-links-header{flex-direction:column;align-items:flex-start}.guest-links-header .btn{align-self:stretch}}.guest-links-loading{display:flex;justify-content:center;padding:var(--spacing-xl)}.guest-links-empty{text-align:center;padding:var(--spacing-xl);background:var(--color-bg-secondary, #f5f5f7);border-radius:var(--radius-md, 12px)}.guest-links-empty-title{font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.guest-links-empty-hint{color:var(--color-text-secondary);font-size:.875rem;margin:0}.guest-links-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.guest-link-card{background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #d1d1d6);border-radius:var(--radius-md, 12px);padding:var(--spacing-lg)}.guest-link-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.guest-link-card-title-row{display:flex;align-items:center;gap:var(--spacing-sm)}.guest-link-card-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0}.guest-link-status-badge{font-size:.75rem;font-weight:600;padding:2px 10px;border-radius:100px}.guest-link-status-badge.active{background:var(--color-success-bg, #f0faf4);color:var(--color-success, #16a34a)}.guest-link-status-badge.inactive{background:var(--color-bg-secondary, #f5f5f7);color:var(--color-text-muted, #8e8e93)}.guest-link-status-badge.expired{background:var(--color-danger-bg, #fff2f0);color:var(--color-danger, #e5484d)}.guest-link-card-stats{display:flex;gap:var(--spacing-md);font-size:.8125rem;color:var(--color-text-secondary)}.guest-link-card-album{font-size:.8125rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.guest-link-album-label{font-weight:600}.guest-link-album-link{color:var(--color-primary, #1677ff);text-decoration:none}.guest-link-album-link:hover{text-decoration:underline}.guest-link-card-url{margin-bottom:var(--spacing-md)}.guest-link-url-text{font-size:.8125rem;color:var(--color-text-secondary);background:var(--color-bg-secondary, #f5f5f7);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm, 8px)}.guest-link-card-actions{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.guest-link-qr{margin-top:var(--spacing-md);text-align:center;padding:var(--spacing-md);background:var(--color-bg-secondary, #f5f5f7);border-radius:var(--radius-sm, 8px)}.guest-link-qr-hint{font-size:.75rem;color:var(--color-text-muted);margin:var(--spacing-sm) 0 0 0;word-break:break-all}.guest-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.guest-modal{background:var(--color-bg-primary, #fff);border-radius:var(--radius-lg, 16px);max-width:560px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg, 0 16px 48px rgba(0,0,0,.2))}.guest-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-lg) 0}.guest-modal-header h2{font-size:1.25rem;font-weight:700;margin:0}.guest-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-muted);padding:0;line-height:1}.guest-modal-close:hover{color:var(--color-text-primary)}.guest-modal-body{padding:var(--spacing-lg)}.guest-modal-error{background:var(--color-danger-bg, #fff2f0);color:var(--color-danger, #e5484d);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm, 8px);margin-bottom:var(--spacing-md);font-size:.875rem}.guest-modal-field{margin-bottom:var(--spacing-md)}.guest-modal-field label{display:block;font-weight:600;font-size:.875rem;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.guest-modal-album-row{display:flex;gap:var(--spacing-xs);align-items:center}.guest-modal-album-row .control{flex:1}.guest-modal-inline-create{display:flex;gap:var(--spacing-xs);align-items:center}.guest-modal-inline-create .control{flex:1}.guest-modal-field .control{width:100%;min-height:var(--control-h, 44px)}.guest-modal-field textarea.control{min-height:80px;resize:vertical}.guest-modal-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.guest-modal-toggles{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.guest-modal-toggle{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:.875rem;color:var(--color-text-primary)}.guest-modal-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary, #1677ff)}.guest-modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--color-border, #d1d1d6)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:.8125rem;min-height:32px}.guest-links-section .btn-danger{color:var(--color-danger, #e5484d)}.guest-links-section .btn-danger:hover{background:var(--color-danger-bg, #fff2f0)}.spinner-small{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.share-empty{text-align:center;display:flex;flex-direction:column;gap:10px}.share-empty-title{margin:0;font-size:18px;font-weight:700}.share-empty-hint{margin:0;color:var(--muted)}.share-empty-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:8px}.share-filters{margin-bottom:14px}.share-filter-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--form-row-gap)}.share-table-section{padding-top:18px}.share-cell-album{font-weight:700}.share-link-cell{font-family:var(--font-mono);font-size:12px;color:var(--accent)}.share-cell-date{font-family:var(--font-mono);font-size:12px;white-space:nowrap}@media (max-width: 768px){.share-filter-grid{grid-template-columns:1fr}}.site-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#080a0eeb;z-index:1200;display:flex;align-items:center;justify-content:center}.site-lightbox__figure{margin:0;max-width:calc(100vw - 96px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;align-items:center;gap:10px}.site-lightbox__img{max-width:100%;max-height:calc(100vh - 110px);object-fit:contain;border-radius:6px}.site-lightbox__caption{color:#ffffffd9;font-size:13px;text-align:center;max-width:640px}.site-lightbox__close,.site-lightbox__nav{position:absolute;border:none;background:#ffffff14;color:#fff;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s}.site-lightbox__close:hover,.site-lightbox__nav:hover{background:#fff3}.site-lightbox__close{top:16px;right:16px;width:40px;height:40px;font-size:26px;line-height:1}.site-lightbox__nav{top:50%;transform:translateY(-50%);width:44px;height:44px;font-size:30px;line-height:1}.site-lightbox__nav--prev{left:14px}.site-lightbox__nav--next{right:14px}.site-lightbox__counter{position:absolute;bottom:14px;left:50%;transform:translate(-50%);color:#ffffffb3;font-size:12px;font-variant-numeric:tabular-nums}@media (max-width: 600px){.site-lightbox__figure{max-width:calc(100vw - 16px)}.site-lightbox__nav{width:38px;height:38px}}.site-feed{--sf-radius: 12px;width:100%}.site-feed__sort{display:inline-flex;gap:4px;padding:4px;margin-bottom:20px;border:1px solid var(--border, #e5e7eb);border-radius:999px;background:var(--bg, #fff)}.site-feed__sort-btn{border:0;background:transparent;color:var(--muted, #6b7280);padding:6px 16px;border-radius:999px;font-size:14px;cursor:pointer;transition:background .15s,color .15s}.site-feed__sort-btn:hover{color:var(--text, #111827)}.site-feed__sort-btn.active{background:var(--accent, #1677ff);color:#fff}.site-feed__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:24px}.site-feed__item{border-left:2px solid var(--border, #e5e7eb);padding-left:16px}.site-feed__meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:10px;font-size:13px;color:var(--muted, #6b7280)}.site-feed__date{font-weight:600;color:var(--text, #111827)}.site-feed__type,.site-feed__count{padding:2px 8px;border-radius:999px;background:var(--bg, #f3f4f6);border:1px solid var(--border, #e5e7eb)}.site-feed__photos{display:flex;flex-wrap:wrap;gap:6px}.site-feed__thumb{position:relative;width:96px;height:96px;padding:0;border:0;border-radius:var(--sf-radius);overflow:hidden;cursor:pointer;background:var(--bg, #f3f4f6)}.site-feed__thumb img{width:100%;height:100%;object-fit:cover;display:block}.site-feed__more{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000008c;color:#fff;font-size:18px;font-weight:600}.site-feed__card{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;max-width:480px;padding:10px;border:1px solid var(--border, #e5e7eb);border-radius:var(--sf-radius);transition:box-shadow .15s,transform .15s}.site-feed__card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-1px)}.site-feed__cover{width:88px;height:88px;flex:0 0 auto;object-fit:cover;border-radius:8px;background:var(--bg, #f3f4f6)}.site-feed__cover--placeholder{display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted, #9ca3af);text-align:center;padding:4px}.site-feed__title{font-size:16px;font-weight:600;color:var(--text, #111827)}.site-feed__error{color:var(--muted, #6b7280);padding:16px 0}@media (max-width: 480px){.site-feed__thumb{width:72px;height:72px}.site-feed__card{max-width:100%}}.site-feed__story-text{margin-top:8px;scroll-margin-top:72px}.site-feed__story-body{font-size:14.5px;line-height:1.55}.site-feed__story-body p{margin:0 0 .7em}.site-feed__story-body h4{margin:.8em 0 .35em;font-size:15px}.site-feed__story-body--empty{color:var(--color-text-secondary, #6b7280)}.site-feed__story-toggle{background:none;border:none;padding:2px 0;cursor:pointer;color:var(--color-primary, #1677ff);font-size:13.5px;font-weight:500}.site-feed__story-toggle:disabled{opacity:.6;cursor:default}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes cardReveal{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.user-page{min-height:100vh;min-height:100dvh;background:var(--bg);display:flex;flex-direction:column;position:relative}.user-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");pointer-events:none;z-index:0}.user-page__inner{width:100%;max-width:960px;margin:0 auto;padding:0 var(--spacing-lg, 24px);flex:1;position:relative;z-index:1}.user-page__header{padding:48px 0 32px;display:flex;flex-direction:column;gap:10px;animation:fadeUp .6s cubic-bezier(.22,1,.36,1) both}.user-page__name{font-family:"Bricolage Grotesque",var(--font-sans, system-ui);font-size:clamp(28px,6vw,46px);font-weight:750;font-optical-sizing:auto;letter-spacing:-.035em;color:var(--text);margin:0;line-height:1.08}.user-page__bio{font-size:16px;color:var(--muted);margin:0;line-height:1.55;max-width:520px;letter-spacing:-.005em}.user-page__stats{display:flex;align-items:center;gap:0;margin-top:6px;font-size:13px;font-weight:500;color:var(--muted)}.user-page__stats span{padding:4px 12px 4px 0}.user-page__stat-sep{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.4;margin-right:12px;flex-shrink:0}.user-page__hero{width:100%;max-height:340px;overflow:hidden;position:relative;z-index:1;animation:fadeUp .5s cubic-bezier(.22,1,.36,1) both}.user-page__hero-img{width:100%;height:100%;min-height:180px;max-height:340px;object-fit:cover;display:block}.user-page__photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.user-page__photo-cell{position:relative;aspect-ratio:1;border:none;padding:0;border-radius:var(--radius-md, 12px);overflow:hidden;cursor:pointer;background:var(--bg)}.user-page__photo-cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s cubic-bezier(.22,1,.36,1)}.user-page__photo-cell:hover img{transform:scale(1.045)}.user-page__show-all{display:flex;justify-content:center;margin-top:16px}.user-page__hidden-badge{position:absolute;top:8px;left:8px;z-index:2;padding:2px 8px;border-radius:999px;background:#0f141ea6;color:#fff;font-size:11px;font-weight:600;pointer-events:none}.user-page__card{position:relative}.user-page__owner-disabled{color:var(--danger, #ef4444);font-weight:600}.user-page__degraded{color:var(--muted);font-size:14px;padding:14px 16px;border:1px dashed var(--border);border-radius:var(--radius-md, 12px);margin:0}.user-page__card-desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}@media (max-width: 600px){.user-page__photo-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}}.user-page__section{margin-bottom:40px;animation:fadeUp .6s cubic-bezier(.22,1,.36,1) .15s both}.user-page__section-title{font-family:"Bricolage Grotesque",var(--font-sans, system-ui);font-size:15px;font-weight:650;color:var(--muted);margin:0 0 16px;letter-spacing:.04em;text-transform:uppercase}.user-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.user-page__card{background:var(--panel, rgba(255, 255, 255, .72));border:1px solid var(--border);border-radius:var(--radius-lg, 16px);overflow:hidden;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.22,1,.36,1),border-color .2s;text-decoration:none;color:inherit;display:block;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:cardReveal .45s cubic-bezier(.22,1,.36,1) both}.user-page__card:nth-child(1){animation-delay:.1s}.user-page__card:nth-child(2){animation-delay:.16s}.user-page__card:nth-child(3){animation-delay:.22s}.user-page__card:nth-child(4){animation-delay:.28s}.user-page__card:nth-child(5){animation-delay:.34s}.user-page__card:nth-child(6){animation-delay:.4s}.user-page__card:nth-child(n+7){animation-delay:.44s}.user-page__card:hover{transform:translateY(-4px) scale(1.015);box-shadow:var(--shadow-lg, 0 16px 40px rgba(0, 0, 0, .12));border-color:var(--accent)}.user-page__card:active{transform:translateY(-1px) scale(.995)}.user-page__card-cover{width:100%;aspect-ratio:3 / 2;object-fit:cover;background:var(--bg);display:block;transition:transform .4s cubic-bezier(.22,1,.36,1)}.user-page__card:hover .user-page__card-cover{transform:scale(1.04)}.user-page__card-cover--placeholder{display:flex;align-items:center;justify-content:center;color:var(--placeholder, var(--muted));font-size:13px;font-weight:500;background:linear-gradient(135deg,var(--bg) 0%,var(--border) 100%)}.user-page__card-body{padding:12px 16px 16px}.user-page__card-title{font-family:"Bricolage Grotesque",var(--font-sans, system-ui);font-size:15px;font-weight:620;color:var(--text);margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}.user-page__card-meta{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.user-page__empty{text-align:center;padding:56px 24px;color:var(--muted);font-size:15px;animation:fadeUp .6s cubic-bezier(.22,1,.36,1) .2s both}.user-page__empty p{margin:0 0 20px;max-width:400px;margin-inline:auto;line-height:1.5}.user-page__empty-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.user-page__owner-bar{background:var(--panel, rgba(255, 255, 255, .72));border:1px solid var(--border);border-radius:var(--radius-lg, 16px);padding:14px 20px;margin-bottom:28px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;backdrop-filter:blur(var(--blur, 18px));-webkit-backdrop-filter:blur(var(--blur, 18px));animation:fadeUp .5s cubic-bezier(.22,1,.36,1) .1s both}.user-page__owner-bar-label{font-size:13px;font-weight:600;color:var(--text);margin-right:auto;letter-spacing:-.005em}.user-page__owner-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.user-page__edit-panel{background:var(--panel-solid, #fff);border:1px solid var(--border);border-radius:var(--radius-lg, 16px);padding:24px;margin-bottom:28px;animation:fadeUp .4s cubic-bezier(.22,1,.36,1) both}.user-page__edit-panel h3{font-family:"Bricolage Grotesque",var(--font-sans, system-ui);font-size:17px;font-weight:650;color:var(--text);margin:0 0 20px;letter-spacing:-.01em}.user-page__edit-field{margin-bottom:16px}.user-page__edit-field label{display:block;font-size:13px;font-weight:550;color:var(--muted);margin-bottom:6px;letter-spacing:-.005em}.user-page__edit-field input,.user-page__edit-field textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);background:var(--bg);color:var(--text);font-size:14px;font-family:inherit;resize:vertical;transition:border-color .2s,box-shadow .2s;height:var(--control-h, 44px);box-sizing:border-box}.user-page__edit-field textarea{height:auto;min-height:80px}.user-page__edit-field input:focus,.user-page__edit-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light, rgba(22, 119, 255, .12))}.user-page__edit-actions{display:flex;gap:8px;margin-top:20px}.user-page__toggle-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:14px;color:var(--text);cursor:pointer}.user-page__toggle-row label{cursor:pointer}.user-page__toggle-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);border-radius:4px;cursor:pointer}.user-page__footer{padding:32px 0;text-align:center;font-size:12px;color:var(--muted);opacity:.5;letter-spacing:.02em;position:relative;z-index:1}.user-page__error{text-align:center;padding:100px 24px;color:var(--muted);animation:fadeUp .5s cubic-bezier(.22,1,.36,1) both}.user-page__error h2{font-family:"Bricolage Grotesque",var(--font-sans, system-ui);font-size:22px;font-weight:650;color:var(--text);margin:0 0 12px;letter-spacing:-.02em}@media (max-width: 600px){.user-page__inner{padding:0 var(--spacing-md, 16px)}.user-page__header{padding:32px 0 24px}.user-page__grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.user-page__card{border-radius:var(--radius-md, 12px)}.user-page__card-body{padding:10px 12px 12px}.user-page__card-title{font-size:14px}.user-page__owner-bar{flex-direction:column;align-items:stretch;gap:10px;padding:16px}.user-page__owner-actions{justify-content:stretch}.user-page__owner-actions .btn{flex:1;text-align:center}.user-page__edit-panel{padding:16px}.user-page__section{margin-bottom:28px}}@media (min-width: 601px) and (max-width: 900px){.user-page__grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.user-page__view-toggle{display:inline-flex;gap:4px;padding:4px;margin:0 0 24px;border:1px solid var(--border);border-radius:999px;background:var(--bg)}.user-page__view-btn{border:0;background:transparent;color:var(--muted);padding:6px 18px;border-radius:999px;font-size:14px;cursor:pointer;transition:background .15s,color .15s}.user-page__view-btn:hover{color:var(--text)}.user-page__view-btn.active{background:var(--accent);color:#fff}.pub-event{min-height:100vh;min-height:100dvh;background:var(--bg);display:flex;flex-direction:column}.pub-event__inner{width:100%;max-width:1080px;margin:0 auto;padding:0 var(--spacing-lg, 24px);flex:1}.pub-event__breadcrumb{padding:20px 0 0;font-size:14px}.pub-event__breadcrumb a{color:var(--muted);text-decoration:none}.pub-event__breadcrumb a:hover{color:var(--accent)}.pub-event__header{padding:20px 0 24px;display:flex;flex-direction:column;gap:8px}.pub-event__title{font-family:"Bricolage Grotesque",var(--font-sans, system-ui);font-size:clamp(24px,5vw,38px);font-weight:750;letter-spacing:-.03em;color:var(--text);margin:0;line-height:1.1}.pub-event__meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;color:var(--muted)}.pub-event__caption{margin:4px 0 0;font-size:15px;line-height:1.55;color:var(--text);max-width:640px}.pub-event__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;padding-bottom:8px}.pub-event__cell{position:relative;aspect-ratio:1;border:none;padding:0;border-radius:var(--radius-md, 12px);overflow:hidden;cursor:pointer;background:var(--panel, rgba(0, 0, 0, .04))}.pub-event__cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s cubic-bezier(.22,1,.36,1)}.pub-event__cell:hover img{transform:scale(1.045)}.pub-event__more{display:flex;justify-content:center;padding:18px 0 8px}.pub-event__error{text-align:center;padding:100px 24px;color:var(--muted)}.pub-event__error h2{font-size:22px;color:var(--text);margin:0 0 12px}.pub-event__footer{padding:32px 0;text-align:center;font-size:12px;color:var(--muted);opacity:.5}@media (max-width: 600px){.pub-event__inner{padding:0 var(--spacing-md, 16px)}.pub-event__grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}}.ms-tabs{display:flex;gap:2px;padding:2px;background:var(--surface-sunken);border-radius:var(--radius-md);width:fit-content;max-width:100%;overflow-x:auto;margin-bottom:var(--space-5, 20px)}.ms-tab{height:34px;padding:0 14px;border:none;border-radius:calc(var(--radius-md) - 2px);background:transparent;color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--duration-fast),color var(--duration-fast)}.ms-tab.active{background:var(--surface-card);color:var(--color-primary);box-shadow:var(--shadow-sm)}.ms-tab:disabled{opacity:.45;cursor:default}@keyframes ms-shimmer{0%{opacity:.55}50%{opacity:1}to{opacity:.55}}.ms-skeleton{background:var(--surface-sunken);border-radius:var(--radius-lg);animation:ms-shimmer 1.4s ease-in-out infinite}.ms-skeleton--card{height:120px;margin-bottom:16px}.ms-skeleton--row{height:52px;margin-bottom:8px;border-radius:var(--radius-md)}.ms-error-block{text-align:center;padding:48px 16px;color:var(--text-secondary)}.ms-error-block p{margin:0 0 14px}.ms-empty-block{text-align:center;padding:28px 16px;color:var(--text-secondary);font-size:var(--text-sm)}.ms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:16px}.ms-metric-value{font-size:var(--text-3xl, 28px);font-weight:700;color:var(--text-primary);line-height:1.15}.ms-metric-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:6px}.ms-card-title{font-size:var(--text-md, 15px);font-weight:650;color:var(--text-primary);margin:0 0 12px}.ms-status-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ms-site-link{font-family:var(--font-mono, monospace);font-size:var(--text-sm);color:var(--color-primary);text-decoration:none;word-break:break-all}.ms-site-link:hover{text-decoration:underline}.ms-pub-types{display:flex;flex-wrap:wrap;gap:8px}.ms-pub-type{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:84px;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card)}.ms-pub-type b{font-size:var(--text-xl, 20px);color:var(--text-primary)}.ms-pub-type span{font-size:var(--text-xs);color:var(--text-secondary)}.ms-recent-list{display:flex;flex-direction:column;gap:6px}.ms-recent-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);background:var(--surface-sunken);font-size:var(--text-sm);color:var(--text-primary)}.ms-recent-row .ms-recent-views{margin-left:auto;color:var(--text-secondary);font-variant-numeric:tabular-nums}.ms-onboarding{max-width:520px}.ms-onboarding h3{margin:0 0 6px;font-size:var(--text-xl, 20px);color:var(--text-primary)}.ms-onboarding>p{margin:0 0 18px;color:var(--text-secondary);font-size:var(--text-sm)}.ms-field{margin-bottom:14px}.ms-field>label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:6px}.ms-field input,.ms-field textarea{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);resize:vertical}.ms-field input:focus,.ms-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring, 0 0 0 3px rgba(22, 119, 255, .15))}.ms-slug-row{display:flex;align-items:center;gap:8px}.ms-slug-row .ms-slug-prefix{color:var(--text-secondary);white-space:nowrap;font-size:var(--text-sm)}.ms-slug-status{font-size:var(--text-xs);margin-top:4px;color:var(--text-secondary)}.ms-slug-status.ok{color:var(--status-success, #16a34a)}.ms-slug-status.bad{color:var(--status-danger, #e11d48)}.ms-form-error{color:var(--status-danger, #e11d48);font-size:var(--text-sm);margin:0 0 10px}.ms-section{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);margin-bottom:12px;overflow:hidden}.ms-section-head{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none}.ms-section-head:hover{background:var(--surface-hover)}.ms-section-title{font-size:var(--text-md, 15px);font-weight:650;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:8px}.ms-section-count{font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.ms-section-head-right{margin-left:auto;display:flex;align-items:center;gap:12px}.ms-section-body{border-top:1px solid var(--border-default);padding:14px 16px 16px}.ms-section-hint{font-size:var(--text-xs);color:var(--text-secondary);margin:0 0 12px}.ms-chevron{transition:transform var(--duration-fast);color:var(--text-secondary)}.ms-chevron.open{transform:rotate(180deg)}.ms-toggle{position:relative;width:36px;height:20px;border-radius:999px;border:none;background:var(--border-strong, #c9ced6);cursor:pointer;flex:none;padding:0;transition:background var(--duration-fast)}.ms-toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform var(--duration-fast)}.ms-toggle.on{background:var(--color-primary)}.ms-toggle.on:after{transform:translate(16px)}.ms-pub-list{display:flex;flex-direction:column;gap:6px}.ms-pub-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card)}.ms-pub-row.dragging{opacity:.5}.ms-pub-row.hidden-row{opacity:.6}.ms-pub-thumb{width:48px;height:48px;flex:none;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-sunken)}.ms-pub-thumb--placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary, var(--text-secondary));font-size:10px}.ms-pub-main{min-width:0;flex:1}.ms-pub-title{font-size:var(--text-sm);color:var(--text-primary);font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-pub-badges{display:flex;gap:6px;margin-top:3px;flex-wrap:wrap}.ms-pub-actions{display:flex;align-items:center;gap:4px;flex:none}.ms-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;padding:0;flex:none}.ms-icon-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.ms-icon-btn.active{color:var(--color-primary)}.ms-icon-btn.danger:hover{color:var(--status-danger, #e11d48)}.ms-drag-handle{cursor:grab;touch-action:none}.ms-drag-handle:active{cursor:grabbing}.ms-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f141e8c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.ms-modal{background:var(--surface-card);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-lg);width:100%;max-width:760px;max-height:min(84vh,720px);display:flex;flex-direction:column;overflow:hidden}.ms-modal-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border-default)}.ms-modal-head h3{margin:0;font-size:var(--text-md, 15px);color:var(--text-primary)}.ms-modal-body{padding:14px 18px;overflow-y:auto;flex:1}.ms-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--border-default)}.ms-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.ms-picker-cell{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;border:2px solid transparent;padding:0;background:var(--surface-sunken)}.ms-picker-cell img{width:100%;height:100%;object-fit:cover;display:block}.ms-picker-cell.selected{border-color:var(--color-primary)}.ms-picker-cell.disabled{opacity:.45;cursor:default}.ms-picker-check{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 1px 3px #0000004d}.ms-picker-loadmore{display:flex;justify-content:center;margin-top:14px}.ms-picker-rows{display:flex;flex-direction:column;gap:6px}.ms-picker-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;background:var(--surface-card)}.ms-picker-row:hover{background:var(--surface-hover)}.ms-picker-row.selected{border-color:var(--color-primary);background:var(--color-primary-soft, rgba(22, 119, 255, .08))}.ms-picker-row.disabled{opacity:.5;cursor:default}.ms-picker-row-main{min-width:0;flex:1}.ms-picker-row-title{font-size:var(--text-sm);font-weight:550;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-picker-row-meta{font-size:var(--text-xs);color:var(--text-secondary);margin-top:2px}.ms-settings-card{margin-bottom:16px}.ms-order-list{display:flex;flex-direction:column;gap:6px;max-width:420px}.ms-order-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);font-size:var(--text-sm);font-weight:550;color:var(--text-primary)}.ms-order-row.dragging{opacity:.5}.ms-cover-box{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.ms-cover-preview{width:160px;height:90px;border-radius:var(--radius-md);object-fit:cover;background:var(--surface-sunken);border:1px solid var(--border-default)}.ms-danger-zone{border-color:var(--status-danger, #e11d48)}.ms-checkbox-row{display:flex;align-items:flex-start;gap:10px}.ms-checkbox-hint{font-size:var(--text-xs);color:var(--text-secondary);margin:4px 0 0 24px}.ms-stats-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.ms-top-list{display:flex;flex-direction:column;gap:6px}.ms-top-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);background:var(--surface-sunken);font-size:var(--text-sm);color:var(--text-primary);text-decoration:none}a.ms-top-row:hover{background:var(--surface-hover)}.ms-top-row .ms-top-views{margin-left:auto;color:var(--text-secondary);font-variant-numeric:tabular-nums;flex:none}.ms-top-rank{width:22px;flex:none;text-align:right;color:var(--text-tertiary, var(--text-secondary));font-variant-numeric:tabular-nums;font-size:var(--text-xs)}@media (max-width: 640px){.ms-grid{grid-template-columns:1fr 1fr}.ms-modal{max-height:92vh}}.ms-pub-thumb--wrap{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-tertiary, var(--text-secondary));font-size:10px}.ms-pub-thumb--wrap img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.eat{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);overflow:hidden}.eat-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-default);background:var(--surface-sunken)}.eat-head-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.eat-head-count{font-size:var(--text-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.eat-list{max-height:320px;overflow-y:auto;padding:6px}.eat-row{display:flex;align-items:center;gap:7px;min-height:34px;padding-right:10px;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;color:var(--text-primary)}.eat-row:hover{background:var(--surface-hover)}.eat-row--sel,.eat-row--sel:hover{background:var(--color-primary-soft)}.eat-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);cursor:pointer}.eat-count{flex:none;font-size:var(--text-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.eat-check-wrap{flex:none;display:inline-flex;align-items:center;cursor:pointer}.eat-check{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.eat-exp{flex:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm)}.eat-exp:hover{background:var(--surface-sunken);color:var(--text-secondary)}.eat-exp-dot{width:4px;height:4px;border-radius:50%;background:var(--border-strong)}.eat-spin{width:13px;height:13px;border:2px solid var(--border-default);border-top-color:var(--color-primary);border-radius:50%;animation:eat-spin .7s linear infinite}@keyframes eat-spin{to{transform:rotate(360deg)}}.eat-empty{min-height:32px;display:flex;align-items:center;gap:6px;padding:0 8px;font-size:var(--text-xs);color:var(--text-tertiary)}.eat-empty--err{color:var(--status-danger)}.eat-retry{border:none;background:transparent;color:var(--color-primary);font-size:var(--text-xs);font-weight:600;cursor:pointer;padding:0}.axp-field{padding:16px 0;border-bottom:1px solid var(--border-subtle, var(--border-default))}.axp-field:first-child{padding-top:0}.axp-field:last-of-type{border-bottom:none}.axp-field-label{font-size:var(--text-sm);font-weight:700;color:var(--text-primary);margin-bottom:10px}.axp-sublabel{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);margin:14px 0 8px}.axp-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin:6px 0 0}.axp-error{font-size:var(--text-xs);color:var(--status-danger);margin:8px 0 0}.axp-tree{margin-top:12px}.axp-row-checks{display:flex;flex-wrap:wrap;gap:18px 24px;align-items:center}.axp-radios{display:flex;flex-wrap:wrap;gap:8px 20px}.axp-radio{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-sm);color:var(--text-primary);cursor:pointer}.axp-radio input{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.axp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.axp-estimate{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:14px;padding:12px 14px;background:var(--surface-sunken);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary)}.axp-estimate-content{color:var(--text-secondary)}.axp-estimate-approx{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic}.axp-jobs-section{margin-top:28px}.axp-jobs-title{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin:0 0 14px}.axp-jobs{display:flex;flex-direction:column;gap:12px}.axp-jobs-empty{padding:24px 16px;text-align:center;color:var(--text-tertiary);font-size:var(--text-sm);background:var(--surface-sunken);border-radius:var(--radius-md)}.axp-jobs-empty--err{color:var(--status-danger)}.axp-job{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);padding:14px 16px}.axp-job-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.axp-job-title{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.axp-job-id{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);font-variant-numeric:tabular-nums}.axp-job-phase,.axp-job-created{font-size:var(--text-xs);color:var(--text-tertiary)}.axp-progress{position:relative;height:8px;margin:12px 0 4px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}.axp-progress-bar{height:100%;background:var(--color-primary);border-radius:var(--radius-pill);transition:width var(--duration-normal, .3s) ease}.axp-progress-label{position:absolute;right:0;top:10px;font-size:var(--text-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.axp-job-error{margin-top:10px;padding:8px 10px;background:#fdebec;color:var(--status-danger);border-radius:var(--radius-sm);font-size:var(--text-xs)}.axp-job-result{margin-top:12px}.axp-job-summary{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--text-sm);color:var(--text-primary);margin-bottom:10px}.axp-job-counts,.axp-job-expires{color:var(--text-secondary);font-size:var(--text-xs)}.axp-parts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.axp-part{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:var(--surface-sunken);border-radius:var(--radius-sm)}.axp-part-link{font-size:var(--text-sm);font-weight:600;color:var(--color-primary);text-decoration:none}.axp-part-link:hover{text-decoration:underline}.axp-part-size{font-size:var(--text-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums}.axp-part-expires{margin-left:auto;font-size:var(--text-xs);color:var(--text-tertiary)}.axp-warnings{margin-top:10px;font-size:var(--text-xs);color:var(--text-secondary)}.axp-warnings summary{cursor:pointer;color:var(--status-warning, var(--text-secondary))}.axp-warnings ul{margin:6px 0 0;padding-left:18px}.axp-job-actions{display:flex;gap:8px;margin-top:14px}.axp-link{border:none;background:transparent;color:var(--color-primary);font-size:inherit;font-weight:600;cursor:pointer;padding:0}.pvo-summary-card .pvo-intro{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 10px}.pvo-summary{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin:0}.pvo-section{margin-top:16px}.pvo-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pvo-section-title{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:8px}.pvo-count{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);background:var(--surface-sunken);border-radius:var(--radius-pill);padding:1px 8px}.pvo-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin:6px 0 0}.pvo-list{margin-top:12px;display:flex;flex-direction:column}.pvo-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-subtle, var(--border-default))}.pvo-row:last-child{border-bottom:none}.pvo-row-main{min-width:0}.pvo-row-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px;flex-wrap:wrap;overflow-wrap:anywhere}.pvo-row-meta{margin-top:3px;font-size:var(--text-xs);color:var(--text-tertiary);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pvo-row-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.pvo-link{color:var(--color-primary);text-decoration:none}.pvo-link:hover{text-decoration:underline}.pvo-manage-link{font-size:var(--text-sm);font-weight:600;color:var(--color-primary);text-decoration:none;white-space:nowrap}.pvo-manage-link:hover{text-decoration:underline}.pvo-empty{margin:12px 0 0;font-size:var(--text-sm);color:var(--text-secondary)}.pvo-unavailable{margin-top:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pvo-unavailable p{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.pvo-skeleton{height:38px;margin-top:10px;border-radius:var(--radius-sm);background:var(--surface-sunken);animation:pvo-pulse 1.2s ease-in-out infinite}@keyframes pvo-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (max-width: 560px){.pvo-row{flex-direction:column;align-items:flex-start;gap:8px}}.referrals-loading{display:flex;justify-content:center;padding:4rem 0}.referrals-section-title{margin:0 0 .5rem;font-size:var(--text-lg, 1.05rem);font-weight:600;color:var(--text-primary, var(--text))}.referrals-hint{margin:0 0 .75rem;font-size:var(--text-sm, .875rem);color:var(--text-secondary, var(--text-2))}.referrals-linkrow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.referrals-link-url{flex:1 1 260px;min-width:0;padding:.5rem .75rem;border-radius:var(--radius-sm, 8px);background:var(--surface-sunken, rgba(0, 0, 0, .04));font-size:var(--text-sm, .85rem);overflow-wrap:anywhere}.referrals-error{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.referrals-error p{margin:0;color:var(--text-secondary, var(--text-2))}.referrals-disabled{text-align:center;padding:2rem 1rem}.referrals-disabled h2{margin:0 0 .5rem}.referrals-disabled p{margin:0;color:var(--text-secondary, var(--text-2))}.referrals-progress-label{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.referrals-overflow{font-size:var(--text-sm, .85rem);color:var(--text-secondary, var(--text-2))}.referrals-progress-bar{height:8px;border-radius:var(--radius-pill, 999px);background:var(--surface-sunken, rgba(0, 0, 0, .06));overflow:hidden;margin-bottom:1rem}.referrals-progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--accent, var(--color-primary));transition:width .3s ease}.referrals-steps{display:flex;gap:2rem;flex-wrap:wrap}.referrals-step{display:flex;flex-direction:column;gap:.15rem}.referrals-step-label{font-size:var(--text-xs, .75rem);color:var(--text-secondary, var(--text-2))}.referrals-myreward{margin:.75rem 0 0;font-size:var(--text-sm, .85rem);color:var(--status-success, #28a745)}.referrals-invitees{list-style:none;margin:0;padding:0}.referrals-invitee{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--border-default, rgba(0, 0, 0, .08))}.referrals-invitee:last-child{border-bottom:none}.referrals-invitee-who{display:flex;flex-direction:column;min-width:0}.referrals-invitee-email{font-size:var(--text-xs, .75rem);color:var(--text-secondary, var(--text-2))}.referrals-invitee-meta{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.referrals-invitee-date{font-size:var(--text-xs, .75rem);color:var(--text-secondary, var(--text-2))}.referrals-empty-title{margin:0 0 .5rem;font-weight:600}.referrals-empty-steps{margin:0;padding-left:1.25rem;color:var(--text-secondary, var(--text-2));font-size:var(--text-sm, .875rem);display:flex;flex-direction:column;gap:.25rem}@media (max-width: 600px){.referrals-invitee{flex-direction:column;align-items:flex-start;gap:.25rem}}.circle-event-card,.circle-group-card,.circle-composer-collapsed,.circle-composer-story,.circle-composer-photo,.circle-post-author{height:auto}.circle-page{max-width:720px;margin:0 auto;padding:1rem}.circle-loading{display:flex;justify-content:center;padding:3rem 0}.circle-onboarding{display:flex;justify-content:center;padding:2rem 0}.circle-onboarding-card{max-width:460px;width:100%;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg, 12px);padding:2rem;text-align:center}.circle-onboarding-icon{color:var(--color-primary);margin-bottom:.75rem}.circle-onboarding-card h1{margin:0 0 .5rem;font-size:1.4rem}.circle-onboarding-lead{color:var(--text-secondary);margin:0 0 1rem}.circle-onboarding-points{list-style:none;margin:0 0 1.5rem;padding:0;text-align:left;display:grid;gap:.5rem}.circle-onboarding-points li{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:var(--text-sm)}.circle-onboarding-points li svg{color:var(--color-primary);flex:none}.circle-onboarding-form{display:grid;gap:1rem;text-align:left}.circle-field{display:grid;gap:.35rem}.circle-field>span{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.circle-hint{font-size:.8rem;color:var(--text-secondary);margin:.25rem 0 0}.circle-hint--bad{color:var(--status-danger, #d13438)}.circle-h2{font-size:1.05rem;margin:1.5rem 0 .75rem}.circle-h2--danger{color:var(--status-danger, #d13438)}.circle-section{padding-bottom:2rem}.circle-list{display:grid;gap:.5rem}.circle-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md, 8px)}.circle-avatar{width:40px;height:40px;flex:none;border-radius:50%;background:var(--color-primary);color:var(--text-on-primary, #fff);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem}.circle-avatar--lg{width:56px;height:56px;font-size:1.1rem}.circle-row-main{flex:1;min-width:0}.circle-row-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.circle-row-handle{font-size:var(--text-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.circle-row-actions{display:flex;gap:.35rem;flex:none;flex-wrap:wrap;justify-content:flex-end}.circle-tag{font-size:.8rem;color:var(--text-secondary);background:var(--surface-sunken, rgba(0, 0, 0, .05));border-radius:999px;padding:.25rem .7rem;white-space:nowrap}.circle-empty{display:grid;justify-items:center;gap:.5rem;padding:2rem 1rem;color:var(--text-secondary);text-align:center}.circle-empty p{margin:0}.circle-search{display:flex;gap:.5rem}.circle-lookup-hit,.circle-lookup-miss{margin-top:.75rem}.circle-lookup-miss{padding:.75rem 1rem;border:1px dashed var(--border-default);border-radius:var(--radius-md, 8px);color:var(--text-secondary);font-size:var(--text-sm)}.circle-settings-card{display:grid;gap:.9rem;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg, 12px);padding:1.25rem}.circle-settings-identity{display:flex;align-items:center;gap:.9rem}@media (max-width: 480px){.circle-row{flex-wrap:wrap}.circle-row-actions{width:100%;justify-content:flex-end}}.circle-feed,.circle-feed-list{display:flex;flex-direction:column;gap:16px}.circle-feed-more{display:flex;justify-content:center;padding:4px 0 16px}.circle-empty--feed{padding:48px 16px}.circle-friends-strip{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:thin}.circle-friends-strip-item{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:10px;min-width:64px;color:inherit}.circle-friends-strip-item:hover{background:var(--color-bg-hover, rgba(0,0,0,.04))}.circle-friends-strip-item span{font-size:12px;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.circle-post{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:14px;padding:16px 18px;scroll-margin-top:72px}.circle-post-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.circle-post-author{display:flex;align-items:center;gap:10px;background:none;border:none;padding:0;cursor:pointer;color:inherit;text-align:left}.circle-post-author-names{display:flex;flex-direction:column}.circle-post-author-name{font-weight:600;font-size:15px}.circle-post-author-name:hover{text-decoration:underline}.circle-post-author-meta{font-size:12.5px;color:var(--color-text-secondary, #6b7280)}.circle-post-head-right{display:flex;align-items:center;gap:6px}.circle-post-actions{display:flex;gap:4px}.circle-post-group-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 9px;border-radius:999px;background:var(--color-primary-bg, rgba(22,119,255,.08));color:var(--color-primary, #1677ff);text-decoration:none}.circle-post-caption{margin:0 0 10px;font-size:15px;white-space:pre-wrap}.circle-post-content{display:flex;flex-direction:column;gap:10px}.circle-post-cover-link{display:block}.circle-post-cover{width:100%;max-height:420px;object-fit:cover;border-radius:10px;display:block;background:var(--color-bg-muted, #f3f4f6)}.circle-post-title{margin:0;font-size:18px;font-weight:650;line-height:1.3}.circle-post-title a{color:inherit;text-decoration:none}.circle-post-title a:hover{text-decoration:underline}.circle-post-text-wrap{position:relative}.circle-post-text{font-size:14.5px;line-height:1.55;color:var(--color-text, #1f2937)}.circle-post-text p{margin:0 0 .7em}.circle-post-text p:last-child{margin-bottom:0}.circle-post-text--clamped{max-height:132px;overflow:hidden;position:relative}.circle-post-text--clamped:after{content:"";position:absolute;left:0;right:0;bottom:0;height:44px;background:linear-gradient(to bottom,transparent,var(--color-surface, #fff))}.circle-post-toggle{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:4px 0 0;cursor:pointer;color:var(--color-primary, #1677ff);font-size:13.5px;font-weight:500}.circle-post-open{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;font-size:13.5px;color:var(--color-primary, #1677ff);text-decoration:none}.circle-post-open:hover{text-decoration:underline}.circle-composer-collapsed{display:flex;align-items:center;gap:10px;width:100%;padding:14px 18px;border-radius:14px;cursor:pointer;background:var(--color-surface, #fff);border:1px dashed var(--color-border, #d1d5db);color:var(--color-text-secondary, #6b7280);font-size:14.5px}.circle-composer-collapsed:hover{border-color:var(--color-primary, #1677ff);color:var(--color-primary, #1677ff)}.circle-composer{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.circle-composer-head{display:flex;align-items:center;justify-content:space-between}.circle-composer-head h3{margin:0;font-size:16px}.circle-composer-close{background:none;border:none;cursor:pointer;padding:4px;color:inherit}.circle-composer-stories{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto}.circle-composer-story{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;padding:9px 12px;border-radius:8px;cursor:pointer;border:1px solid var(--color-border, #e5e7eb);background:none;font-size:14px}.circle-composer-story:hover{border-color:var(--color-primary, #1677ff)}.circle-composer-story--active{border-color:var(--color-primary, #1677ff);background:var(--color-primary-bg, rgba(22,119,255,.08))}.circle-composer-story-title{font-weight:500}.circle-composer-story-meta{font-size:12px;color:var(--color-text-secondary, #6b7280)}.circle-composer-groups{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.circle-composer-groups-label{font-size:13px;color:var(--color-text-secondary, #6b7280);margin-right:4px}.circle-chip{padding:4px 12px;border-radius:999px;font-size:13px;cursor:pointer;border:1px solid var(--color-border, #d1d5db);background:none}.circle-chip--active{border-color:var(--color-primary, #1677ff);background:var(--color-primary-bg, rgba(22,119,255,.08));color:var(--color-primary, #1677ff)}.circle-composer-actions{display:flex;gap:8px}.circle-groups{display:flex;flex-direction:column;gap:14px}.circle-groups-head{display:flex;align-items:center;justify-content:space-between}.circle-groups-head .circle-h2{margin:0}.circle-group-form{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.circle-groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.circle-group-card{display:flex;align-items:center;gap:12px;text-align:left;padding:14px 16px;border-radius:14px;cursor:pointer;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);color:inherit}.circle-group-card:hover{border-color:var(--color-primary, #1677ff)}.circle-group-card-icon{width:44px;height:44px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--color-primary-bg, rgba(22,119,255,.08));color:var(--color-primary, #1677ff)}.circle-group-card-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.circle-group-card-name{font-weight:600;font-size:15px}.circle-group-card-meta{font-size:12.5px;color:var(--color-text-secondary, #6b7280)}.circle-group-page,.circle-friend-feed{display:flex;flex-direction:column;gap:16px}.circle-group-header{display:flex;flex-direction:column;gap:8px}.circle-back{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:none;border:none;cursor:pointer;padding:0;color:var(--color-text-secondary, #6b7280);font-size:13.5px}.circle-back:hover{color:var(--color-primary, #1677ff)}.circle-group-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.circle-group-title{margin:0;font-size:22px}.circle-group-actions{display:flex;gap:6px}.circle-group-members,.circle-group-share{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.circle-h3{margin:0;font-size:14px;font-weight:600;color:var(--color-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.03em}.circle-friend-feed-head{display:flex;align-items:center;gap:14px}.circle-settings-hub{display:flex;flex-direction:column;gap:16px}.circle-tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border, #e5e7eb);overflow-x:auto}.circle-tab{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:10px 14px;font-size:14px;color:var(--color-text-secondary, #6b7280);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.circle-tab--active{color:var(--color-primary, #1677ff);border-bottom-color:var(--color-primary, #1677ff);font-weight:600}.circle-row-lead{display:flex;align-items:center;gap:12px;flex:1;min-width:0;background:none;border:none;padding:0;color:inherit;text-align:left}.circle-row-lead--link{cursor:pointer}.circle-row-lead--link:hover .circle-row-name{text-decoration:underline}@media (max-width: 560px){.circle-post{padding:12px 14px}.circle-post-cover{max-height:300px}.circle-groups-grid{grid-template-columns:1fr}.circle-group-actions{width:100%}}.circle-avatar--img{object-fit:cover;background:var(--color-bg-muted, #f3f4f6);display:block}.circle-avatar--sm{width:28px;height:28px;font-size:.7rem}.circle-avatar--xl{width:96px;height:96px;font-size:1.8rem}.circle-settings-identity-main{display:flex;flex-direction:column;gap:4px;min-width:0}.circle-avatar-actions{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}.circle-post-foot{display:flex;align-items:center;gap:14px;margin-top:12px;padding-top:10px;border-top:1px solid var(--color-border, #f0f1f3)}.circle-post-like-wrap{position:relative;display:inline-flex;align-items:center;gap:2px}.circle-post-action{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:8px;color:var(--color-text-secondary, #6b7280);font-size:13.5px;line-height:1;transition:color .15s,background .15s}.circle-post-action:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05));color:var(--color-text, #1f2937)}.circle-post-action--liked{color:var(--status-danger, #e11d48)}.circle-post-action--liked svg{fill:currentColor}.circle-post-action--open{color:var(--color-primary, #1677ff)}.circle-post-count{background:none;border:none;cursor:pointer;padding:4px;font-size:13.5px;font-weight:600;color:var(--color-text-secondary, #6b7280)}button.circle-post-count:hover{text-decoration:underline}.circle-comments-toggle{position:relative;display:inline-flex}.circle-comments-toggle--slash:after{content:"";position:absolute;left:-2px;top:50%;width:18px;height:1.5px;background:currentColor;transform:rotate(-45deg)}.circle-likers-pop{position:absolute;bottom:calc(100% + 8px);left:0;z-index:30;min-width:200px;max-width:260px;max-height:260px;overflow-y:auto;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:12px;box-shadow:0 8px 28px #00000024;padding:8px;display:flex;flex-direction:column;gap:2px}.circle-likers-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary, #6b7280);padding:2px 6px 6px}.circle-likers-empty{margin:0;padding:2px 6px 6px;font-size:13px;color:var(--color-text-secondary, #6b7280)}.circle-likers-row{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:5px 6px;border-radius:8px;color:inherit;font-size:13.5px;text-align:left}.circle-likers-row:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.circle-comments{margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border, #f0f1f3);display:flex;flex-direction:column;gap:10px}.circle-comments-empty{margin:0;font-size:13.5px;color:var(--color-text-secondary, #6b7280)}.circle-comments-list{display:flex;flex-direction:column;gap:10px}.circle-comment{display:flex;gap:10px;align-items:flex-start}.circle-comment--reply{margin-left:38px}.circle-comment--deleted{font-size:13px;color:var(--color-text-secondary, #9ca3af);font-style:italic;padding:2px 0}.circle-comment-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.circle-comment-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.circle-comment-author{background:none;border:none;padding:0;cursor:pointer;color:inherit;font-weight:600;font-size:13.5px}.circle-comment-author:hover{text-decoration:underline}.circle-comment-meta{font-size:12px;color:var(--color-text-secondary, #6b7280)}.circle-comment-body{font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.circle-comment-actions{display:flex;gap:12px;margin-top:2px}.circle-comment-action{background:none;border:none;padding:0;cursor:pointer;font-size:12.5px;font-weight:500;color:var(--color-text-secondary, #6b7280)}.circle-comment-action:hover{color:var(--color-primary, #1677ff)}.circle-comment-action--danger:hover{color:var(--status-danger, #d13438)}.circle-comment--editing .circle-comment-actions{gap:8px;margin-top:6px}.circle-comments-more{align-self:flex-start;background:none;border:none;cursor:pointer;padding:2px 0;font-size:13px;font-weight:500;color:var(--color-primary, #1677ff)}.circle-comments-disabled{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px;color:var(--color-text-secondary, #6b7280);font-style:italic}.circle-comment-composer{display:flex;flex-direction:column;gap:4px}.circle-comment-replying{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:12.5px;color:var(--color-primary, #1677ff);background:var(--color-primary-bg, rgba(22, 119, 255, .08));border-radius:999px;padding:3px 10px}.circle-comment-replying button{display:inline-flex;background:none;border:none;cursor:pointer;padding:0;color:inherit}.circle-comment-composer-row{display:flex;gap:8px;align-items:flex-end}.circle-comment-composer-row textarea{flex:1}.circle-comments-hint{font-size:11.5px;color:var(--color-text-secondary, #9ca3af)}.circle-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:16px}.circle-modal{width:100%;max-width:640px;max-height:min(84vh,720px);display:flex;flex-direction:column;background:var(--color-surface, #fff);border-radius:16px;box-shadow:0 24px 64px #00000047;overflow:hidden}.circle-modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--color-border, #e5e7eb)}.circle-modal-head h3{margin:0;font-size:16px}.circle-modal-body{flex:1;overflow-y:auto;padding:14px 18px}.circle-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-top:1px solid var(--color-border, #e5e7eb)}.circle-modal-foot-actions{display:flex;gap:8px}.circle-picker-status{display:flex;flex-direction:column;gap:2px;font-size:13px;min-width:0}.circle-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.circle-picker-cell{position:relative;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;cursor:pointer;background:var(--color-bg-muted, #f3f4f6)}.circle-picker-cell img{width:100%;height:100%;object-fit:cover;display:block}.circle-picker-cell--selected{border-color:var(--color-primary, #1677ff)}.circle-picker-cell--selected img{opacity:.82}.circle-picker-noimg{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--color-text-secondary, #9ca3af)}.circle-picker-check{position:absolute;top:6px;right:6px;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:var(--color-primary, #1677ff);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.circle-events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.circle-event-card{display:flex;flex-direction:column;text-align:left;padding:0;border-radius:14px;overflow:hidden;cursor:pointer;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);color:inherit}.circle-event-card:hover{border-color:var(--color-primary, #1677ff)}.circle-event-card-cover{position:relative;height:120px;display:flex;align-items:center;justify-content:center;color:#ffffffe6;background:linear-gradient(135deg,var(--color-primary, #1677ff),#7c5cff)}.circle-event-card-cover img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.circle-event-badge{position:absolute;top:8px;left:8px;z-index:1;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:#0f172ab8;color:#fff}.circle-event-badge--inline{position:static;margin-left:10px;vertical-align:middle}.circle-event-owner-mark{position:absolute;top:8px;right:8px;z-index:1;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ffffffeb;color:#d97706}.circle-event-card-main{display:flex;flex-direction:column;gap:3px;padding:11px 14px 13px}.circle-event-card-name{font-weight:600;font-size:15px}.circle-event-card-dates{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--color-text-secondary, #6b7280)}.circle-event-dates-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.circle-event-dates{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13.5px;color:var(--color-text-secondary, #6b7280)}.circle-event-closed-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;background:var(--surface-sunken, rgba(0, 0, 0, .05));color:var(--color-text-secondary, #6b7280);font-size:13.5px}.circle-event-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.circle-event-photo{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--color-bg-muted, #f3f4f6)}.circle-event-photo-open{display:block;width:100%;height:100%;padding:0;border:none;cursor:pointer;background:none}.circle-event-photo-open img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}.circle-event-photo:hover .circle-event-photo-open img{transform:scale(1.03)}.circle-event-photo-by{position:absolute;left:6px;bottom:6px;pointer-events:none}.circle-event-photo-by .circle-avatar{width:24px;height:24px;font-size:.6rem;border:2px solid rgba(255,255,255,.9);box-shadow:0 1px 4px #0000004d}.circle-event-photo-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;background:#0f172aa6;color:#fff;opacity:0;transition:opacity .15s}.circle-event-photo:hover .circle-event-photo-remove,.circle-event-photo-remove:focus-visible{opacity:1}.circle-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#0a0e16f0;display:flex;align-items:center;justify-content:center}.circle-lightbox-img{max-width:calc(100vw - 32px);max-height:calc(100vh - 120px);object-fit:contain;border-radius:6px}.circle-lightbox-top{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;color:#ffffffeb}.circle-lightbox-counter{font-size:13.5px;font-variant-numeric:tabular-nums}.circle-lightbox-tools{display:flex;gap:4px}.circle-lightbox-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;border-radius:10px;cursor:pointer;background:#ffffff1a;color:inherit}.circle-lightbox-btn:hover{background:#ffffff38}.circle-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:64px;border:none;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;background:#ffffff14;color:#ffffffe6}.circle-lightbox-nav:hover{background:#fff3}.circle-lightbox-nav--prev{left:12px}.circle-lightbox-nav--next{right:12px}.circle-lightbox-bottom{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 16px;text-align:center;color:#ffffffd9;font-size:13.5px}@media (max-width: 560px){.circle-events-grid,.circle-event-dates-row{grid-template-columns:1fr}.circle-event-photos{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}.circle-picker-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.circle-modal-backdrop{padding:0;align-items:stretch}.circle-modal{max-width:none;max-height:none;border-radius:0}.circle-comment--reply{margin-left:24px}.circle-lightbox-nav{width:38px;height:52px}.circle-lightbox-nav--prev{left:4px}.circle-lightbox-nav--next{right:4px}.circle-settings-identity{align-items:flex-start}.circle-event-photo-remove{opacity:1}}.circle-composer-types{display:flex;flex-wrap:wrap;gap:6px}.circle-composer-story-cover{width:40px;height:40px;object-fit:cover;border-radius:6px;flex:none}.circle-composer-story{justify-content:flex-start}.circle-composer-story .circle-composer-story-meta{margin-left:auto}.circle-composer-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px;max-height:220px;overflow-y:auto}.circle-composer-photo{aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:pointer;padding:0;border:2px solid var(--color-border, #e5e7eb);background:var(--color-bg-secondary, #f3f4f6);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #6b7280)}.circle-composer-photo img{width:100%;height:100%;object-fit:cover;display:block}.circle-composer-photo:hover,.circle-composer-photo--active{border-color:var(--color-primary, #1677ff)}.circle-feed-filters{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.circle-feed-filters-types{display:flex;flex-wrap:wrap;gap:6px}.circle-feed-sort{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:13px;color:var(--color-text-secondary, #6b7280);padding:4px 6px;border-radius:6px;flex:none}.circle-feed-sort:hover{color:var(--color-primary, #1677ff)}.circle-handle-edit{display:inline-flex;align-items:center;gap:4px;margin-left:8px;background:none;border:none;cursor:pointer;font-size:12px;color:var(--color-primary, #1677ff);padding:2px 4px;vertical-align:middle}.circle-handle-form{display:flex;flex-direction:column;gap:8px;max-width:320px}.circle-hint--warn{color:var(--color-warning, #d97706)}.circle-report-modal{max-width:440px}.circle-report-hint{margin:0 0 10px;font-size:13px;color:var(--color-text-secondary, #6b7280)}.circle-report-reason{width:100%;resize:vertical;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;padding:8px 10px;font:inherit;font-size:14px}.circle-report-reason:focus{outline:none;border-color:var(--color-primary, #1677ff)}.circle-friend-report{margin-left:auto;align-self:flex-start}.circle-friend-actions{margin-left:auto;display:flex;gap:6px;align-self:flex-start}.circle-dm-list{display:flex;flex-direction:column;gap:2px}.circle-dm-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 8px;background:none;border:none;border-radius:10px;cursor:pointer;text-align:left}.circle-dm-row:hover{background:var(--color-bg-secondary, #f3f4f6)}.circle-dm-row-main{flex:1;min-width:0}.circle-dm-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.circle-dm-row-name{font-weight:600;font-size:14.5px}.circle-dm-row-time{font-size:12px;color:var(--color-text-secondary, #9ca3af);flex:none}.circle-dm-row-preview{font-size:13px;color:var(--color-text-secondary, #6b7280);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.circle-dm-unread{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--color-primary, #1677ff);color:#fff;font-size:11.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.circle-dm-chat{display:flex;flex-direction:column;height:calc(100dvh - 220px);min-height:380px}.circle-dm-chat-head{display:flex;align-items:center;gap:10px;padding:8px 4px 12px;border-bottom:1px solid var(--color-border, #e5e7eb)}.circle-dm-chat-peer{display:flex;flex-direction:column;line-height:1.2}.circle-dm-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:12px 4px}.circle-dm-msg{display:flex}.circle-dm-msg--mine{justify-content:flex-end}.circle-dm-bubble{max-width:78%;padding:8px 12px;border-radius:14px 14px 14px 4px;background:var(--color-bg-secondary, #f3f4f6);font-size:14px}.circle-dm-msg--mine .circle-dm-bubble{background:var(--color-primary-soft, #e6f0ff);border-radius:14px 14px 4px}.circle-dm-bubble p{margin:0;white-space:pre-wrap;word-break:break-word}.circle-dm-msg-time{display:block;margin-top:2px;font-size:10.5px;text-align:right;color:var(--color-text-secondary, #9ca3af)}.circle-dm-composer{display:flex;gap:8px;align-items:flex-end;padding-top:10px;border-top:1px solid var(--color-border, #e5e7eb)}.circle-dm-composer textarea{flex:1}@media (max-width: 720px){.circle-dm-chat{height:calc(100dvh - 190px)}}.pbr-page{min-height:100vh;min-height:100dvh;background:var(--bg, #f6f7f9);display:flex;flex-direction:column}.pbr-header{max-width:960px;width:100%;margin:0 auto;padding:28px 24px 12px;box-sizing:border-box}.pbr-title{font-family:"Bricolage Grotesque",var(--font-sans, system-ui);font-size:clamp(22px,4.5vw,34px);font-weight:750;letter-spacing:-.025em;margin:0 0 6px;color:var(--text, #16181d);line-height:1.12}.pbr-desc{margin:0 0 4px;color:var(--muted, #6b7280);font-size:15px;line-height:1.5;max-width:640px}.pbr-toc{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px}.pbr-toc-label{font-size:12px;font-weight:600;color:var(--muted, #6b7280);text-transform:uppercase;letter-spacing:.04em;margin-right:4px}.pbr-toc-chip{border:1px solid var(--border, #e2e5ea);background:var(--panel, #fff);color:var(--text, #16181d);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:550;cursor:pointer;transition:border-color .15s,color .15s;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pbr-toc-chip:hover{border-color:var(--accent, #1677ff);color:var(--accent, #1677ff)}.pbr-book{flex:1;min-height:480px;height:calc(100vh - 170px)}.pbr-error{text-align:center;padding:100px 24px;color:var(--muted, #6b7280)}.pbr-error h1{font-size:22px;color:var(--text, #16181d);margin:0 0 12px}.pbr-footer{padding:20px 0;text-align:center;font-size:12px;color:var(--muted, #6b7280);opacity:.5}@media (max-width: 600px){.pbr-header{padding:20px 16px 8px}.pbr-book{height:calc(100vh - 210px)}}.chat-sidebar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:9}.chat-sidebar{position:absolute;top:0;left:0;bottom:0;width:280px;background:var(--panel-solid);border-right:1px solid var(--border);transform:translate(-100%);transition:transform .2s ease;z-index:10;display:flex;flex-direction:column;overflow:hidden}.chat-sidebar--open{transform:translate(0)}.chat-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.chat-sidebar-header h3{font-size:.9375rem;font-weight:600;margin:0}.chat-sidebar-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm)}.chat-sidebar-close:hover{background:var(--row-hover);color:var(--text)}.chat-sidebar-new-btn{margin:8px 12px;height:var(--control-h);border:1px dashed var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--accent);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.chat-sidebar-new-btn:hover{background:var(--accent-light);border-color:var(--accent)}.chat-sidebar-list{flex:1;overflow-y:auto;padding:4px 0}.chat-sidebar-empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:.8125rem}.chat-sidebar-item{display:flex;align-items:center;gap:4px;padding:8px 12px;margin:0 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);min-height:40px}.chat-sidebar-item:hover{background:var(--row-hover)}.chat-sidebar-item--active,.chat-sidebar-item--active:hover{background:var(--accent-light)}.chat-sidebar-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-sidebar-item-title{font-size:.8125rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-sidebar-item-meta{font-size:.6875rem;color:var(--muted);display:flex;align-items:center;gap:4px}.chat-sidebar-page-badge{font-size:.75rem;line-height:1;flex-shrink:0}.chat-sidebar-item-actions{display:none;gap:2px;flex-shrink:0}.chat-sidebar-item:hover .chat-sidebar-item-actions{display:flex}.chat-sidebar-item-actions button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm)}.chat-sidebar-item-actions button:hover{background:var(--panel-solid);color:var(--text)}.chat-sidebar-delete-btn:hover{color:var(--danger)!important}.chat-sidebar-rename-input{flex:1;height:28px;padding:0 8px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:.8125rem;outline:none}@media (max-width: 768px){.chat-sidebar{width:100%}}.ai-chat-page{display:flex;flex-direction:column;height:calc(100vh - 120px);max-width:900px;margin:0 auto;background:var(--panel-solid);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;position:relative}.ai-chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.ai-chat-header-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.ai-chat-header-left h2{font-size:1.125rem;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-chat-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.ai-chat-sidebar-toggle{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0}.ai-chat-sidebar-toggle:hover{background:var(--row-hover);color:var(--text)}.ai-chat-new-btn{padding:6px 14px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:.8125rem;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.ai-chat-new-btn:hover{background:var(--accent-hover)}.ai-chat-clear-btn{padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:.8125rem;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.ai-chat-clear-btn:hover{background:var(--color-error-bg);color:var(--danger);border-color:var(--danger)}.ai-chat-body{flex:1;overflow-y:auto;display:flex;flex-direction:column}.ai-chat-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.ai-chat-welcome h3{font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.ai-chat-welcome p{color:var(--muted);font-size:.9375rem;max-width:420px;margin:0 0 1.5rem;line-height:1.5}.ai-chat-examples{display:flex;flex-direction:column;gap:8px;width:100%;max-width:400px}.ai-chat-examples button{padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field-bg);color:var(--text);font-size:.875rem;text-align:left;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.ai-chat-examples button:hover{background:var(--accent-light);border-color:var(--accent)}.ai-chat-error{padding:8px 16px;background:var(--color-error-bg);color:var(--color-error-text);font-size:.8125rem;text-align:center;flex-shrink:0}@media (max-width: 768px){.ai-chat-page{height:calc(100vh - 100px);border-radius:0;border-left:none;border-right:none;max-width:100%}.ai-chat-welcome{padding:1.5rem 1rem}.ai-chat-examples button{font-size:.8125rem}}._container_ox7bg_2{max-width:1280px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-md)}._loading_ox7bg_8{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-secondary)}._hero_ox7bg_16{text-align:center;margin-bottom:48px}._title_ox7bg_21{font-size:36px;font-weight:700;color:var(--color-text-primary);margin:0 0 12px;line-height:1.1}._subtitle_ox7bg_29{font-size:18px;color:var(--color-text-secondary);margin:0;line-height:1.5}._grid_ox7bg_37{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}._familyCard_ox7bg_43{padding:32px 24px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-primary);cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .15s;text-align:center}._familyCard_ox7bg_43:hover{border-color:var(--color-primary);box-shadow:0 4px 20px #00000014;transform:translateY(-2px)}._cardIcon_ox7bg_59{width:80px;height:80px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center}._cardIcon_ox7bg_59 img{max-width:100%;max-height:100%}._iconPlaceholder_ox7bg_73{width:80px;height:80px;border-radius:50%;background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:var(--color-primary)}._cardTitle_ox7bg_86{font-size:22px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}._cardDesc_ox7bg_93{font-size:14px;color:var(--color-text-secondary);margin:0 0 16px;line-height:1.5}._cardAction_ox7bg_100{font-size:14px;font-weight:600;color:var(--color-primary)}@media (max-width: 768px){._title_ox7bg_21{font-size:28px}._grid_ox7bg_37{grid-template-columns:1fr}}._hero_bvxa0_4{text-align:center;padding:40px 0}._heroTitle_bvxa0_9{font-size:36px;font-weight:700;color:var(--color-text-primary);margin:0 0 12px;line-height:1.1}._heroSubtitle_bvxa0_17{font-size:18px;color:var(--color-text-secondary);line-height:1.5;max-width:600px;margin:0 auto 24px}._featureIcons_bvxa0_27{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:32px}._featureItem_bvxa0_35{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--color-text-secondary)}._featureIcon_bvxa0_27{font-size:20px}._featureLabel_bvxa0_47{max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._heroCta_bvxa0_54{display:flex;align-items:center;justify-content:center;gap:16px}._heroButton_bvxa0_61{padding:14px 48px;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .15s}._heroButton_bvxa0_61:hover:not(:disabled){opacity:.9}._heroButton_bvxa0_61:disabled{opacity:.5;cursor:default}._heroPrice_bvxa0_82{font-size:16px;color:var(--color-text-secondary)}._section_bvxa0_88{margin-top:48px}._sectionTitle_bvxa0_92{font-size:22px;font-weight:600;color:var(--color-text-primary);margin:0 0 20px}._charGrid_bvxa0_100{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}._charItem_bvxa0_106{padding:16px;border:1px solid var(--color-border);border-radius:8px}._charLabel_bvxa0_112{display:block;font-size:12px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}._charValue_bvxa0_121{font-size:16px;font-weight:600;color:var(--color-text-primary)}._specTable_bvxa0_128{width:100%;border-collapse:collapse}._specTable_bvxa0_128 tr{border-bottom:1px solid var(--color-border)}._specTable_bvxa0_128 tr:last-child{border-bottom:none}._specLabel_bvxa0_141{padding:12px 16px 12px 0;font-size:14px;color:var(--color-text-secondary);width:35%;vertical-align:top}._specValue_bvxa0_149{padding:12px 0;font-size:14px;font-weight:500;color:var(--color-text-primary)}._optionsList_bvxa0_157{display:flex;flex-direction:column;gap:16px}._optionItem_bvxa0_163{padding:16px;border:1px solid var(--color-border);border-radius:8px}._optionLabel_bvxa0_169{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}._optionChoices_bvxa0_176{display:flex;gap:8px;flex-wrap:wrap}._optionChoice_bvxa0_176{padding:4px 12px;border-radius:16px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:13px}._reqGrid_bvxa0_191{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}._reqItem_bvxa0_197{padding:12px 16px;border:1px solid var(--color-border);border-radius:6px}._reqLabel_bvxa0_203{display:block;font-size:12px;color:var(--color-text-secondary);margin-bottom:4px}._reqValue_bvxa0_210{font-size:15px;font-weight:600;color:var(--color-text-primary)}._tips_bvxa0_216{grid-column:1 / -1;margin-top:8px}._tip_bvxa0_216{font-size:13px;color:var(--color-text-secondary);line-height:1.5;margin:4px 0;padding-left:12px;border-left:2px solid var(--color-border)}@media (max-width: 768px){._heroTitle_bvxa0_9{font-size:28px}._featureIcons_bvxa0_27{gap:12px}._charGrid_bvxa0_100,._reqGrid_bvxa0_191{grid-template-columns:1fr}._specLabel_bvxa0_141{width:40%}}._container_osfdd_2{max-width:1280px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}._loading_osfdd_8,._error_osfdd_9{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-secondary)}._error_osfdd_9{color:var(--color-error)}._specSelector_osfdd_22{margin-top:48px}._sectionTitle_osfdd_26{font-size:22px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}._specGrid_osfdd_33{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}._specCard_osfdd_39{padding:16px;border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .2s;text-align:center}._specCard_osfdd_39:hover{border-color:var(--color-primary)}._specActive_osfdd_52{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb, 33, 150, 243),.04)}._specName_osfdd_57{display:block;font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}._specDimensions_osfdd_65{font-size:12px;color:var(--color-text-secondary)}._bottomCta_osfdd_71{margin-top:48px;padding:32px;text-align:center;border-top:1px solid var(--color-border)}._ctaButton_osfdd_78{padding:14px 48px;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .15s}._ctaButton_osfdd_78:hover:not(:disabled){opacity:.9}._ctaButton_osfdd_78:disabled{opacity:.5;cursor:default}._ctaPrice_osfdd_99{display:block;margin-top:8px;font-size:14px;color:var(--color-text-secondary)}._canvasWrapper_qc0da_2{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;background:var(--color-bg-tertiary)}._loading_qc0da_16{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-secondary);font-size:14px;z-index:10}._dropActive_qc0da_26{outline:2px dashed var(--color-primary);outline-offset:-2px}._dropOverlay_qc0da_31{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:rgba(var(--color-primary-rgb, 59, 130, 246),.08);pointer-events:none;z-index:10}._dropOverlay_qc0da_31 span{padding:12px 24px;background:var(--color-bg-primary);border-radius:8px;color:var(--color-primary);font-weight:600;box-shadow:var(--shadow-md)}._toolbar_1d10m_2{display:flex;align-items:center;padding:4px var(--spacing-sm);background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);gap:2px;flex-shrink:0;min-height:44px;overflow-x:auto}._toolbarGroup_1d10m_14{display:flex;align-items:center;gap:2px;flex-shrink:0}._backButton_1d10m_21{padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:13px;white-space:nowrap}._backButton_1d10m_21:hover{color:var(--color-text-primary)}._title_1d10m_35{font-size:14px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}._toolBtn_1d10m_45{display:flex;align-items:center;gap:4px;padding:6px 8px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;font-size:12px;transition:background .1s,border-color .1s;min-height:32px}._toolBtn_1d10m_45:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border)}._toolBtn_1d10m_45:disabled{opacity:.35;cursor:not-allowed}._toolDanger_1d10m_70:hover:not(:disabled){color:var(--color-error)}._toolLabel_1d10m_74{font-size:12px}._separator_1d10m_78{width:1px;height:20px;background:var(--color-border);margin:0 4px;flex-shrink:0}._pageInfo_1d10m_86{font-size:12px;color:var(--color-text-secondary);white-space:nowrap;margin:0 4px}._zoomValue_1d10m_94{font-size:11px;color:var(--color-text-secondary);min-width:36px;text-align:center;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}._colorPickerWrap_1d10m_104{position:relative;display:flex;align-items:center;cursor:pointer}._colorPicker_1d10m_104{position:absolute;opacity:0;width:0;height:0;padding:0;border:none}._colorSwatch_1d10m_120{display:block;width:24px;height:24px;border-radius:6px;border:2px solid var(--color-border);transition:border-color .15s}._colorPickerWrap_1d10m_104:hover ._colorSwatch_1d10m_120{border-color:var(--color-text-secondary)}._cartButton_1d10m_134{padding:6px 16px;border:none;border-radius:6px;background:var(--color-primary);color:#fff;cursor:pointer;font-size:13px;font-weight:600;transition:opacity .15s;white-space:nowrap;display:flex;align-items:center;gap:8px}._cartButton_1d10m_134:hover:not(:disabled){opacity:.9}._cartButton_1d10m_134:disabled{opacity:.5;cursor:default}._priceTag_1d10m_159{padding:2px 8px;background:#fff3;border-radius:4px;font-size:12px}._navigator_1nhr0_2{display:flex;align-items:center;padding:6px var(--spacing-sm);background:var(--color-bg-primary);border-top:1px solid var(--color-border);flex-shrink:0;overflow-x:auto}._pageList_1nhr0_12{display:flex;gap:6px;align-items:center}._pageThumb_1nhr0_18{flex-shrink:0;display:flex;flex-direction:column;align-items:center;cursor:pointer;border:2px solid transparent;border-radius:4px;padding:4px;transition:border-color .15s;position:relative}._pageThumb_1nhr0_18:hover{border-color:var(--color-border)}._pageThumb_1nhr0_18._active_1nhr0_35{border-color:var(--color-primary)}._pagePreview_1nhr0_39{width:60px;height:40px;background:#f5f5f5;border:1px solid var(--color-border);border-radius:2px;display:flex;align-items:center;justify-content:center}._photoCount_1nhr0_50{font-size:14px;font-weight:600;color:var(--color-text-secondary)}._emptyIndicator_1nhr0_56{width:8px;height:8px;border:1px dashed var(--color-border);border-radius:50%}._pageLabel_1nhr0_63{font-size:10px;color:var(--color-text-secondary);margin-top:2px;white-space:nowrap}._removeBtn_1nhr0_70{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:10px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center}._pageThumb_1nhr0_18:hover ._removeBtn_1nhr0_70{display:flex}._addPageBtn_1nhr0_92{flex-shrink:0;width:60px;height:40px;border:1px dashed var(--color-border);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);font-size:18px;transition:border-color .15s,color .15s;margin:4px 0}._addPageBtn_1nhr0_92:hover{border-color:var(--color-primary);color:var(--color-primary)}._panel_7tq5d_2{padding:var(--spacing-sm);overflow-y:auto}._panelHeader_7tq5d_7{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}._panelTitle_7tq5d_14{font-size:13px;font-weight:600;color:var(--color-text-primary);margin:0;text-transform:uppercase;letter-spacing:.5px}._filterRow_7tq5d_23{margin-bottom:var(--spacing-xs)}._select_7tq5d_27{width:100%;padding:6px 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:13px;outline:none}._select_7tq5d_27:focus{border-color:var(--color-primary)}._searchInput_7tq5d_42{width:100%;padding:6px 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:13px;outline:none;box-sizing:border-box}._searchInput_7tq5d_42:focus{border-color:var(--color-primary)}._photoGrid_7tq5d_59{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:var(--spacing-xs)}._photoThumb_7tq5d_66{aspect-ratio:1;overflow:hidden;border-radius:4px;cursor:pointer;border:2px solid transparent;transition:border-color .15s}._photoThumb_7tq5d_66:hover{border-color:var(--color-primary)}._photoThumb_7tq5d_66 img{width:100%;height:100%;object-fit:cover}._templateGrid_7tq5d_86{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:var(--spacing-xs)}._templateCard_7tq5d_93{border:1px solid var(--color-border);border-radius:4px;overflow:hidden;cursor:pointer;transition:border-color .15s,box-shadow .15s}._templateCard_7tq5d_93:hover{border-color:var(--color-primary);box-shadow:0 1px 4px #0000001a}._templateCard_7tq5d_93 img{width:100%;aspect-ratio:4/3;object-fit:cover}._templatePlaceholder_7tq5d_112{width:100%;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:12px}._templateName_7tq5d_123{display:block;padding:4px 6px;font-size:11px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._properties_7tq5d_134{display:flex;flex-direction:column;gap:8px;margin-top:var(--spacing-sm)}._propLabel_7tq5d_141{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;margin-top:4px}._colorInput_7tq5d_149{width:100%;height:32px;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;padding:2px}._buttonGroup_7tq5d_158{display:flex;gap:2px}._styleBtn_7tq5d_163{padding:4px 10px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;font-size:13px;font-weight:600;transition:background-color .15s}._styleBtn_7tq5d_163:hover{background:var(--color-bg-secondary)}._styleBtn_7tq5d_163._active_7tq5d_179{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}._addButton_7tq5d_186{width:100%;padding:8px;border:1px dashed var(--color-border);border-radius:4px;background:transparent;color:var(--color-primary);cursor:pointer;font-size:13px;font-weight:500;transition:background-color .15s}._addButton_7tq5d_186:hover{background:var(--color-bg-secondary)}._optionGroup_7tq5d_204{margin-bottom:var(--spacing-sm)}._checkLabel_7tq5d_208{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-primary);cursor:pointer}._priceBlock_7tq5d_218{margin-top:var(--spacing-md);padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary)}._priceLabel_7tq5d_226{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;margin-bottom:4px}._priceTotal_7tq5d_234{font-size:24px;font-weight:700;color:var(--color-text-primary);margin-bottom:8px}._priceRow_7tq5d_241{display:flex;justify-content:space-between;font-size:12px;color:var(--color-text-secondary);padding:2px 0}._priceLoading_7tq5d_249{font-size:11px;color:var(--color-text-secondary);font-style:italic;margin-top:4px}._loading_7tq5d_257,._empty_7tq5d_258{text-align:center;padding:var(--spacing-md);color:var(--color-text-secondary);font-size:13px}._assetPlaceholder_7tq5d_265{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:10px;text-transform:uppercase}._sidebarTabs_7tq5d_278{display:flex;border-bottom:1px solid var(--color-border);background:var(--color-bg-primary);flex-shrink:0}._sidebarTab_7tq5d_278{flex:1;padding:8px 4px;border:none;background:transparent;color:var(--color-text-secondary);font-size:11px;cursor:pointer;text-align:center;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap}._sidebarTab_7tq5d_278:hover{color:var(--color-text-primary)}._sidebarTab_7tq5d_278._active_7tq5d_179{color:var(--color-primary);border-bottom-color:var(--color-primary)}._warnings_udaoq_2{padding:var(--spacing-sm);display:flex;flex-direction:column;gap:4px}._header_udaoq_9{font-size:12px;font-weight:600;color:var(--color-error);margin-bottom:4px}._warning_udaoq_2{display:flex;align-items:flex-start;gap:6px;padding:6px 8px;border-radius:4px;font-size:12px;line-height:1.4}._warning_udaoq_2._error_udaoq_26{background:#f4433614;color:#c62828}._warning_udaoq_2._warning_udaoq_2{background:#ff980014;color:#e65100}._warning_udaoq_2._info_udaoq_36{background:#2196f314;color:#1565c0}._icon_udaoq_41{flex-shrink:0;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}._error_udaoq_26 ._icon_udaoq_41{background:#f4433626;color:#c62828}._warning_udaoq_2 ._icon_udaoq_41{background:#ff980026;color:#e65100}._info_udaoq_36 ._icon_udaoq_41{background:#2196f326;color:#1565c0}._message_udaoq_68{flex:1}._container_jacv2_2{display:flex;flex-direction:column;height:calc(100dvh - 92px);max-height:calc(100dvh - 92px);overflow:hidden;background:var(--color-bg-tertiary);margin:-24px}._loading_jacv2_12,._error_jacv2_13{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary);gap:16px}._error_jacv2_13{color:var(--color-error)}._error_jacv2_13 button{padding:8px 20px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer}._workArea_jacv2_37{display:flex;flex:1;overflow:hidden;position:relative}._canvasArea_jacv2_45{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;padding:var(--spacing-md);position:relative;background:var(--color-bg-tertiary);background-image:linear-gradient(45deg,rgba(0,0,0,.04) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.04) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.04) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.04) 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}._leftPanelContent_jacv2_65{display:flex;flex-direction:column;height:100%;overflow:hidden}._tabBar_jacv2_72{display:flex;gap:0;border-bottom:1px solid var(--color-border);flex-shrink:0}._tabButton_jacv2_79{flex:1;padding:8px 4px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);cursor:pointer;font-size:12px;font-weight:500;white-space:nowrap;transition:color .15s,border-color .15s}._tabButton_jacv2_79:hover{color:var(--color-text-primary)}._tabActive_jacv2_97{color:var(--color-primary);border-bottom-color:var(--color-primary)}._tabContent_jacv2_102{flex:1;overflow-y:auto}._rightPanelContent_jacv2_108{display:flex;flex-direction:column;height:100%;overflow:hidden}._layersPanelSection_jacv2_115{flex:1 1 0;min-height:120px;overflow:hidden}@media (max-width: 768px){._container_jacv2_2{margin:-16px}}@media (max-width: 480px){._container_jacv2_2{margin:-12px}}._container_1m8z8_2{max-width:1280px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}._header_1m8z8_8{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}._title_1m8z8_15{font-size:28px;font-weight:700;color:var(--color-text-primary);margin:0}._createBtn_1m8z8_22{padding:10px 24px;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}._createBtn_1m8z8_22:hover{opacity:.9}@media (max-width: 768px){._header_1m8z8_8{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}._createBtn_1m8z8_22{align-self:stretch}}._loading_1m8z8_52{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-secondary)}._empty_1m8z8_60{text-align:center;padding:60px 0;color:var(--color-text-secondary)}._empty_1m8z8_60 p{margin-bottom:16px;font-size:16px}._grid_1m8z8_72{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}._card_1m8z8_78{border:1px solid var(--color-border);border-radius:8px;overflow:hidden;background:var(--color-bg-primary);cursor:pointer;transition:box-shadow .2s,border-color .2s;position:relative}._card_1m8z8_78:hover{border-color:var(--color-primary);box-shadow:0 2px 12px #00000014}._cardPreview_1m8z8_93{aspect-ratio:4/3;background:var(--color-bg-secondary);overflow:hidden}._cardPreview_1m8z8_93 img{width:100%;height:100%;object-fit:cover}._cardPlaceholder_1m8z8_105{width:100%;height:100%;background:linear-gradient(135deg,#f0f0f0,#e0e0e0)}._cardBody_1m8z8_111{padding:12px}._cardTitle_1m8z8_115{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._status_1m8z8_125{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;background:var(--color-bg-secondary);color:var(--color-text-secondary)}._status_draft_1m8z8_135{background:#f5f5f5;color:#757575}._status_editing_1m8z8_136{background:#e3f2fd;color:#1565c0}._status_ready_1m8z8_137{background:#e8f5e9;color:#2e7d32}._status_in_cart_1m8z8_138{background:#fff3e0;color:#e65100}._status_ordered_1m8z8_139{background:#ede7f6;color:#4527a0}._status_completed_1m8z8_140{background:#e8f5e9;color:#1b5e20}._cardMeta_1m8z8_142{display:block;margin-top:4px;font-size:12px;color:var(--color-text-secondary)}._cardActions_1m8z8_149{position:absolute;top:8px;right:8px;display:none;gap:4px}._card_1m8z8_78:hover ._cardActions_1m8z8_149{display:flex}._actionBtn_1m8z8_161{padding:4px 8px;border:1px solid rgba(0,0,0,.1);border-radius:4px;background:#ffffffe6;color:var(--color-text-secondary);font-size:11px;cursor:pointer}._actionBtn_1m8z8_161:hover{background:#fff;color:var(--color-text-primary)}.home-page{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden}.home-ambient{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.home-orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.18;will-change:transform}.home-orb--a{width:600px;height:600px;top:-12%;left:-5%;background:radial-gradient(circle,var(--accent) 0%,transparent 70%);animation:orbDrift1 25s ease-in-out infinite}.home-orb--b{width:500px;height:500px;bottom:-8%;right:-6%;background:radial-gradient(circle,var(--accent-2) 0%,transparent 70%);animation:orbDrift2 30s ease-in-out infinite}@keyframes orbDrift1{0%,to{transform:translate(0) scale(1)}25%{transform:translate(40px,30px) scale(1.08)}50%{transform:translate(20px,-20px) scale(.95)}75%{transform:translate(-30px,10px) scale(1.04)}}@keyframes orbDrift2{0%,to{transform:translate(0) scale(1)}25%{transform:translate(-30px,-25px) scale(1.05)}50%{transform:translate(-10px,40px) scale(.96)}75%{transform:translate(25px,-15px) scale(1.02)}}.home-topbar{position:sticky;top:0;z-index:10;background:var(--panel);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border)}.home-topbar-inner{max-width:1080px;margin:0 auto;padding:10px var(--content-gutter);display:flex;align-items:center;justify-content:space-between;gap:16px}.home-brand{display:flex;align-items:center;gap:10px}.home-brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#5856d6);color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #1677ff4d;letter-spacing:-.5px;flex-shrink:0}.home-brand-name{font-weight:700;font-size:16px;letter-spacing:-.3px}.home-nav{display:flex;align-items:center;gap:10px}.home-lang-pills{display:flex;background:var(--field-bg);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}.home-lang-pill{height:28px;padding:0 10px;border-radius:7px;font-size:12px;font-weight:700;color:var(--muted);border:none;background:transparent;cursor:pointer;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal)}.home-lang-pill.active{background:var(--panel-solid);color:var(--text);box-shadow:0 2px 8px #00000014}.home-lang-pill:hover:not(.active){color:var(--text);background:transparent;box-shadow:none}.home-nav-guest{display:flex;align-items:center;gap:8px}.home-nav-link{font-size:14px;font-weight:600;color:var(--muted);text-decoration:none;padding:0 8px;height:var(--control-h);display:inline-flex;align-items:center;cursor:pointer;transition:color var(--transition-normal)}button.home-nav-link{border:none;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0}.home-nav-link:hover,button.home-nav-link:hover{color:var(--text);background:none;box-shadow:none}.home-nav-cta{height:36px;padding:0 16px;font-size:13px;border-radius:10px}.home-nav-auth{display:flex;align-items:center;gap:8px}.home-user-badge{display:flex;align-items:center;gap:8px;padding:0 12px;height:36px;border-radius:10px;background:var(--accent-light);font-size:13px;font-weight:600}.home-user-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px #16a34a33;flex-shrink:0}.home-user-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-main{flex:1;position:relative;z-index:1;max-width:1080px;width:100%;margin:0 auto;padding:0 var(--content-gutter)}.home-hero{padding:clamp(48px,8vh,80px) 0 clamp(32px,5vh,48px);text-align:center;animation:fadeInUp .7s ease both;animation-delay:.05s}.home-hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px 6px 10px;border-radius:999px;font-size:11px;font-weight:700;color:var(--muted);background:var(--panel);border:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);margin-bottom:20px;letter-spacing:.5px;text-transform:uppercase}.home-hero-badge-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px #16a34a2e;animation:pulse 2.5s ease-in-out infinite;flex-shrink:0}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #16a34a2e}50%{box-shadow:0 0 0 7px #16a34a0f}}.home-title{font-family:"Bricolage Grotesque",var(--font-sans);font-size:clamp(40px,7vw,72px);font-weight:800;line-height:1;letter-spacing:-2px;margin:0 0 18px;color:var(--text)}.home-title-accent{background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-subtitle{font-size:clamp(16px,1.8vw,19px);line-height:1.6;color:var(--muted);max-width:580px;margin:0 auto}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:clamp(32px,5vh,48px)}.home-card{display:flex;align-items:center;gap:14px;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);cursor:pointer;text-align:left;transition:transform .22s ease,box-shadow .25s ease,border-color .22s ease,background .22s ease;animation:fadeInUp .5s ease both;position:relative;overflow:hidden;height:auto;font-family:var(--font-sans);font-size:14px;white-space:normal}.home-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s ease;pointer-events:none;border-radius:inherit}.home-card--gallery:after{background:linear-gradient(135deg,#1677ff0a,#5856d60a)}.home-card--stories:after{background:linear-gradient(135deg,#ff6b6b0a,#ff9f430a)}.home-card--share:after{background:linear-gradient(135deg,#0abfbc0a,#12e2a30a)}.home-card--admin:after{background:linear-gradient(135deg,#636e720d,#2d343608)}.home-card:hover:not(.home-card--locked){transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.home-card:hover:not(.home-card--locked):after{opacity:1}.home-card:active:not(.home-card--locked){transform:translateY(0) scale(.995)}.home-card--locked{opacity:.5;cursor:default}.home-card-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;transition:transform .22s ease}.home-card:hover:not(.home-card--locked) .home-card-icon{transform:scale(1.08)}.home-card-icon svg{width:22px;height:22px}.home-card--gallery .home-card-icon{background:linear-gradient(135deg,#1677ff,#5856d6);box-shadow:0 4px 14px #1677ff40}.home-card--stories .home-card-icon{background:linear-gradient(135deg,#ff6b6b,#ff9f43);box-shadow:0 4px 14px #ff6b6b40}.home-card--share .home-card-icon{background:linear-gradient(135deg,#0abfbc,#12e2a3);box-shadow:0 4px 14px #0abfbc40}.home-card--admin .home-card-icon{background:linear-gradient(135deg,#636e72,#2d3436);box-shadow:0 4px 14px #636e7240}.home-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.home-card-name{font-size:15px;font-weight:800;letter-spacing:-.2px}.home-card-desc{font-size:13px;color:var(--muted);font-weight:400}.home-card-action{flex-shrink:0;color:var(--placeholder);transition:transform .22s ease,color .22s ease;display:flex;align-items:center}.home-card:hover:not(.home-card--locked) .home-card-action{color:var(--text);transform:translate(3px)}.home-login{margin-bottom:clamp(32px,5vh,48px);animation:fadeInUp .6s ease both;animation-delay:.35s}.home-login-card{background:var(--panel);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radius-xl);padding:clamp(24px,3vw,36px);box-shadow:var(--shadow-sm)}.home-login-header{margin-bottom:20px}.home-login-header h2{margin:0 0 6px;font-size:20px;font-weight:800;letter-spacing:-.3px}.home-login-header p{margin:0;font-size:14px;color:var(--muted);line-height:1.5}.home-login-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.home-login-field label{display:block;margin-bottom:6px}.home-login-btn{width:100%}.home-login-alt{margin:14px 0 0;font-size:13px;color:var(--muted);text-align:center}.home-login-alt a{color:var(--accent);text-decoration:none;font-weight:600}.home-login-alt a:hover{text-decoration:underline}.home-trust{display:flex;align-items:center;justify-content:center;gap:24px;padding:20px 0 clamp(32px,5vh,48px);animation:fadeInUp .6s ease both;animation-delay:.45s}.home-trust-item{display:flex;align-items:center;gap:10px}.home-trust-item div{display:flex;flex-direction:column;gap:1px}.home-trust-item strong{font-size:13px;font-weight:800}.home-trust-item span{font-size:12px;color:var(--muted)}.home-trust-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.home-trust-icon--sso{background:var(--accent-light);color:var(--accent)}.home-trust-icon--secure{background:#16a34a1f;color:var(--accent-2)}.home-trust-divider{width:1px;height:32px;background:var(--border)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.home-orb,.home-hero,.home-card,.home-login,.home-trust,.home-hero-badge-dot{animation:none!important}.home-hero,.home-card,.home-login,.home-trust{opacity:1!important;transform:none!important}}[data-theme=dark] .home-orb{opacity:.12}[data-theme=dark] .home-lang-pill.active{box-shadow:0 2px 10px #00000059}[data-theme=dark] .home-card--gallery:after{background:linear-gradient(135deg,#1677ff0f,#5856d60f)}[data-theme=dark] .home-card--stories:after{background:linear-gradient(135deg,#ff6b6b0f,#ff9f430f)}[data-theme=dark] .home-card--share:after{background:linear-gradient(135deg,#0abfbc0f,#12e2a30f)}[data-theme=dark] .home-card--admin:after{background:linear-gradient(135deg,#636e7214,#2d34360f)}[data-theme=dark] .home-brand-mark{box-shadow:0 4px 18px #1677ff59}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .home-orb{opacity:.12}:root:not([data-theme=light]):not([data-theme=dark]) .home-lang-pill.active{box-shadow:0 2px 10px #00000059}:root:not([data-theme=light]):not([data-theme=dark]) .home-brand-mark{box-shadow:0 4px 18px #1677ff59}}@media (max-width: 768px){.home-topbar-inner{flex-wrap:wrap}.home-nav{gap:8px;flex-wrap:wrap}.home-nav-guest{gap:6px}.home-grid,.home-login-fields{grid-template-columns:1fr}.home-trust{flex-direction:column;gap:16px}.home-trust-divider{width:40px;height:1px}.home-title{letter-spacing:-1px}}@media (max-width: 480px){.home-lang-pills{display:none}.home-hero{padding:32px 0 24px}.home-card{padding:14px 16px}}.guest-home-fallback{max-width:720px;margin:0 auto;padding:96px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px}.guest-home-fallback-title{font-size:clamp(32px,5vw,52px);line-height:1.15;margin:0}.guest-home-fallback-accent{color:var(--color-primary, #1677ff)}.guest-home-fallback-subtitle{color:var(--color-text-secondary, #666);font-size:var(--text-lg, 17px);margin:0}.preview-bar{position:sticky;top:0;z-index:200;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 16px;background:var(--color-inverse-surface, #1f2937);color:#fff;font-size:var(--text-sm, 13px)}.preview-bar-label{opacity:.8}.preview-bar-flag{margin-left:auto;opacity:.7;font-style:italic}.preview-bar-group{display:inline-flex;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-md, 8px);overflow:hidden}.preview-bar-btn{background:transparent;border:none;color:#fff;padding:5px 12px;cursor:pointer;font-size:var(--text-sm, 13px)}.preview-bar-btn.active{background:var(--color-primary, #1677ff)}.preview-bar-btn.disabled{opacity:.35;cursor:not-allowed}._page_9c1rc_1{padding:24px 32px;max-width:1200px;margin:0 auto;color:var(--text, #222)}._header_9c1rc_8{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}._title_9c1rc_17{font-size:20px;font-weight:600;margin:0}._controls_9c1rc_23{display:flex;gap:12px;align-items:center}._select_9c1rc_29{padding:6px 10px;border:1px solid var(--border, #d0d0d0);border-radius:6px;background:var(--bg, #fff);color:var(--text, #222);font-size:14px}._reset_9c1rc_38{padding:6px 12px;border:1px solid var(--border, #d0d0d0);border-radius:6px;background:transparent;color:var(--text, #222);font-size:13px;cursor:pointer}._reset_9c1rc_38:hover{background:var(--hover, #f0f0f0)}._panel_9c1rc_52{border:1px solid var(--border, #e0e0e0);border-radius:10px;margin-bottom:16px;overflow:hidden;background:var(--bg, #fafafa)}._panelHeader_9c1rc_60{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--bg, #fff);border:none;width:100%;cursor:pointer;font:inherit;color:inherit;text-align:left}._panelHeader_9c1rc_60:hover{background:var(--hover, #f5f5f5)}._panelMeta_9c1rc_78{display:flex;align-items:baseline;gap:12px}._panelName_9c1rc_84{font-weight:600;font-size:15px}._panelId_9c1rc_89{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;color:var(--text-muted, #888)}._panelVersion_9c1rc_95{font-size:12px;color:var(--text-muted, #888)}._badgeActive_9c1rc_100{display:inline-block;padding:2px 8px;border-radius:4px;background:#22c55e;color:#fff;font-size:10px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}._panelBody_9c1rc_112{padding:16px 18px;border-top:1px solid var(--border, #e0e0e0)}._panelDescription_9c1rc_117{margin:0 0 14px;font-size:13px;color:var(--text-muted, #666);line-height:1.5}._themeToggle_9c1rc_124{display:inline-flex;gap:4px;margin-bottom:14px}._themeToggle_9c1rc_124 button{padding:4px 10px;border:1px solid var(--border, #d0d0d0);background:transparent;border-radius:6px;font-size:12px;cursor:pointer}._themeToggle_9c1rc_124 button[aria-pressed=true]{background:var(--accent, #2563eb);color:#fff;border-color:var(--accent, #2563eb)}._previewScope_9c1rc_145{padding:16px;border-radius:8px;background:var(--bg, #fff)}._previewScope_9c1rc_145[data-theme=dark]{--bg: #141414;--text: #ebebeb;--text-muted: #999;--border: #2a2a2a;--hover: #24304a;background:#141414;color:#ebebeb}._grid_9c1rc_161{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}._tile_9c1rc_167{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px 12px;border-radius:8px;background:var(--bg, #fff);border:1px solid var(--border, #ececec);cursor:default;transition:border-color .12s,background .12s}._tile_9c1rc_167:hover{border-color:var(--accent, #b8cfff);background:var(--hover, #f3f7ff)}._tile_9c1rc_167 svg{width:24px;height:24px;color:var(--text, #222)}._tileName_9c1rc_191{font-size:11px;margin-top:8px;color:var(--text-muted, #777);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-align:center;word-break:break-all}._missing_9c1rc_200{border:1px dashed #ef4444;opacity:.6}._missingSection_9c1rc_205{margin-top:20px;padding-top:16px;border-top:1px dashed var(--border, #e0e0e0)}._missingTitle_9c1rc_211{font-size:12px;font-weight:600;color:#ef4444;text-transform:uppercase;letter-spacing:.6px;margin:0 0 8px}._softCapNote_9c1rc_220{font-size:12px;color:var(--text-muted, #888);margin-top:20px;padding:8px 12px;background:var(--hover, #fff3cd);border-radius:6px}.landing{min-height:100vh;position:relative;overflow-x:hidden;background:var(--bg);color:var(--text)}.scroll-reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}.scroll-reveal--visible{opacity:1;transform:translateY(0)}.landing-ambient{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.landing-orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.15;will-change:transform}.landing-orb--a{width:700px;height:700px;top:-15%;left:-8%;background:radial-gradient(circle,var(--accent) 0%,transparent 70%);animation:landingOrbDrift1 28s ease-in-out infinite}.landing-orb--b{width:550px;height:550px;bottom:20%;right:-10%;background:radial-gradient(circle,#ff375f 0%,transparent 70%);animation:landingOrbDrift2 32s ease-in-out infinite}.landing-orb--c{width:400px;height:400px;top:40%;left:30%;background:radial-gradient(circle,var(--accent-2) 0%,transparent 70%);animation:landingOrbDrift3 24s ease-in-out infinite}@keyframes landingOrbDrift1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(50px,30px) scale(1.1)}66%{transform:translate(-30px,-20px) scale(.95)}}@keyframes landingOrbDrift2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-40px,-30px) scale(1.06)}66%{transform:translate(20px,50px) scale(.94)}}@keyframes landingOrbDrift3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,-40px) scale(1.08)}}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s ease,border-color .3s ease,backdrop-filter .3s ease;border-bottom:1px solid transparent}.landing-nav--solid{background:var(--panel);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom-color:var(--border)}.landing-nav-inner{max-width:1240px;margin:0 auto;padding:12px var(--content-gutter);display:flex;align-items:center;justify-content:space-between;gap:16px}.landing-brand{display:flex;align-items:center;gap:10px}.landing-brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#5856d6);color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #1677ff4d;letter-spacing:-.5px;flex-shrink:0}.landing-brand-name{font-weight:700;font-size:16px;letter-spacing:-.3px}.landing-nav-links{display:flex;align-items:center;gap:8px}.landing-nav-anchor{font-size:14px;font-weight:600;color:var(--muted);border:none;background:none;cursor:pointer;padding:0 10px;height:var(--control-h);display:inline-flex;align-items:center;transition:color var(--transition-normal);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0}.landing-nav-anchor:hover{color:var(--text);background:none;box-shadow:none}.landing-lang-pills{display:flex;background:var(--field-bg);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}.landing-lang-pill{height:28px;padding:0 10px;border-radius:7px;font-size:12px;font-weight:700;color:var(--muted);border:none;background:transparent;cursor:pointer;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal)}.landing-lang-pill.active{background:var(--panel-solid);color:var(--text);box-shadow:0 2px 8px #00000014}.landing-lang-pill:hover:not(.active){color:var(--text);background:transparent;box-shadow:none}.landing-nav-signin{font-size:14px;font-weight:600;color:var(--muted);text-decoration:none;padding:0 8px;height:var(--control-h);display:inline-flex;align-items:center;transition:color var(--transition-normal)}.landing-nav-signin:hover{color:var(--text)}.landing-nav-cta{height:36px;padding:0 16px;font-size:13px;border-radius:10px}.landing-hero{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:clamp(100px,14vh,160px) var(--content-gutter) clamp(60px,8vh,100px);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,5vw,80px);align-items:center}.landing-hero-content{animation:landingFadeInUp .8s ease both}.landing-hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px 6px 10px;border-radius:999px;font-size:11px;font-weight:700;color:var(--muted);background:var(--panel);border:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);margin-bottom:24px;letter-spacing:.5px;text-transform:uppercase}.landing-hero-badge-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px #16a34a2e;animation:landingPulse 2.5s ease-in-out infinite;flex-shrink:0}@keyframes landingPulse{0%,to{box-shadow:0 0 0 3px #16a34a2e}50%{box-shadow:0 0 0 7px #16a34a0f}}.landing-hero-title{font-family:"Bricolage Grotesque",var(--font-sans);font-size:clamp(44px,7vw,82px);font-weight:800;line-height:1;letter-spacing:-3px;margin:0 0 24px;color:var(--text)}.landing-hero-accent{background:linear-gradient(135deg,var(--accent),#5856d6,var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-hero-subtitle{font-size:clamp(16px,1.6vw,19px);line-height:1.65;color:var(--muted);max-width:520px;margin:0 0 32px}.landing-hero-actions{display:flex;gap:12px;flex-wrap:wrap}.landing-hero-cta{height:48px;padding:0 28px;font-size:15px;font-weight:700;border-radius:12px;display:inline-flex;align-items:center}.landing-hero-cta-ghost{height:48px;padding:0 20px;font-size:15px;font-weight:600;border-radius:12px;background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:border-color var(--transition-normal),box-shadow var(--transition-normal);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.landing-hero-cta-ghost:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);background:var(--panel)}.landing-hero-visual{animation:landingFadeInUp .8s ease both;animation-delay:.2s}.landing-hero-visual .screenshot-frame{transform:perspective(1200px) rotateY(-4deg) rotateX(2deg);box-shadow:0 20px 60px #00000026,0 8px 20px #00000014;transition:transform .5s ease}.landing-hero-visual:hover .screenshot-frame{transform:perspective(1200px) rotateY(-1deg) rotateX(.5deg)}@keyframes landingFadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.screenshot-frame{border-radius:12px;overflow:hidden;background:var(--panel-solid);border:1px solid var(--border)}.screenshot-frame-bar{display:flex;gap:6px;padding:10px 14px;background:var(--field-bg);border-bottom:1px solid var(--border)}.screenshot-frame-bar span{width:10px;height:10px;border-radius:50%;background:var(--border-strong);opacity:.5}.screenshot-frame-body{line-height:0}.screenshot-frame-body img{width:100%;height:auto;display:block}.landing-stats{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:0 var(--content-gutter);display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);margin-bottom:clamp(60px,8vh,100px)}.landing-stat{display:flex;align-items:center;gap:12px;padding:20px 24px;background:var(--panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.landing-stat-icon{width:40px;height:40px;border-radius:10px;background:var(--accent-light);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.landing-stat-icon svg{width:20px;height:20px}.landing-stat-text{display:flex;flex-direction:column;gap:2px}.landing-stat-text strong{font-size:14px;font-weight:700}.landing-stat-text span{font-size:12px;color:var(--muted)}.landing-feature{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:clamp(40px,6vh,80px) var(--content-gutter);display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(40px,5vw,80px);align-items:center}.landing-feature--reversed{grid-template-columns:1.2fr 1fr}.landing-feature--reversed .landing-feature-text{order:2}.landing-feature--reversed .landing-feature-visual{order:1}.landing-feature-badge{display:inline-block;padding:4px 12px;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--badge-color);background:color-mix(in srgb,var(--badge-color) 12%,transparent);margin-bottom:16px}.landing-feature-title{font-family:"Bricolage Grotesque",var(--font-sans);font-size:clamp(28px,3.5vw,42px);font-weight:800;line-height:1.1;letter-spacing:-1.5px;margin:0 0 16px;color:var(--text)}.landing-feature-desc{font-size:clamp(15px,1.3vw,17px);line-height:1.65;color:var(--muted);margin:0 0 20px}.landing-feature-bullets{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.landing-feature-bullets li{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.5;color:var(--text)}.landing-feature-bullets li svg{flex-shrink:0;margin-top:2px}.landing-feature-visual{position:relative}.landing-feature-glow{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(circle,var(--glow-color) 0%,transparent 70%);opacity:.06;filter:blur(60px);pointer-events:none;z-index:-1}.landing-feature-visual .screenshot-frame{box-shadow:0 16px 48px #0000001a,0 4px 12px #0000000f;transition:transform .4s ease,box-shadow .4s ease}.landing-feature-visual:hover .screenshot-frame{transform:translateY(-4px);box-shadow:0 24px 60px #00000024,0 8px 20px #00000014}.landing-grid{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:clamp(40px,6vh,80px) var(--content-gutter)}.landing-grid-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.landing-grid-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;overflow:hidden}.landing-grid-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.landing-grid-card-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:16px}.landing-grid-card-icon svg{width:22px;height:22px}.landing-grid-card-img{border-radius:8px;overflow:hidden;margin-bottom:16px;line-height:0;border:1px solid var(--border)}.landing-grid-card-img img{width:100%;height:140px;object-fit:cover;display:block}.landing-grid-card h3{font-size:16px;font-weight:800;letter-spacing:-.2px;margin:0 0 6px}.landing-grid-card p{font-size:13px;color:var(--muted);line-height:1.5;margin:0}.landing-personalization{margin-bottom:clamp(40px,6vh,80px)}.landing-cta{position:relative;z-index:1;text-align:center;padding:clamp(60px,10vh,120px) var(--content-gutter);max-width:1240px;margin:0 auto;border-radius:var(--radius-xl);background:var(--panel);border:1px solid var(--border);overflow:hidden;margin-bottom:clamp(40px,6vh,80px);margin-left:var(--content-gutter);margin-right:var(--content-gutter)}.landing-cta-orbs{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;border-radius:inherit}.landing-cta-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.12}.landing-cta-orb--a{width:400px;height:400px;top:-30%;left:-10%;background:radial-gradient(circle,var(--accent) 0%,transparent 70%)}.landing-cta-orb--b{width:300px;height:300px;bottom:-20%;right:-5%;background:radial-gradient(circle,var(--accent-2) 0%,transparent 70%)}.landing-cta-title{position:relative;font-family:"Bricolage Grotesque",var(--font-sans);font-size:clamp(30px,4vw,48px);font-weight:800;letter-spacing:-2px;margin:0 0 12px}.landing-cta-subtitle{position:relative;font-size:clamp(16px,1.5vw,19px);color:var(--muted);margin:0 0 32px;line-height:1.6}.landing-cta-btn{position:relative;height:52px;padding:0 36px;font-size:16px;font-weight:700;border-radius:14px;display:inline-flex;align-items:center}.landing-cta-login{position:relative;margin:16px 0 0;font-size:14px;color:var(--muted)}.landing-cta-login a{color:var(--accent);text-decoration:none;font-weight:600}.landing-cta-login a:hover{text-decoration:underline}.landing-footer{position:relative;z-index:1;text-align:center;padding:24px var(--content-gutter) 32px;font-size:13px;color:var(--muted)}[data-theme=dark] .landing-orb{opacity:.08}[data-theme=dark] .landing-lang-pill.active{box-shadow:0 2px 10px #00000059}[data-theme=dark] .landing-brand-mark{box-shadow:0 4px 18px #1677ff59}[data-theme=dark] .landing-hero-visual .screenshot-frame{box-shadow:0 20px 60px #0006,0 8px 20px #00000040}[data-theme=dark] .landing-feature-glow{opacity:.1}[data-theme=dark] .landing-feature-visual .screenshot-frame{box-shadow:0 16px 48px #0000004d,0 4px 12px #0003}[data-theme=dark] .landing-cta-orb{opacity:.15}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .landing-orb{opacity:.08}:root:not([data-theme=light]):not([data-theme=dark]) .landing-lang-pill.active{box-shadow:0 2px 10px #00000059}:root:not([data-theme=light]):not([data-theme=dark]) .landing-brand-mark{box-shadow:0 4px 18px #1677ff59}}@media (prefers-reduced-motion: reduce){.landing-orb,.landing-hero-content,.landing-hero-visual,.landing-hero-badge-dot{animation:none!important}.landing-hero-content,.landing-hero-visual{opacity:1!important;transform:none!important}.scroll-reveal{opacity:1!important;transform:none!important;transition:none!important}.landing-feature-visual .screenshot-frame,.landing-hero-visual .screenshot-frame{transition:none!important}}@media (max-width: 1080px){.landing-hero,.landing-feature{grid-template-columns:1fr 1fr;gap:32px}.landing-feature--reversed{grid-template-columns:1fr 1fr}.landing-grid-cards,.landing-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.landing-hero{grid-template-columns:1fr;padding-top:100px;padding-bottom:40px;text-align:center}.landing-hero-subtitle{margin-left:auto;margin-right:auto}.landing-hero-actions{justify-content:center}.landing-hero-visual .screenshot-frame,.landing-hero-visual:hover .screenshot-frame{transform:none}.landing-feature{grid-template-columns:1fr;gap:24px}.landing-feature--reversed{grid-template-columns:1fr}.landing-feature--reversed .landing-feature-text{order:1}.landing-feature--reversed .landing-feature-visual{order:2}.landing-stats,.landing-grid-cards{grid-template-columns:1fr 1fr}.landing-nav-inner{flex-wrap:wrap}.landing-nav-links{gap:6px;flex-wrap:wrap}.landing-nav-anchor{display:none}}@media (max-width: 480px){.landing-lang-pills{display:none}.landing-hero{padding-top:80px}.landing-hero-title{font-size:38px;letter-spacing:-1.5px}.landing-stats,.landing-grid-cards{grid-template-columns:1fr}.landing-feature-title{font-size:26px;letter-spacing:-1px}}
