body{color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.login-container{align-items:center;background-color:#f0f2f5;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:20px}.login-box{background-color:#fff;border-radius:10px;box-shadow:0 8px 25px #0000001a;box-sizing:border-box;max-width:420px;padding:35px 45px;text-align:center;width:100%}.login-logo{height:auto;margin-bottom:25px;max-width:70%;width:200px}.login-box h1{color:#2c3e50;font-size:2em;font-weight:600;margin-bottom:8px}.sfre-tagline{color:#555e68;font-size:1.1em;margin-bottom:30px}.login-error{background-color:#fdecea;border:1px solid #e74c3c;border-radius:6px;color:#c0392b;font-size:.95em;margin-bottom:20px;padding:12px 15px;text-align:left}.google-auth-button{align-items:center;background-color:#fff;border:1px solid #dadce0;border-radius:25px;box-sizing:border-box;color:#3c4043;cursor:pointer;display:flex;font-size:1.05em;font-weight:500;justify-content:center;margin-bottom:25px;outline:none;overflow:hidden;padding:10px 15px;position:relative;transition:background-color .2s ease-in-out,box-shadow .2s ease-in-out,border-color .2s ease-in-out;width:100%}.google-auth-button:hover{background-color:#f8f9fa;border-color:#c6c9cc;box-shadow:0 1px 3px #0000000d}.google-auth-svg{height:24px;margin-right:12px;width:24px;z-index:6}.google-auth-text{position:relative;z-index:10}.google-auth-button:hover .google-auth-text{animation:googleAuthTextHover .3s forwards;animation-delay:.2s}@keyframes googleAuthTextHover{0%{color:#3c4043}to{color:#fff}}.google-auth-button:hover:after,.google-auth-button:hover:before{border-radius:500px;content:"";display:block;height:0;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:0}.google-auth-button:hover:before{animation:wave1 2.5s ease-in-out forwards}.google-auth-button:hover:after{animation:wave2 2.5s ease-in-out forwards}@keyframes wave1{0%{background:#eb4335;height:0;opacity:1;width:0;z-index:1}1%{background:#eb4335;height:0;opacity:1;width:0;z-index:1}25%{background:#eb4335;height:1000px;opacity:1;width:1000px;z-index:1}26%{background:#34a853;height:0;opacity:1;width:0;z-index:3}50%{background:#34a853;height:1000px;opacity:1;width:1000px;z-index:3}to{background:#34a853;height:1000px;opacity:1;width:1000px;z-index:3}}@keyframes wave2{0%{background:#fbbc05;height:0;opacity:1;width:0;z-index:2}11%{background:#fbbc05;height:0;opacity:1;width:0;z-index:2}35%{background:#fbbc05;height:1000px;opacity:1;width:1000px;z-index:2}39%{background:#fbbc05;height:1000px;opacity:1;width:1000px;z-index:2}40%{background:#4285f4;height:0;opacity:1;width:0;z-index:4}64%{background:#4285f4;height:1000px;opacity:1;width:1000px;z-index:4}to{background:#4285f4;height:1000px;opacity:1;width:1000px;z-index:4}}.google-auth-button:hover .google-auth-svg-red{animation:svgDisappear .1s forwards;animation-delay:.1s}.google-auth-button:hover .google-auth-svg-yellow{animation:svgDisappear .1s forwards;animation-delay:.3s}.google-auth-button:hover .google-auth-svg-green{animation:svgDisappear .1s forwards;animation-delay:.7s}.google-auth-button:hover .google-auth-svg-blue{animation:svgDisappear .1s forwards;animation-delay:1.1s}@keyframes svgDisappear{0%{filter:brightness(1)}to{filter:brightness(100)}}.login-footer{color:#6c757d;font-size:.85em;margin-top:40px;padding-bottom:20px}@media (max-width:480px){.login-box{margin-left:10px;margin-right:10px;padding:25px 30px}.login-logo{width:150px}.login-box h1{font-size:1.8em}.sfre-tagline{font-size:1em}.google-auth-button{font-size:1em;padding:10px 12px}.google-auth-svg{height:20px;margin-right:10px;width:20px}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_AMS-Regular.73ea273a72f4aca30ca5.woff2) format("woff2"),url(/static/media/KaTeX_AMS-Regular.d562e886c52f12660a41.woff) format("woff"),url(/static/media/KaTeX_AMS-Regular.853be92419a6c3766b9a.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Caligraphic-Bold.a1abf90dfd72792a577a.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Bold.d757c535a2e5902f1325.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Bold.7489a2fbfb9bfe704420.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Caligraphic-Regular.d6484fce1ef428d5bd94.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Regular.db074fa22cf224af93d7.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Regular.7e873d3833eb108a0758.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Fraktur-Bold.931d67ea207ab37ee693.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Bold.354501bac435c3264834.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Bold.4c761b3711973ab04edf.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Fraktur-Regular.172d3529b26f8cedef6b.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Regular.6fdf0ac577be0ba82a4c.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Regular.ed305b5434865e06ffde.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Main-Bold.39890742bc957b368704.woff2) format("woff2"),url(/static/media/KaTeX_Main-Bold.0c3b8929d377c0e9b2f3.woff) format("woff"),url(/static/media/KaTeX_Main-Bold.8169508bf58f8bd92ad8.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Main-BoldItalic.20f389c4120be058d80a.woff2) format("woff2"),url(/static/media/KaTeX_Main-BoldItalic.428978dc7837d46de091.woff) format("woff"),url(/static/media/KaTeX_Main-BoldItalic.828abcb200061cffbaae.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Main-Italic.fe2176f79edaa716e621.woff2) format("woff2"),url(/static/media/KaTeX_Main-Italic.fd947498bc16392e76c2.woff) format("woff"),url(/static/media/KaTeX_Main-Italic.fa675e5e4bec9eb250b6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Main-Regular.f650f111a3b890d116f1.woff2) format("woff2"),url(/static/media/KaTeX_Main-Regular.4f35fbcc9ee8614c2bcc.woff) format("woff"),url(/static/media/KaTeX_Main-Regular.9eba1d77abcf2aa6e94e.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Math-BoldItalic.dcbcbd93bac0470b462d.woff2) format("woff2"),url(/static/media/KaTeX_Math-BoldItalic.3f07ed67f06c720120ce.woff) format("woff"),url(/static/media/KaTeX_Math-BoldItalic.bf2d440b3a42ea78a998.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Math-Italic.6d3d25f4820d0da8f01f.woff2) format("woff2"),url(/static/media/KaTeX_Math-Italic.96759856b4e70f3a8338.woff) format("woff"),url(/static/media/KaTeX_Math-Italic.8a5f936332e8028c7278.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/static/media/KaTeX_SansSerif-Bold.95591a929f0d32aa282a.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Bold.b9cd458ac6d5889ff9c3.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Bold.5b49f4993ae22d7975b4.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Italic.7d393d382f3e7fb1c637.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Italic.8d593cfaa96238d5e2f8.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Italic.b257a18c016f37ee4543.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Regular.cd5e231e0cc53b2cb2c0.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Regular.02271ec5cb9f5b4588ac.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Regular.2f7bc363fc5424ebda59.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Script-Regular.c81d1b2a4b75d3eded60.woff2) format("woff2"),url(/static/media/KaTeX_Script-Regular.073b3402d036714b4370.woff) format("woff"),url(/static/media/KaTeX_Script-Regular.fc9ba5249878cd8f8d88.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size1-Regular.6eec866c69313624be60.woff2) format("woff2"),url(/static/media/KaTeX_Size1-Regular.0108e89c9003e8c14ea3.woff) format("woff"),url(/static/media/KaTeX_Size1-Regular.6de7d4b539221a49e9e2.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size2-Regular.2960900c4f271311eb36.woff2) format("woff2"),url(/static/media/KaTeX_Size2-Regular.3a99e70aee4076660d38.woff) format("woff"),url(/static/media/KaTeX_Size2-Regular.57f5c1837853986ea1db.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size3-Regular.e1951519f6f0596f7356.woff2) format("woff2"),url(/static/media/KaTeX_Size3-Regular.7947224e8a9914fa332b.woff) format("woff"),url(/static/media/KaTeX_Size3-Regular.8d6b6822586eea3d3b20.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size4-Regular.e418bf257af1052628d8.woff2) format("woff2"),url(/static/media/KaTeX_Size4-Regular.aeffd8025cba3647f1a6.woff) format("woff"),url(/static/media/KaTeX_Size4-Regular.4ad7c7e8bb8d10a34bb7.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Typewriter-Regular.c295e7f71970f03c0549.woff2) format("woff2"),url(/static/media/KaTeX_Typewriter-Regular.4c6b94fd1d07f8beff7c.woff) format("woff"),url(/static/media/KaTeX_Typewriter-Regular.c5c02d763c89380dcb4e.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.25"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.shimmer-wrapper{animation:fadeIn .3s ease-out}.shimmer-message{align-items:flex-start;display:flex;gap:12px}.shimmer-avatar{animation:shimmer-loading 1.5s infinite;background:linear-gradient(90deg,#e0e0e0 25%,#f0f0f0 50%,#e0e0e0 75%);background-size:200% 100%;border-radius:50%;flex-shrink:0;height:36px;width:36px}.shimmer-bubble{background:#fff;border-radius:20px 20px 20px 6px;box-shadow:0 1px 3px #0000001a;flex:1 1;max-width:400px;padding:16px}.shimmer-line{animation:shimmer-loading 1.5s infinite;background:linear-gradient(90deg,#e0e0e0 25%,#f0f0f0 50%,#e0e0e0 75%);background-size:200% 100%;border-radius:6px;height:12px;margin-bottom:8px}.shimmer-line:last-child{margin-bottom:0}.shimmer-line.short{width:60%}.shimmer-line.medium{width:80%}@keyframes shimmer-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 #2e7d3200}50%{box-shadow:0 0 12px #2e7d324d}}.grounding-citation{align-items:center;background:linear-gradient(135deg,#1976d214,#0288d114);border:1.5px solid #1976d240;border-radius:6px;color:#1976d2;display:inline-flex;font-size:.75em;font-weight:700;height:18px;justify-content:center;line-height:1;margin-left:2px;margin-right:1px;min-width:20px;padding:0 4px;position:relative;text-decoration:none;transition:all .2s ease;vertical-align:super}.grounding-citation:hover{background:linear-gradient(135deg,#1976d2,#0288d1);border-color:#1976d2;box-shadow:0 4px 12px #1976d24d;color:#fff;transform:translateY(-1px) scale(1.05);z-index:10}.grounding-citation:after{background:#000000e6;border-radius:6px;bottom:100%;color:#fff;content:attr(data-citation-title);font-size:.75rem;font-weight:500;left:50%;max-width:250px;opacity:0;overflow:hidden;padding:6px 10px;pointer-events:none;position:absolute;text-overflow:ellipsis;transform:translateX(-50%) translateY(-4px);transition:opacity .3s ease,transform .3s ease;white-space:nowrap;z-index:1000}.grounding-citation:hover:after{opacity:1;transform:translateX(-50%) translateY(-8px)}.grounding-badge{cursor:help;-webkit-user-select:none;user-select:none}.search-sources-container{animation:slideInUp .4s ease-out}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.source-item{cursor:pointer}.search-suggestions-container{animation:slideInLeft .4s ease-out}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.search-sources-container:after{animation:shimmer 3s infinite;background:linear-gradient(90deg,#fff0,#ffffff4d 50%,#fff0);content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}@media (max-width:768px){.grounding-citation:after{display:none}.search-sources-container{padding:1.5rem}.source-item{padding:1rem}}@media (prefers-color-scheme:dark){.grounding-citation{background:linear-gradient(135deg,#64b5f626,#42a5f526);border-color:#64b5f64d;color:#64b5f6}.grounding-citation:hover{background:linear-gradient(135deg,#42a5f5,#64b5f6)}}:root{--bg-chat-area:#fff;--bg-input:#fff;--bg-user-bubble:linear-gradient(135deg,#667eea,#764ba2);--bg-assistant-bubble:#f1f5f9;--text-color-black:#000;--color-primary-50:#d9dde5;--color-primary-100:#b4bccc;--color-primary-200:#8e9ab2;--color-primary-300:#697999;--color-primary-400:#43577f;--color-primary-light:#b4bccc;--color-primary-main:#1e3666;--color-primary-dark:#192d55;--color-primary-500:#1e3666;--color-primary-600:#192d55;--color-primary-700:#0f1b33;--color-primary-800:#192d55;--color-primary-900:#0f1b33;--color-neutral-50:#f8f9fb;--color-neutral-100:#e9e9eb;--color-neutral-200:#d8d8da;--color-neutral-300:#c3c3c5;--color-neutral-400:#a8a8aa;--color-neutral-500:#89898a;--color-neutral-600:#686869;--color-neutral-700:#49494a;--color-neutral-800:#313131;--color-neutral-900:#202020;--color-neutral-main:#202020}.app-root{align-items:center;background-color:#000;display:flex;height:100vh;justify-content:center;width:100vw}.app-root,body{overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;background-color:var(--bg-main);color:#1e293b;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family-sans);margin:0}.chat-area{background:linear-gradient(to bottom left,#ccd9ed,#fff 50%);background:linear-gradient(to bottom left,#ccd9ed 0,var(--bg-chat-area) 50%);box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;height:100%}.error-message{color:#ef4444;color:var(--danger-500);justify-content:center;padding:10px 20px;text-align:center}.error-message.small{font-size:13px;justify-content:flex-start;margin-top:8px;padding:0}.app-footer-info{color:#64748b;color:var(--text-secondary);display:flex;font-size:11px;justify-content:center;padding:0}@media (max-width:768px){.chat-area{border-radius:0;width:100%}}:root{--bg-main:#f8fafc;--text-primary:#1e293b;--text-secondary:#64748b;--border-light:#f1f5f9;--brand-500:#6366f1;--brand-active:#8b5cf6;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--radius-sm:6px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--text-color:#000;--bg-color-white:#fff}.admin-page-container{background-color:#f8fafc;color:#1e293b;min-height:100vh;width:100%}.admin-sidebar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #f1f5f9;border:1px solid var(--border-light);border-radius:var(--radius-2xl);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);min-height:0;padding:24px;transition:all .3s ease-in-out;width:300px}.admin-nav-link{border:1px solid #0000;border-radius:12px;border-radius:var(--radius-lg);color:#64748b;padding:14px 16px;position:relative;transition:all .3s ease}.admin-nav-link:hover{background-color:#f8fafc;box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);color:#1e293b;transform:translateX(4px)}.admin-nav-link.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);background:linear-gradient(135deg,var(--brand-500) 0,var(--brand-active) 100%);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md)}.admin-nav-link.active:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);transform:translateX(2px)}.admin-sidebar-footer{background-color:#f8fafc;border-radius:12px}.admin-user-display-name{color:#1e293b}.admin-icon-button.small{color:#64748b}.admin-icon-button.small:hover:not(:disabled){background-color:#f8fafc;border-color:#1e293b;color:#1e293b}.admin-main-content h1{color:#1e293b}.admin-card{border:1px solid #f1f5f9;border:1px solid var(--border-light);border-radius:var(--radius-2xl);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);padding:28px;transition:all .2s ease}.admin-card:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.admin-insight-card{background:#f8fafc;border:1px solid #f1f5f9;border:1px solid var(--border-light);border-radius:var(--radius-xl);overflow:hidden;padding:24px;position:relative;transition:all .3s ease}.admin-insight-card:before{background:linear-gradient(135deg,#6366f1,#8b5cf6);background:linear-gradient(135deg,var(--brand-500) 0,var(--brand-active) 100%);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .3s ease}.admin-insight-card:hover{border-color:#8b5cf6;border-color:var(--brand-active);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);transform:translateY(-4px)}.admin-insight-card:hover:before{transform:scaleX(1)}.admin-insight-card .icon{color:#8b5cf6;color:var(--brand-active);font-size:24px;margin-bottom:12px}.admin-insight-card p{color:#64748b}.admin-insight-card span{color:#1e293b}.admin-table-container{overflow-x:auto}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:12px 16px;text-align:left;vertical-align:middle}th{color:#64748b;color:var(--text-secondary);font-size:12px;font-weight:600;text-transform:uppercase}td{color:#1e293b;color:var(--text-primary);font-size:14px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background-color:#f8fafc;background-color:var(--bg-main)}.admin-table-container.is-loading{opacity:.7}.convo-title{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-full-area-loading,.admin-loading-state{align-items:center;color:#64748b;color:var(--text-secondary);display:flex;font-size:1.2rem;gap:1rem;justify-content:center;padding:2rem;width:100%}.admin-full-area-loading{flex-grow:1}.admin-full-area-loading .spinner-icon{font-size:2.5rem}.admin-button{border-radius:12px;border-radius:var(--radius-lg);overflow:hidden;padding:12px 20px;position:relative;transition:all .3s ease}.admin-button.primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);background:linear-gradient(135deg,var(--brand-500) 0,var(--brand-active) 100%);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm)}.admin-button.primary:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.admin-button.secondary{background-color:#f8fafc;box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);color:#1e293b}.admin-button.secondary:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);transform:translateY(-1px)}.admin-button.danger{box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm)}.admin-button.danger:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);transform:translateY(-1px)}.admin-button.link{background:none;border:none;border-radius:8px;border-radius:var(--radius-md);color:#8b5cf6;color:var(--brand-active);padding:8px 12px}.admin-button.link:hover{background-color:#6366f11a}.admin-button:disabled{box-shadow:none!important;transform:none!important}.admin-modal-content{border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.admin-modal-icon{margin-bottom:20px}.admin-modal-icon.warning{color:#f59e0b;color:var(--warning-500)}.admin-modal-content h3{color:#1e293b}.admin-modal-content p{color:#64748b}.admin-modal-chat-container .message-bubble{line-height:1.6}.admin-modal-overlay.large .admin-modal-content{display:flex;flex-direction:column;height:90vh;max-width:900px;text-align:left}.admin-modal-header{flex-shrink:0;margin-bottom:16px;padding-bottom:16px}.admin-modal-header h3{flex-grow:1;font-size:20px;overflow:hidden;padding-right:1rem;text-overflow:ellipsis;white-space:nowrap}.admin-modal-close-button{align-items:center;background:none;border:none;border-radius:50%;color:#64748b;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;height:40px;justify-content:center;transition:all .2s;width:40px}.admin-modal-close-button:hover{background-color:#f8fafc;background-color:var(--bg-main);color:#1e293b;color:var(--text-primary)}.admin-modal-close-button svg{height:24px;width:24px}.admin-modal-chat-container{flex-grow:1;overflow-y:auto}.message-bubble-wrapper{display:flex;margin-bottom:16px}.message-bubble-wrapper.user{justify-content:flex-end}.message-bubble-wrapper.assistant{justify-content:flex-start}.message-bubble{border-radius:12px;border-radius:var(--radius-lg);line-height:1.6;max-width:80%;padding:12px 18px}.message-bubble.user{background-color:#6366f1;background-color:var(--brand-500);color:#fff;color:var(--text-on-accent)}.message-bubble.assistant{background-color:#fff;background-color:var(--bg-color-white)}.message-bubble.assistant,.message-bubble.assistant p,.message-bubble.assistant strong{color:#000;color:var(--text-color)}.message-sender{display:block;font-size:12px;font-weight:600;margin-bottom:8px;opacity:.8}.message-timestamp{display:block;font-size:11px;margin-top:8px;opacity:.7;text-align:right}.message-content *{max-width:100%;overflow-x:auto}@media (max-width:1024px){.admin-page-container{flex-direction:column;height:auto;padding:0}.admin-sidebar{border-radius:0;height:100%;left:0;position:fixed;top:0;transform:translateX(-100%);z-index:1001}.admin-sidebar.is-open{transform:translateX(0)}.admin-main-content{padding:70px 16px 16px}.admin-page-header{background-color:#f8fafc;background-color:var(--bg-main);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);box-sizing:border-box;left:0;padding:16px;position:fixed;top:0;width:100%;z-index:1000}.mobile-menu-button{display:inline-flex}.admin-sidebar-overlay{background-color:#00000080;display:block;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1000}}.admin-filters-bar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.admin-search-input{align-items:center;background-color:#fff;border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-md);display:flex;padding-left:10px}.admin-search-input svg{color:#64748b;color:var(--text-secondary);margin-right:8px}.admin-search-input input{background-color:initial;border:none;border-radius:0 8px 8px 0;border-radius:0 var(--radius-md) var(--radius-md) 0;flex-grow:1;font-size:14px;min-width:180px;padding:10px 12px 10px 0}.admin-search-input input:focus{box-shadow:none;outline:none}.admin-search-input:focus-within{border-color:#8b5cf6;border-color:var(--brand-active);box-shadow:0 0 0 2px #7551ff40}.admin-select{background-color:#fff;border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-md);color:#1e293b;color:var(--text-primary);font-size:14px;min-width:180px;padding:10px 12px}.admin-select:focus{border-color:#8b5cf6;border-color:var(--brand-active);box-shadow:0 0 0 2px #7551ff40;outline:none}th.sortable-header{cursor:pointer;position:relative}th.sortable-header:hover{background-color:#f8fafc;background-color:var(--bg-main)}th.sortable-header svg{color:#64748b;color:var(--text-secondary);height:16px;margin-left:5px;vertical-align:middle;width:16px}th.sortable-header svg.active-sort-icon{color:#8b5cf6;color:var(--brand-active)}.admin-pagination-controls{align-items:center;border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);display:flex;justify-content:space-between;margin-top:20px;padding:15px 0}.admin-pagination-controls button{background-color:#fff;background-color:var(--bg-card);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-md);color:#1e293b;color:var(--text-primary);cursor:pointer;font-size:14px;font-weight:500;padding:8px 15px;transition:background-color .2s,border-color .2s}.admin-pagination-controls button:hover:not(:disabled){background-color:#f8fafc;background-color:var(--bg-main);border-color:#64748b;border-color:var(--text-secondary)}.admin-pagination-controls button:disabled{cursor:not-allowed;opacity:.5}.admin-pagination-controls span{color:#64748b;color:var(--text-secondary);font-size:14px}.admin-no-data td,.admin-table-error td{color:#64748b;color:var(--text-secondary);font-style:italic;padding:20px;text-align:center}td{vertical-align:middle}th.sortable-header.active-sort,th.sortable-header.active-sort svg{color:#8b5cf6;color:var(--brand-active)}.feedback-message-cell{word-wrap:break-word;max-width:400px;white-space:pre-wrap}.admin-notes-cell{max-width:300px}.notes-display{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.notes-display p{word-wrap:break-word;flex-grow:1;margin:0;white-space:pre-wrap}.notes-display .no-notes{color:#64748b;color:var(--text-secondary);font-style:italic}.notes-editor{display:flex;flex-direction:column;gap:8px}.notes-editor textarea{background-color:#f8fafc;background-color:var(--bg-main);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-md);font-family:inherit;font-size:14px;padding:8px;resize:vertical;width:100%}.notes-actions{display:flex;gap:8px;justify-content:flex-end}.admin-icon-button{background:#0000;border:none;color:#64748b;color:var(--text-secondary);cursor:pointer;padding:4px}.admin-icon-button:hover{color:#1e293b;color:var(--text-primary)}.status-select{background-color:#fff;background-color:var(--bg-card);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-md);font-size:14px;padding:6px 8px}.message-content table td,.message-content table th{background-color:#fff;border:1px solid #e2e8f0!important;border:1px solid var(--border-color)!important;-webkit-user-select:text;user-select:text}.message-content table td,.message-content table td *,.message-content table th,.message-content table th *{color:#000!important;color:var(--text-color)!important}.message-content table th{font-weight:600}.admin-team-badges{display:flex;flex-wrap:wrap;gap:4px}.admin-team-badge{background-color:#6366f1;background-color:var(--brand-500)}.admin-public-badge,.admin-team-badge{align-items:center;border-radius:9999px;border-radius:var(--radius-full);color:#fff;color:var(--text-on-accent);display:inline-flex;font-size:11px;font-weight:500;letter-spacing:.025em;padding:2px 8px;text-transform:uppercase}.admin-public-badge{background-color:#10b981;background-color:var(--success-500)}.admin-no-team{align-items:center;background-color:#64748b;background-color:var(--text-secondary);border-radius:9999px;border-radius:var(--radius-full);color:#fff;color:var(--text-on-accent);display:inline-flex;font-size:11px;font-weight:500;letter-spacing:.025em;opacity:.7;padding:2px 8px;text-transform:uppercase}.admin-team-badge:first-child{background-color:#6366f1;background-color:var(--brand-500)}.admin-team-badge:nth-child(2){background-color:#f59e0b;background-color:var(--warning-500)}.admin-team-badge:nth-child(3){background-color:#8b5cf6}.admin-team-badge:nth-child(4){background-color:#f59e0b}.admin-team-badge:nth-child(5){background-color:#06b6d4}.admin-modal-overlay{background-color:#00000080;bottom:0;right:0}.admin-modal{background:#fff;background:var(--bg-card);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);max-height:80vh;max-width:500px;overflow-y:auto;width:90%}.admin-modal-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px 24px}.admin-modal-header h3{color:#1e293b;color:var(--text-primary);font-size:18px;font-weight:600;margin:0}.admin-modal-content{padding:24px}.admin-form-group{margin-bottom:20px}.admin-form-group label{display:block;font-weight:500;margin-bottom:6px}.admin-form-group label,.admin-input,.admin-textarea{color:#1e293b;color:var(--text-primary);font-size:14px}.admin-input,.admin-textarea{background-color:#f8fafc;background-color:var(--bg-main);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-md);box-sizing:border-box;font-family:inherit;padding:10px 12px;width:100%}.admin-input:focus,.admin-textarea:focus{border-color:#6366f1;border-color:var(--brand-500);box-shadow:0 0 0 3px #6366f11a;outline:none}.admin-team-checkboxes{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.admin-checkbox-label{align-items:center;color:#1e293b;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;gap:6px}.admin-checkbox-label input[type=checkbox]{accent-color:#6366f1;accent-color:var(--brand-500);height:16px;width:16px}.admin-modal-actions{border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px}.admin-button-group{align-items:center;display:flex;gap:8px}.admin-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.admin-section-header h2{align-items:center;display:flex;gap:8px;margin:0}:root{--font-family-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--bg-main:#f4f7fe;--bg-sidebar:#fff;--bg-card:#fff;--text-primary:#1c3b6b;--text-secondary:#a0aec0;--text-on-accent:#fff;--border-color:#e2e8f0;--brand-500:#1c3b6b;--brand-active:#7551ff;--danger-500:#ef4444;--warning-500:#f59e0b;--success-500:#10b981;--shadow-xl:14px 17px 40px 4px #7090b014;--radius-md:8px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px}.admin-page-container{background-color:#f4f7fe;background-color:var(--bg-main);box-sizing:border-box;color:#1c3b6b;color:var(--text-primary);display:flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family-sans);gap:16px;height:100vh;padding:16px;width:100vw}.admin-sidebar{background-color:#fff;background-color:var(--bg-sidebar);border-radius:20px;border-radius:var(--radius-xl);box-shadow:14px 17px 40px 4px #7090b014;box-shadow:var(--shadow-xl);box-sizing:border-box;display:flex;flex-direction:column;flex-shrink:0;height:100%;padding:20px;transition:transform .3s ease-in-out;width:285px}.admin-sidebar-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;justify-content:center;padding-bottom:20px;position:relative}.admin-sidebar-logo{height:30px}.admin-sidebar-nav{display:flex;flex-direction:column;flex-grow:1;gap:8px;margin-top:20px}.admin-nav-link{align-items:center;border-radius:8px;border-radius:var(--radius-md);color:#a0aec0;color:var(--text-secondary);display:flex;font-weight:500;gap:12px;padding:12px;text-decoration:none;transition:all .2s}.admin-nav-link:hover{background-color:#f4f7fe;background-color:var(--bg-main);color:#1c3b6b;color:var(--text-primary)}.admin-nav-link.active{background:#1c3b6b;background:var(--brand-500);color:#fff;color:var(--text-on-accent)}.admin-nav-link.active:hover{background:#7551ff;background:var(--brand-active)}.admin-sidebar-footer{align-items:center;background-color:#f4f7fe;background-color:var(--bg-main);border-radius:16px;border-radius:var(--radius-lg);display:flex;gap:12px;margin-top:auto;padding:14px}.admin-user-info{flex-grow:1;overflow:hidden}.admin-user-display-name{color:#1c3b6b;color:var(--text-primary);font-size:14px;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.admin-sidebar-footer-actions{display:flex;flex-shrink:0;gap:6px}.admin-icon-button.small{align-items:center;background:#0000;border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:9999px;border-radius:var(--radius-full);color:#a0aec0;color:var(--text-secondary);cursor:pointer;display:flex;height:34px;justify-content:center;transition:all .2s;width:34px}.admin-icon-button.small:hover:not(:disabled){background-color:#f4f7fe;background-color:var(--bg-main);border-color:#1c3b6b;border-color:var(--text-primary);color:#1c3b6b;color:var(--text-primary)}.admin-icon-button.small:disabled{cursor:not-allowed;opacity:.5}.admin-main-content{display:flex;flex-direction:column;flex-grow:1;gap:24px;height:100%;overflow-y:auto}.admin-page-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.admin-main-content h1{align-items:center;color:#1c3b6b;color:var(--text-primary);display:flex;font-size:28px;font-weight:700;gap:12px;margin:0}.admin-page-header-actions{display:flex;gap:12px}.admin-card{background-color:#fff;background-color:var(--bg-card);border-radius:20px;border-radius:var(--radius-xl);box-shadow:14px 17px 40px 4px #7090b014;box-shadow:var(--shadow-xl);padding:24px}.admin-card h2{align-items:center;display:flex;font-size:20px;gap:10px;margin:0 0 16px}.admin-card h3{font-size:16px;font-weight:600;margin:16px 0 8px}.admin-card-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:16px}.admin-card-header h2{margin:0}.admin-insight-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.admin-insight-card{background:#f4f7fe;background:var(--bg-main);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:16px;border-radius:var(--radius-lg);padding:20px}admin-table-container.is-loading{opacity:.7;pointer-events:none;position:relative;transition:opacity .2s ease-in-out}.admin-insight-card p{color:#a0aec0;color:var(--text-secondary);font-size:14px;margin:0 0 4px}.admin-insight-card span{color:#1c3b6b;color:var(--text-primary);font-size:28px;font-weight:700}.form-group{margin-bottom:16px}input[type=file]{background-color:#f4f7fe;background-color:var(--bg-main);border:2px dashed #e2e8f0;border:2px dashed var(--border-color);border-radius:8px;border-radius:var(--radius-md);cursor:pointer;padding:12px;transition:all .2s;width:100%}input[type=file]:hover{border-color:#7551ff;border-color:var(--brand-active)}.file-selected-info{color:#a0aec0;color:var(--text-secondary);font-size:.9em;margin-top:8px}.status-message{border-radius:4px;font-size:.95em;margin-top:15px;padding:10px}.status-message.info{background-color:#ebf8ff;border:1px solid #bee3f8;color:#3182ce}.status-message.error{background-color:#fff5f5;border:1px solid #fed7d7;color:#c53030}.ingestion-log{background-color:#0d1117;border-radius:8px;border-radius:var(--radius-md);color:#c9d1d9;font-family:Courier New,Courier,monospace;margin-top:15px;max-height:200px;overflow-y:auto;padding:16px}.ingestion-log h4{color:#8b949e;font-size:1em;margin:0 0 10px}.ingestion-log ul{font-size:.85em;list-style-type:none;margin:0;padding-left:0}.ingestion-log li{border-bottom:1px solid #30363d;padding:3px 0}.ingestion-log li:last-child{border-bottom:none}.source-list{border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:16px;border-radius:var(--radius-lg);list-style-type:none;margin-top:16px;overflow:hidden;padding:0}.source-list-item{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;gap:16px;justify-content:space-between;padding:12px 16px}.source-list-item:last-child{border-bottom:none}.file-info{align-items:center;display:flex;flex-grow:1;gap:10px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.danger-zone{background-color:#fff5f5;border:1px solid #ef4444;border:1px solid var(--danger-500)}.danger-zone h3{color:#ef4444;color:var(--danger-500)}.danger-zone p{color:#c53030}.admin-loading-state{align-items:center;color:#a0aec0;color:var(--text-secondary);display:flex;font-size:1.2rem;gap:1rem;justify-content:center;padding:2rem;width:100%}.admin-error-message{background-color:#fff5f5;border:1px solid #ef4444;border:1px solid var(--danger-500);border-radius:8px;border-radius:var(--radius-md);color:#ef4444;color:var(--danger-500);padding:12px 16px}.admin-button{align-items:center;border:1px solid #0000;border-radius:8px;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:10px 16px;transition:all .2s}.admin-button.primary{background-color:#1c3b6b;background-color:var(--brand-500);color:#fff;color:var(--text-on-accent)}.admin-button.primary:hover{background-color:#7551ff;background-color:var(--brand-active)}.admin-button.secondary{background-color:#f4f7fe;background-color:var(--bg-main);border-color:#e2e8f0;border-color:var(--border-color);color:#1c3b6b;color:var(--text-primary)}.admin-button.secondary:hover{background-color:#e2e8f0}.admin-button.danger{background-color:#ef4444;background-color:var(--danger-500);color:#fff;color:var(--text-on-accent)}.admin-button.danger:hover{background-color:#c53030}.admin-button.danger.outline{background-color:initial;border-color:#ef4444;border-color:var(--danger-500);color:#ef4444;color:var(--danger-500)}.admin-button.danger.outline:hover{background-color:#fff5f5}.admin-button:disabled{cursor:not-allowed;opacity:.6}.admin-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#0009;display:flex;height:100%;justify-content:center;left:0;padding:16px;position:fixed;top:0;width:100%;z-index:1000}.admin-modal-content{background-color:#fff;background-color:var(--bg-sidebar);border-radius:16px;border-radius:var(--radius-lg);box-shadow:14px 17px 40px 4px #7090b014;box-shadow:var(--shadow-xl);max-width:500px;padding:30px;text-align:center;width:100%}.admin-modal-icon.danger{color:#ef4444;color:var(--danger-500)}.admin-modal-content h3{color:#1c3b6b;color:var(--text-primary);font-size:22px;margin:0 0 10px}.admin-modal-content p{color:#a0aec0;color:var(--text-secondary);line-height:1.6;margin:0 0 30px}.admin-modal-actions{display:flex;gap:15px;justify-content:center}.admin-sidebar-overlay,.mobile-menu-button,.mobile-sidebar-close-button{display:none}@media (max-width:1024px){.admin-page-container{flex-direction:column;height:auto;padding:0}.admin-sidebar{border-radius:0;height:100%;left:0;position:fixed;top:0;transform:translateX(-100%);z-index:1001}.admin-sidebar.is-open{transform:translateX(0)}.admin-main-content{padding:70px 16px 16px}.admin-page-header{background-color:#f4f7fe;background-color:var(--bg-main);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);box-sizing:border-box;left:0;padding:16px;position:fixed;top:0;width:100%;z-index:1000}.mobile-menu-button{display:inline-flex}.admin-sidebar-overlay{background-color:#00000080;display:block;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1000}.mobile-sidebar-close-button{align-items:center;background:#0000;border:none;border-radius:9999px;border-radius:var(--radius-full);color:#a0aec0;color:var(--text-secondary);cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:12px;top:12px;transition:all .2s;width:36px}.mobile-sidebar-close-button:hover{background-color:#f4f7fe;background-color:var(--bg-main);color:#1c3b6b;color:var(--text-primary)}}.generator-page-area{background-color:#fff;height:100vh;overflow-y:auto}.generator-header{background:#fff;border-bottom:1px solid #e1e8ed;box-shadow:0 2px 10px #00000014;padding:1.5rem 2rem}.header-controls{justify-content:space-between;margin-bottom:1rem}.generator-header h1{color:#2d3748;font-size:1.8rem;font-weight:700;gap:.75rem}.settings-button{align-items:center;background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;color:#6c757d;cursor:pointer;display:flex;font-size:1.25rem;justify-content:center;padding:.75rem;transition:all .3s ease}.settings-button.active,.settings-button:hover{background:var(--brand-500);border-color:var(--brand-500);color:#fff}.generation-mode-selector{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0}.mode-button{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:12px;color:#4a5568;cursor:pointer;display:flex;flex:1 1;font-size:.95rem;font-weight:600;gap:.75rem;justify-content:center;padding:1rem 1.5rem;transition:all .3s ease;width:-webkit-fit-content;width:fit-content}.mode-button:hover{background:#f8faff;border-color:var(--brand-500);box-shadow:0 4px 12px #007bff26;transform:translateY(-2px)}.mode-button.active{background:var(--brand-500);border-color:var(--brand-500);box-shadow:0 4px 12px #007bff40;color:#fff}.settings-panel{animation:slideDown .3s ease;background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 8px 25px #0000001a;margin:1rem 0;padding:1.5rem}.settings-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.settings-header h3{color:#2d3748;font-size:1.2rem;margin:0}.close-settings{background:none;border:none;border-radius:8px;color:#6c757d;cursor:pointer;padding:.5rem;transition:all .2s}.close-settings:hover{background:#f8f9fa;color:#dc3545}.setting-group{display:flex;flex-direction:column;gap:.75rem}.setting-group label{align-items:center;color:#2d3748;display:flex;font-size:.95rem;font-weight:600;gap:.5rem}.model-info{cursor:help;position:relative}.model-tooltip{background:#2d3748;border-radius:8px;bottom:100%;color:#fff;font-size:.8rem;left:50%;opacity:0;padding:.5rem .75rem;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .3s;white-space:nowrap;z-index:1000}.model-info:hover .model-tooltip{opacity:1}.model-select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#2d3748;font-size:.95rem;padding:.75rem 1rem;transition:all .3s}.model-select:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px #007bff1a;outline:none}.model-description{color:#6c757d;font-size:.85rem;font-style:italic}.mode-description{color:#4a5568;font-size:1rem;line-height:1.5}.generator-content{display:flex;flex:1 1;gap:2rem;margin:0 auto;padding:2rem}@media (max-width:1024px){.generator-content{flex-direction:column;padding:1rem}}.generator-form-container{flex:1 1;max-width:500px;min-width:400px}.generator-form{display:flex;flex-direction:column;gap:1.5rem;width:100%}.image-upload-section{background:#fff;border-radius:16px;box-shadow:0 4px 15px #00000014;padding:1.5rem}.upload-label{cursor:pointer;display:block}.upload-input{display:none}.upload-area{align-items:center;background:#fafbfc;border:3px dashed #cbd5e0;border-radius:12px;display:flex;flex-direction:column;gap:.75rem;padding:2.5rem 2rem;text-align:center;transition:all .3s ease}.upload-area:hover{background:#f0f7ff;border-color:var(--brand-500);transform:translateY(-2px)}.upload-area small{color:#6c757d;font-size:.85rem}.uploaded-images-preview{margin-top:1.5rem}.preview-header{color:#2d3748;font-size:.95rem;font-weight:600;margin-bottom:1rem}.preview-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.uploaded-image-item{align-items:center;display:flex;flex-direction:column;gap:.5rem}.image-preview{align-items:center;display:flex;justify-content:center;position:relative}.uploaded-image-thumb{border:2px solid #e2e8f0;border-radius:8px;height:80px;object-fit:cover;transition:all .3s;width:80px}.uploaded-image-thumb:hover{border-color:var(--brand-500);transform:scale(1.05)}.remove-image-button{align-items:center;background:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;position:absolute;right:-6px;top:-6px;transition:all .3s;width:24px}.remove-image-button:hover{background:#c82333;transform:scale(1.1)}.image-name{color:#6c757d;font-size:.8rem;max-width:80px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.prompt-input-section{background:#fff;border-radius:16px;box-shadow:0 4px 15px #00000014;box-sizing:border-box;padding:1.5rem}.prompt-label{color:#2d3748;font-size:.95rem;justify-content:space-between;margin-bottom:.75rem}.magic-badge,.prompt-label{align-items:center;display:flex;font-weight:600}.magic-badge{background:linear-gradient(135deg,#10b981,#059669);border-radius:20px;color:#fff;font-size:.75rem;gap:.25rem;padding:.25rem .75rem}.generator-textarea{background:#fafbfc;border:2px solid #e2e8f0;color:#2d3748;font-family:inherit;font-size:1rem;max-width:100%;min-height:120px;padding:1rem;transition:all .3s}.generator-textarea:focus{background:#fff;box-shadow:0 0 0 3px #007bff1a}.generator-textarea.error-border{border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.generator-textarea.magic-edit-active{background:#f0fff4;border-color:#10b981}.prompt-controls-row{align-items:center;display:flex;justify-content:space-between;margin-top:.75rem}.char-counter-container{display:flex;flex-direction:column;gap:.25rem}.char-counter{color:#6c757d;font-size:.85rem;font-weight:500}.char-counter.limit-reached{color:#dc3545}.char-warning{color:#dc3545;font-size:.75rem;font-weight:600}.magic-prompt-button{border-radius:10px;box-shadow:0 2px 10px #8b5cf64d;font-size:.9rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all .3s ease}.magic-prompt-button:hover:not(:disabled){background:var(--brand-500);box-shadow:0 4px 15px #8b5cf666;transform:translateY(-2px)}.magic-prompt-button:disabled{background:#9ca3af;box-shadow:none;transform:none}.generate-button{background-color:var(--brand-500);display:flex;font-size:1.1rem;font-weight:600;gap:.75rem;overflow:hidden;padding:1rem 2rem;position:relative;transition:all .3s ease}.generate-button:hover,.generate-button:not(:disabled):hover{box-shadow:0 6px 20px #007bff66;transform:translateY(-2px)}.generate-button:hover{background:#fafafa;color:#6c757d}.loading-dots{display:flex;gap:4px}.loading-dots span{animation:bounce 1.4s ease-in-out infinite;background:#fff;border-radius:50%;height:6px;width:6px}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.generator-output-container{border-radius:16px;box-shadow:0 4px 20px #0000001a;overflow:hidden;width:100%}.progress-bar{width:200px}.images-result-container{height:100%;overflow-y:auto;padding:2rem}.images-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.image-result-card{animation:cardAppear .5s ease-out;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 20px #0000001a;overflow:hidden;transition:all .3s ease}.image-result-card:hover{border-color:#cbd5e0;box-shadow:0 8px 30px #00000026;transform:translateY(-4px)}.card-header{align-items:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);display:flex;justify-content:space-between;padding:1rem 1.25rem}.image-number{color:#475569;font-size:.9rem;font-weight:600}.safety-badge{align-items:center;background:#10b981;border-radius:20px;color:#fff;display:flex;font-size:.75rem;font-weight:500;gap:.375rem;padding:.25rem .75rem}.safety-icon{font-size:.7rem}.image-container{background:#f8fafc;height:280px;overflow:hidden;position:relative;width:100%}.generated-image{display:block;height:100%;object-fit:contain;transition:transform .3s ease;width:100%}.image-result-card:hover .generated-image{transform:scale(1.02)}.image-overlay{align-items:flex-end;background:linear-gradient(180deg,#000000b3 0,#0006 30%,#0000001a 60%,#0000);bottom:0;display:flex;justify-content:center;left:0;opacity:0;padding:1.5rem;position:absolute;right:0;top:0;transition:all .3s ease}.image-result-card:hover .image-overlay{opacity:1}.action-buttons{display:flex;gap:.75rem;max-width:200px;width:100%}.download-action-btn,.edit-action-btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;flex:1 1;font-size:.85rem;font-weight:600;gap:.5rem;justify-content:center;min-width:0;padding:.75rem 1rem;text-decoration:none;transition:all .3s ease}.download-action-btn:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98166;transform:translateY(-2px)}.edit-action-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 4px 15px #8b5cf64d;color:#fff}.edit-action-btn:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 6px 20px #8b5cf666;transform:translateY(-2px)}.download-action-btn:active,.edit-action-btn:active{transform:translateY(0)}.card-footer{background:#fff;border-top:1px solid #f1f5f9;padding:1rem 1.25rem}.prompt-preview{color:#64748b;display:block;font-size:.8rem;font-style:italic;line-height:1.4}.magic-edit-indicator{align-items:center;animation:slideIn .5s ease-out;background:linear-gradient(135deg,#10b981,#059669);border-radius:10px;box-shadow:0 4px 15px #10b9814d;color:#fff;display:flex;font-size:.9rem;font-weight:500;gap:.75rem;padding:1rem 1.25rem}.magic-edit-indicator .indicator-icon{animation:pulse 2s infinite;font-size:1.1rem}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.images-grid .image-result-card:first-child{animation-delay:.1s}.images-grid .image-result-card:nth-child(2){animation-delay:.2s}.images-grid .image-result-card:nth-child(3){animation-delay:.3s}.images-grid .image-result-card:nth-child(4){animation-delay:.4s}@media (max-width:768px){.generator-header{padding:1rem}.generator-content{gap:1rem;padding:1rem}.generator-form-container{min-width:0;min-width:auto}.generation-mode-selector{flex-direction:column}.mode-button{min-width:0;min-width:auto}.images-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column;max-width:160px}.image-container{height:250px}.results-header{align-items:flex-start;flex-direction:column;gap:1rem}}@media (max-width:480px){.images-result-container{padding:1rem}.image-container{height:220px}.image-overlay{padding:1rem}.prompt-controls-row{align-items:flex-start;flex-direction:column;gap:1rem}}.button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:all .3s ease}.button.primary{background:var(--brand-500);color:#fff}.button.primary:hover:not(:disabled){background:var(--brand-600);transform:translateY(-1px)}.button.primary:disabled{background:#6c757d;cursor:not-allowed;transform:none}.button.secondary{background:#6c757d;color:#fff}.button.secondary:hover{background:#545b62}.button.icon-button{font-size:.9rem;padding:.5rem 1rem}.error-border{border-color:#dc3545!important}.limit-reached{color:#dc3545!important;font-weight:700}.presentation-generator .presentation-config-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:1rem}.presentation-generator .config-chip{background:#f8f9fa;border:1px solid #e2e8f0;border-radius:12px;color:#4a5568;display:flex;flex-direction:column;font-size:.85rem;gap:.25rem;padding:.75rem 1rem}.presentation-generator .config-chip strong{color:#1a202c;font-size:1rem}.presentation-layout{align-items:flex-start}.presentation-form-container{max-width:520px}.presentation-form-card{background:#fff;border-radius:16px;box-shadow:0 4px 15px #00000014;display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.presentation-controls-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.presentation-input,.presentation-select{border:2px solid #e2e8f0;border-radius:10px;font-size:.95rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.presentation-input:focus,.presentation-select:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px #007bff1f;outline:none}.range-value{color:#2d3748;font-weight:600}.theme-inputs .setting-group label{align-items:center;justify-content:space-between}.info-banner{align-items:center;background:#edf2ff;border:1px solid #c3dafe;border-radius:12px;color:#1e40af;display:flex;gap:.5rem;margin-top:1rem;padding:.75rem 1rem}.info-banner.warning{background:#fff5f5;border-color:#fed7d7;color:#c53030}.success-banner{align-items:center;background:#e6fffa;border:1px solid #99f6e4;border-radius:12px;color:#047857;display:flex;font-weight:600;gap:.5rem;margin-top:1rem;padding:.85rem 1rem}.presentation-output{display:flex;flex-direction:column;gap:1.5rem}.presentation-empty-state{background:#fff;border:2px dashed #e2e8f0;border-radius:16px;color:#4a5568;padding:2rem;text-align:center}.presentation-empty-state svg{color:var(--brand-500);font-size:2rem;margin-bottom:.5rem}.presentation-status-list{display:flex;flex-direction:column;gap:1.25rem}.presentation-status-card{background:#fff;border:1px solid #edf2f7;border-radius:18px;box-shadow:0 10px 25px #0f172a14;padding:1.5rem}.status-card-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.status-label{color:#718096;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.status-id-row{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin:.25rem 0}.status-id-row code{background:#f7fafc;border-radius:8px;color:#2d3748;font-size:.85rem;padding:.3rem .6rem}.status-title{color:#1a202c;font-size:1.1rem;font-weight:600}.status-pill{background:#edf2f7;border-radius:999px;color:#2d3748;font-size:.85rem;font-weight:600;padding:.4rem .85rem;text-transform:capitalize}.status-pill.status-completed,.status-pill.status-succeeded,.status-pill.status-success{background:#c6f6d5;color:#22543d}.status-pill.status-in-progress,.status-pill.status-pending,.status-pill.status-processing,.status-pill.status-running{background:#ebf8ff;color:#2c5282}.status-pill.status-error,.status-pill.status-failed{background:#fed7d7;color:#9b2c2c}.status-meta-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1rem}.status-prompt{color:#2d3748;font-size:.95rem;line-height:1.4}.status-datetime{align-items:center;color:#2d3748;display:flex;gap:.35rem}.status-warning-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.warning-pill{align-items:center;background:#fff4e6;border-radius:999px;color:#b7791f;display:inline-flex;font-size:.85rem;gap:.35rem;padding:.35rem .75rem}.status-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.link-button{align-items:center;background:#edf2f7;border:none;border-radius:10px;color:#2d3748;cursor:pointer;display:inline-flex;font-weight:600;gap:.4rem;padding:.6rem .9rem;text-decoration:none;transition:all .2s ease}.link-button:hover{background:#e2e8f0}.link-button.secondary{background:#fff;border:1px solid #e2e8f0}.icon-only-button{align-items:center;background:#edf2f7;border:none;border-radius:50%;color:#2d3748;cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.icon-only-button:hover{background:#e2e8f0}.browser-card{background:#fff;border:1px solid #edf2f7;border-radius:18px;box-shadow:0 8px 20px #0f172a0f;padding:1.25rem}.browser-card-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.browser-card-header h3{align-items:center;color:#1a202c;display:flex;font-size:1.05rem;gap:.5rem;margin:0}.browser-actions{display:flex;flex-wrap:wrap;gap:.5rem}.search-input-wrapper{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;display:inline-flex;gap:.35rem;padding:.35rem .75rem}.search-input-wrapper input{background:#0000;border:none;font-size:.9rem;outline:none}.browser-empty,.browser-loading{background:#f8fafc;border-radius:10px;color:#4a5568;padding:1rem}.browser-list{display:flex;flex-direction:column;gap:.75rem;list-style:none;margin:0;padding:0}.browser-item{align-items:center;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:.75rem;justify-content:space-between;padding:.75rem}.browser-item strong{display:block;font-size:.95rem}.browser-item small{color:#718096;font-size:.8rem}.browser-item-actions{display:flex;gap:.5rem}.metadata-details{background:#f8fafc;border-radius:10px;margin-top:.5rem;padding:.5rem .75rem}.metadata-details summary{color:#2b6cb0;cursor:pointer;font-weight:600}.raw-payload{background:#1a202c;border-radius:8px;color:#e2e8f0;font-size:.8rem;margin:.75rem 0 0;max-height:220px;overflow:auto;padding:.75rem}@media (max-width:1024px){.presentation-form-container{max-width:100%}.status-actions,.status-card-header{flex-direction:column}.status-actions{align-items:stretch}}.cad-designer-page{background-color:#f8f9fa;display:flex;flex-direction:column;height:100vh;overflow:hidden}.cad-header{background:#fff;border-bottom:1px solid #e1e8ed;box-shadow:0 2px 10px #00000014;padding:1.5rem 2rem;z-index:10}.cad-header .header-controls{align-items:center;display:flex;gap:1rem;justify-content:space-between}.cad-header h1{align-items:center;color:#2d3748;display:flex;flex:1 1;font-size:1.8rem;font-weight:700;gap:.75rem;margin:0}.back-button{background:#f8f9fa;border:2px solid #e9ecef;color:#6c757d;display:flex;font-size:1.25rem;padding:.75rem;transition:all .3s ease}.back-button:hover{background:var(--brand-500);border-color:var(--brand-500);color:#fff;transform:translateX(-2px)}.header-actions{display:flex;gap:.5rem}.icon-button{align-items:center;background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;color:#6c757d;cursor:pointer;display:flex;font-size:1.25rem;justify-content:center;padding:.75rem;transition:all .3s ease}.icon-button:hover:not(:disabled){background:var(--brand-500);border-color:var(--brand-500);color:#fff;transform:translateY(-2px)}.icon-button.danger:hover:not(:disabled){background:#dc3545;border-color:#dc3545;color:#fff}.icon-button:disabled{cursor:not-allowed;opacity:.4}.cad-content{display:flex;flex:1 1;gap:1.5rem;overflow:hidden;padding:1.5rem}.cad-left-panel{display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto;padding-right:.5rem;width:400px}.cad-right-panel{display:flex;flex:1 1;flex-direction:column;min-width:0}.command-section{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.command-section h2{align-items:center;color:#2d3748;display:flex;font-size:1.2rem;gap:.5rem;margin:0 0 1rem}.command-input{border:2px solid #e2e8f0;border-radius:12px;box-sizing:border-box;font-family:inherit;font-size:1rem;padding:1rem;resize:vertical;transition:all .3s ease;width:100%}.command-input:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px #007bff1a;outline:none}.input-footer{align-items:center;display:flex;justify-content:space-between;margin-top:1rem}.input-footer span{color:#6c757d;font-size:.875rem}.input-footer span.text-warning{color:#f59e0b;font-weight:600}.submit-button{align-items:center;background:var(--brand-500);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.submit-button:hover:not(:disabled){background:var(--brand-600);box-shadow:0 4px 12px #007bff40;transform:translateY(-2px)}.submit-button:disabled{cursor:not-allowed;opacity:.5}.error-message{background:#fee;border:2px solid #fcc;border-radius:12px;color:#c33}.error-message,.success-message{align-items:center;display:flex;font-size:.95rem;gap:.5rem;margin-top:1rem;padding:1rem}.success-message{background:#e8f5e9;border:2px solid #a5d6a7;border-radius:12px;color:#2e7d32;flex-wrap:wrap;justify-content:space-between}.generation-time-badge{background:#2e7d321a;color:#2e7d32;margin-left:auto}.examples-section{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.examples-section h3{color:#2d3748;font-size:1rem;margin:0 0 1rem}.example-commands{display:flex;flex-direction:column;gap:.5rem}.example-button{background:#f8f9fa;border:2px solid #e9ecef;border-radius:10px;color:#495057;cursor:pointer;font-size:.9rem;padding:.75rem 1rem;text-align:left;transition:all .3s ease}.example-button:hover:not(:disabled){background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-600);transform:translateX(4px)}.example-button:disabled{cursor:not-allowed;opacity:.5}.bom-section{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.bom-section h3{align-items:center;color:#2d3748;display:flex;font-size:1rem;gap:.5rem;margin:0 0 1rem}.bom-summary{display:flex;flex-direction:column;gap:1rem}.bom-item{align-items:center;background:#f8f9fa;border-radius:10px;display:flex;gap:1rem;padding:1rem}.bom-item svg{color:var(--brand-500);font-size:1.5rem}.bom-item>div{display:flex;flex-direction:column;gap:.25rem}.bom-label{color:#6c757d;font-size:.875rem}.bom-value{color:#2d3748;font-size:1.1rem;font-weight:700}.bom-items-list{border-top:2px solid #e9ecef;margin-top:1rem;padding-top:1rem}.bom-items-list h4{color:#6c757d;font-size:.9rem;letter-spacing:.5px;margin:0 0 .75rem;text-transform:uppercase}.bom-list-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:.5rem;padding:.75rem}.bom-list-item .item-id{color:var(--brand-600);font-weight:600}.bom-list-item .item-type{color:#6c757d;flex:1 1;text-align:center}.bom-list-item .item-volume{color:#2d3748;font-weight:600}.download-section{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.download-section h3{align-items:center;color:#2d3748;display:flex;font-size:1rem;gap:.5rem;margin:0 0 1rem}.download-buttons{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}.download-button{align-items:center;background:#f8f9fa;border:2px solid #e9ecef;border-radius:10px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem;transition:all .3s ease}.download-button:hover{background:var(--brand-500);border-color:var(--brand-500);box-shadow:0 4px 12px #007bff40;color:#fff;transform:translateY(-2px)}.download-button svg{font-size:1.25rem}.download-info{display:flex;flex-direction:column;gap:.25rem}.download-format{font-size:.9rem;font-weight:700}.download-size{font-size:.75rem;opacity:.8}.viewer-container{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;height:100%;overflow:hidden;position:relative;width:100%}.viewer-placeholder{align-items:center;color:#adb5bd;display:flex;flex-direction:column;height:100%;justify-content:center}.viewer-placeholder p{font-size:1.1rem;font-weight:600;margin:.5rem 0}.viewer-placeholder .placeholder-hint{color:#ced4da;font-size:.95rem;font-weight:400}.viewer-overlay{bottom:1rem;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%)}.viewer-hint{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000bf;border-radius:20px;color:#fff;font-size:.85rem;padding:.75rem 1.5rem}@media (max-width:1024px){.cad-content{flex-direction:column}.cad-left-panel{max-height:50vh;width:100%}.cad-right-panel{height:50vh}.download-buttons{grid-template-columns:1fr}}@media (max-width:768px){.cad-header{padding:1rem}.cad-header h1{font-size:1.4rem}.cad-content{gap:1rem;padding:1rem}.header-actions{gap:.25rem}.back-button,.icon-button{font-size:1rem;padding:.5rem}}.cad-left-panel::-webkit-scrollbar{width:8px}.cad-left-panel::-webkit-scrollbar-track{background:#0000}.cad-left-panel::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.cad-left-panel::-webkit-scrollbar-thumb:hover{background:#a0aec0}.memory-page{background:linear-gradient(135deg,#f5f7fa,#e4e9f2);min-height:100vh;padding:2rem}.memory-header{background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;margin-bottom:2rem;padding:2rem}.header-top{gap:2rem;justify-content:space-between;margin-bottom:1.5rem}.back-button-mem,.header-top{align-items:center;display:flex}.back-button-mem{background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;color:#6c757d;cursor:pointer;flex-shrink:0;font-size:1.5rem;justify-content:center;padding:.75rem;transition:all .3s ease}.back-button-mem:hover{background:var(--brand-500);border-color:var(--brand-500);color:#fff;transform:translateX(-2px)}.header-title{flex:1 1}.header-title h1{align-items:center;color:#2d3748;display:flex;font-size:2rem;font-weight:700;gap:.75rem;margin:0 0 .5rem}.header-subtitle{color:#718096;font-size:1rem;margin:0}.create-button{align-items:center;background:var(--brand-500);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;font-weight:600;gap:.5rem;padding:.875rem 1.5rem;transition:all .3s ease}.create-button:hover{background:var(--brand-600);box-shadow:0 4px 12px #007bff40;transform:translateY(-2px)}.memory-filters{border-top:2px solid #e9ecef;gap:1rem;justify-content:space-between;padding-top:1.5rem}.filter-group,.memory-filters{align-items:center;display:flex}.filter-group{gap:.75rem}.filter-group label{color:#4a5568;font-weight:600}.filter-group select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:.95rem;padding:.5rem 1rem;transition:all .3s ease}.filter-group select:focus{border-color:var(--brand-500);outline:none}.memory-stats{color:#718096;font-size:.95rem}.memory-stats strong{color:var(--brand-500);font-weight:700}.error-banner{align-items:center;animation:slideDown .3s ease;background:#fee;border:2px solid #fcc;border-radius:12px;color:#c33;display:flex;gap:.75rem;margin-bottom:1.5rem;margin-left:auto;max-width:-webkit-fit-content;max-width:fit-content;padding:1rem 60px 1rem 1.5rem;position:absolute;right:0;top:60px}.error-banner button{background:none;border:none;color:#c33;cursor:pointer;font-size:1.25rem;margin-left:auto;padding:.25rem}.empty-state,.loading-state{background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;padding:4rem 2rem;text-align:center}.loading-state{align-items:center;color:var(--brand-500);display:flex;font-size:1.1rem;font-weight:600;gap:1rem;justify-content:center}.empty-state svg{color:#cbd5e0;margin-bottom:1.5rem}.empty-state h2{color:#2d3748;margin:0 0 .5rem}.empty-state p{color:#718096;margin:0 0 2rem}.memories-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-bottom:2rem}.memory-card{background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;transition:all .3s ease}.memory-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.memory-card-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.memory-badges{display:flex;flex-wrap:wrap;gap:.5rem}.badge{border-radius:20px;color:#fff;font-size:.75rem;font-weight:600;padding:.375rem .75rem}.memory-actions{display:flex;gap:.5rem}.action-btn{align-items:center;background:#f8f9fa;border:none;border-radius:8px;color:#6c757d;cursor:pointer;display:flex;font-size:1rem;justify-content:center;padding:.5rem;transition:all .3s ease}.action-btn.edit:hover{background:var(--brand-500);color:#fff}.action-btn.archive:hover{background:#f59e0b;color:#fff}.action-btn.delete:hover{background:#ef4444;color:#fff}.memory-content-text{color:#2d3748;flex:1 1;font-size:.95rem;line-height:1.6}.memory-tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{align-items:center;background:#e9ecef;border-radius:12px;color:#495057;display:flex;font-size:.8rem;gap:.375rem;padding:.25rem .75rem}.tag.editable{padding-right:.375rem}.tag button{align-items:center;background:none;border:none;color:#6c757d;cursor:pointer;display:flex;margin-left:.25rem;padding:0}.tag button:hover{color:#dc3545}.memory-card-footer{border-top:1px solid #e9ecef;color:#9ca3af;font-size:.85rem;padding-top:.5rem}.pagination{gap:2rem;justify-content:center;padding:2rem 0}.page-button,.pagination{align-items:center;display:flex}.page-button{background:#fff;border:2px solid #e9ecef;border-radius:12px;color:#495057;cursor:pointer;font-size:.95rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all .3s ease}.page-button:hover:not(:disabled){background:var(--brand-500);border-color:var(--brand-500);color:#fff;transform:translateY(-2px)}.page-button:disabled{cursor:not-allowed;opacity:.4}.page-info{color:#4a5568;font-weight:600}.modal-overlay{align-items:center;animation:fadeIn .3s ease;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:slideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;padding:2rem}.modal-header h2{color:#2d3748;font-size:1.5rem;margin:0}.close-button{align-items:center;background:#f8f9fa;border:none;border-radius:8px;color:#6c757d;cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;padding:.5rem;transition:all .3s ease}.close-button:hover{background:#e9ecef;color:#495057}.modal-body{gap:1.5rem;padding:2rem}.form-group,.modal-body{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:#2d3748;font-size:.95rem;font-weight:600}.required{color:#ef4444}.form-group input,.form-group select,.form-group textarea{border:2px solid #e2e8f0;border-radius:12px;font-family:inherit;font-size:1rem;padding:.875rem;transition:all .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px #007bff1a;outline:none}.form-group textarea{min-height:120px;resize:vertical}.char-count{color:#9ca3af;font-size:.85rem;text-align:right}.char-count.warning{color:#f59e0b;font-weight:600}.tag-input-wrapper{display:flex;gap:.5rem}.tag-input-wrapper input{flex:1 1}.add-tag-button{align-items:center;background:var(--brand-500);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;justify-content:center;padding:.875rem 1rem;transition:all .3s ease}.add-tag-button:hover{background:var(--brand-600)}.tags-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.modal-footer{border-top:2px solid #e9ecef;display:flex;gap:1rem;justify-content:flex-end;padding:2rem}.cancel-button,.save-button{align-items:center;border-radius:12px;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.875rem 1.5rem;transition:all .3s ease}.cancel-button{background:#f8f9fa;border:2px solid #e9ecef;color:#495057}.cancel-button:hover:not(:disabled){background:#e9ecef}.save-button{background:var(--brand-500);border:none;color:#fff}.save-button:hover:not(:disabled){background:var(--brand-600);box-shadow:0 4px 12px #007bff40;transform:translateY(-2px)}.cancel-button:disabled,.save-button:disabled{cursor:not-allowed;opacity:.5}.spinner{animation:spin 1s linear infinite}@media (max-width:768px){.memory-page{padding:1rem}.header-top{align-items:stretch;flex-direction:column}.header-title h1{font-size:1.5rem}.memory-filters{align-items:stretch;flex-direction:column}.memories-grid{grid-template-columns:1fr}.modal-content{max-height:95vh;width:95%}.modal-body,.modal-footer,.modal-header{padding:1.5rem}}.generator-page-area{background:linear-gradient(180deg,#f8fafc,#f1f5f9);color:#1e293b;display:flex;flex-direction:column;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;min-height:100vh}.generator-header{background:linear-gradient(180deg,#fff,#fbfbff);border-bottom:1px solid #0f172a0a;box-shadow:0 4px 20px #1018280f;padding:28px 24px 18px;position:relative;z-index:5}.generator-header:after{background:var(--brand-500);content:"";height:3px;left:0;opacity:.12;position:absolute;right:0;top:0}.header-controls{align-items:center;display:flex;gap:16px;margin-bottom:10px}.back-button{align-items:center;background:var(--brand-500);border:none;border-radius:12px;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;padding:10px}.generator-header h1{align-items:center;display:flex;font-size:2rem;font-weight:800;gap:12px;margin:0}.generator-header h1 svg{align-items:center;background:var(--brand-500);border-radius:10px;box-shadow:0 10px 30px #6366f11f;color:#fff;display:inline-flex;height:20px;justify-content:center;padding:8px;width:20px}.generator-header p{color:#64748b;font-size:15px;line-height:1.6;margin:8px 0 0;max-width:900px}.generator-content{grid-gap:4rem 4rem;align-items:start;box-sizing:border-box;display:grid;gap:4rem 4rem;grid-template-columns:420px 1fr;margin:28px auto;max-width:1400px;padding:0 20px 60px;width:100%}.generator-form-container{align-self:start;position:-webkit-sticky;position:sticky;top:22px}.video-tabs{background:#fff;border-bottom:2px solid #0f172a14;border-radius:20px 20px 0 0;display:flex;gap:0;margin-bottom:0;overflow:hidden}.video-tab{background:#0000;border:none;border-bottom:3px solid #0000;color:#64748b;cursor:pointer;flex:1 1;font-size:14px;font-weight:700;padding:14px 16px;transition:all .2s ease}.video-tab:hover{background:#6366f10d;color:var(--brand-500)}.video-tab.active{background:#6366f114;border-bottom-color:var(--brand-500);color:var(--brand-500)}.generator-form{background:#fff;border-radius:20px;box-shadow:0 8px 30px #1018280a;padding:22px}.generator-textarea{background:linear-gradient(180deg,#fbfdff,#fff);border:1px solid #0f172a0f;border-radius:12px;box-sizing:border-box;color:#1e293b;font-size:15px;line-height:1.6;min-height:140px;padding:14px;resize:vertical;width:100%}.generator-textarea:focus{border-color:var(--brand-500);outline:none}.generator-textarea[disabled]{opacity:.7}.magic-prompt-button{align-items:center;background:var(--brand-500);border:none;border-radius:12px;box-shadow:0 8px 28px #6366f11f;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:700;gap:10px;margin:12px 0 16px;padding:10px 14px}.magic-prompt-button:disabled{cursor:not-allowed;opacity:.6}.magic-prompt-button .spinner-icon{height:18px;width:18px}.form-controls{display:flex;flex-direction:column;gap:18px}.aspect-ratio-selector,.model-selector,.resolution-selector{display:flex;flex-direction:column;gap:8px}.aspect-ratio-selector label,.model-selector label,.resolution-selector label{color:#1e293b;font-weight:700}select{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #0f172a0f;border-radius:10px;font-weight:600;padding:12px}select:disabled{cursor:not-allowed;opacity:.7}.testing-notice{background:linear-gradient(90deg,#fff7e6,#fffef8);border:1px solid #f59e0b1f;border-radius:12px;color:#92400e;font-size:14px;font-weight:600;padding:10px 12px}.testing-message{align-items:flex-start;display:flex;gap:8px;margin:0}.aspect-ratio-note{background:linear-gradient(90deg,#f1f5f9,#f8fafc);border:1px solid #64748b1f;border-radius:10px;margin-top:4px;padding:8px 12px}.aspect-ratio-note p{color:#64748b;font-size:13px;font-weight:500;margin:0}.image-picker{display:flex;flex-direction:column;gap:8px}.image-picker label{font-weight:700}.image-picker input[type=file]{background:linear-gradient(180deg,#fff,#fbfdff);border:1px dashed #0f172a0f;border-radius:10px;cursor:pointer;padding:8px 10px}.image-picker input[disabled]{cursor:not-allowed;opacity:.6}.availability-warning{align-items:center;background:linear-gradient(90deg,#fff7f0,#fffbf5);border:1px solid #f59e0b1f;border-radius:10px;color:#92400e;display:flex;font-weight:600;gap:8px;padding:8px}.availability-message,.file-info{color:var(#64748b);font-size:13px}.file-info{background:linear-gradient(180deg,#fbfdff,#fff);border:1px solid #0f172a0a;border-radius:8px;display:inline-block;padding:6px 10px}.advanced-options summary{align-items:center;background:linear-gradient(180deg,#fbfdff,#f8fafc);border:1px solid #0f172a08;border-radius:12px;cursor:pointer;display:flex;font-weight:700;gap:10px;padding:12px}.advanced-options[open] summary:after{transform:rotate(90deg)}.advanced-controls{padding-top:12px}.negative-prompt input{border:1px solid #0f172a0f;border-radius:10px;padding:10px;width:100%}.generate-button{align-items:center;background:var(--brand-500);border:none;border-radius:12px;color:#fff;cursor:pointer;display:inline-flex;font-weight:800;gap:8px;justify-content:center;padding:14px;width:100%}.generate-button:disabled{cursor:not-allowed;opacity:.6}.generator-output-container{background:#fff;border:1px solid #0f172a08;border-radius:20px;box-shadow:0 4px 20px #1018280f;display:flex;flex-direction:column;min-height:600px;padding:22px}.loading-placeholder{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:500px;padding:3rem 2rem;text-align:center}.loading-spinner{margin-bottom:2rem}.spinner-icon.large{animation:spin 1.5s linear infinite;color:var(--brand-500);font-size:3rem}.loading-content h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.loading-content p{color:#6c757d;line-height:1.6;margin-bottom:2rem}.progress-bar{background:#e2e8f0;border-radius:3px;height:6px;overflow:hidden;width:250px}.progress-fill{animation:progress 2s ease-in-out infinite;background:linear-gradient(90deg,var(--brand-500),#0056b3);border-radius:3px;height:100%}@keyframes progress{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.video-result-container{height:100%;overflow-y:auto;padding:2rem}.results-header{align-items:center;border-bottom:2px solid #f1f3f4;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.results-header h3{color:#2d3748;font-size:1.4rem;font-weight:700;margin:0}.results-count{background:var(--brand-500);color:#fff;padding:.5rem 1rem}.generation-time-badge,.results-count{border-radius:20px;font-size:.85rem;font-weight:600}.generation-time-badge{align-items:center;background:#667eea1a;color:var(--brand-600);display:inline-flex;gap:.4rem;padding:.4rem .8rem}.result-message{background:linear-gradient(90deg,#f0fdf4,#dcfce7);border:1px solid #bbf7d066;border-radius:12px;color:#059669;font-weight:700;margin-bottom:1.5rem;padding:10px 14px;text-align:center}.video-card{animation:cardAppear .5s ease-out;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 20px #0000001a;overflow:hidden;transition:all .3s ease}@keyframes cardAppear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.video-card:hover{box-shadow:0 8px 30px #00000026;transform:translateY(-4px)}.video-player-container{background:#000;border-radius:0;overflow:hidden;position:relative;width:100%}.video-player-container video{display:block;height:auto;width:100%}.video-actions{background:linear-gradient(135deg,#f8fafc,#f1f5f9);display:flex;gap:.75rem;justify-content:center;padding:1.25rem}.download-action-btn{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:12px;box-shadow:0 4px 15px #10b9814d;color:#fff;cursor:pointer;display:flex;flex:1 1;font-size:.95rem;font-weight:600;gap:.5rem;justify-content:center;max-width:200px;padding:.75rem 1.5rem;text-decoration:none;transition:all .3s ease}.download-action-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98166;transform:translateY(-2px)}.download-action-btn:active{transform:translateY(0)}.download-action-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.idle-placeholder{align-items:center;display:flex;height:100%;justify-content:center;min-height:500px;padding:3rem}.idle-content{max-width:400px;text-align:center}.idle-icon{color:#cbd5e0;font-size:4rem;margin-bottom:1.5rem}.idle-content h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.idle-content p{color:#6c757d;line-height:1.6;margin-bottom:.5rem}.idle-content .loading-info{color:var(--brand-500);font-weight:600;gap:.5rem}.error-placeholder,.idle-content .loading-info{align-items:center;display:flex;justify-content:center}.error-placeholder{flex-direction:column;height:100%;min-height:500px;padding:3rem 2rem;text-align:center}.error-icon{color:#dc3545;font-size:3rem;margin-bottom:1.5rem}.error-content h3{color:#dc3545;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.error-content p{color:#6c757d;line-height:1.6;margin:0;max-width:400px}.error-suggestion{background:#fff7ed;border-left:4px solid #f59e0b;border-radius:12px;margin-top:1.5rem;max-width:500px;padding:1rem 1.25rem}.error-suggestion p{color:#92400e;font-size:.9rem;margin:0;text-align:left}.spinner-icon{height:18px;width:18px}.image-upload-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:16px}.image-upload-item{display:flex;flex-direction:column;gap:8px}.image-upload-item label{color:#1e293b;font-weight:700}.image-upload-item input[type=file]{background:linear-gradient(180deg,#fff,#fbfdff);border:1px dashed #0f172a0f;border-radius:10px;cursor:pointer;padding:8px 10px}.image-preview{border:1px solid #0f172a0f;border-radius:8px;margin-top:8px;max-height:150px;object-fit:contain;width:100%}.video-upload{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.video-upload label{color:#1e293b;font-weight:700}.video-upload input[type=file]{background:linear-gradient(180deg,#fff,#fbfdff);border:1px dashed #0f172a0f;border-radius:10px;cursor:pointer;padding:8px 10px}.video-upload .file-info{background:linear-gradient(180deg,#fbfdff,#fff);border:1px solid #0f172a0a;border-radius:8px;color:#64748b;font-size:13px;padding:8px 12px}.extension-warning{align-items:flex-start;background:linear-gradient(90deg,#fff7f0,#fffbf5);border:1px solid #f59e0b33;border-radius:12px;color:#92400e;display:flex;gap:10px;margin-bottom:16px;padding:12px}.extension-warning svg{flex-shrink:0;margin-top:2px}.extension-warning p{font-size:14px;line-height:1.5;margin:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{border-radius:8px;outline:3px solid #6366f124;outline-offset:2px}.copied-hint{background:#16a34a;border-radius:8px;box-shadow:0 6px 18px #10b9811f;color:#fff;font-size:13px;padding:6px 10px;position:absolute;right:8px;top:-36px}@media (max-width:1100px){.generator-content{gap:20px;grid-template-columns:360px 1fr}.generator-form-container{position:-webkit-sticky;position:sticky;top:16px}}@media (max-width:900px){.generator-content{grid-template-columns:1fr;padding:0 16px 40px}.generator-form-container{position:static}.magic-prompt-button{justify-content:center;width:100%}.generator-header h1{font-size:20px}.image-upload-grid{grid-template-columns:1fr}}@media (max-width:480px){.generator-header{padding:16px 12px}.generator-content{padding:0 12px 30px}.generator-textarea{min-height:120px}.video-player-container{border-radius:0;max-width:100%}.video-result-container{padding:1rem}.results-header{align-items:flex-start;flex-direction:column;gap:1rem}.download-action-btn{max-width:100%}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.spinner-icon{animation:none!important}}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f8fafc,#f1f5f9);color:#1e293b;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;line-height:1.6;margin:0;padding:0}#root,body,html{height:100%;width:100%}#root{display:flex;flex-direction:column}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-loading-fullscreen{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#f8fafc,#f1f5f9);color:#1e293b;display:flex;flex-direction:column;font-size:1.2em;gap:1.5rem;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:9999}.spinner-icon{animation:spin 1s linear infinite}.spinner-icon.large{font-size:3em}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.privacy-consent-container{align-items:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;padding:2rem 1rem}.privacy-consent-box{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#fff;border:1px solid #f1f5f9;border-radius:20px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-width:800px;padding:2.5rem;text-align:left;width:100%}.privacy-logo{display:block;height:auto;margin:0 auto 1rem;width:120px}.privacy-consent-box h2{color:#1c2e4a;font-size:2rem;margin-bottom:.5rem;text-align:center}.privacy-consent-box .greeting{color:#555;font-size:1.1rem;margin-bottom:2rem;text-align:center}.privacy-policy-text-area{background-color:#fafafa;border:1px solid #e0e0e0;border-radius:8px;color:#333;font-size:.9rem;line-height:1.6;margin-bottom:1.5rem;max-height:40vh;overflow-y:auto;padding:1.5rem}.privacy-policy-text-area h3{border-bottom:1px solid #ddd;color:#1c2e4a;font-size:1.2rem;margin-bottom:1rem;margin-top:0;padding-bottom:.5rem}.privacy-policy-text-area ul{padding-left:20px}.privacy-policy-text-area li{margin-bottom:.5rem}.consent-checkbox-label{align-items:center;color:#444;cursor:pointer;display:flex;font-size:1rem;gap:10px;margin-bottom:2rem}.consent-checkbox-label input[type=checkbox]{accent-color:#0056b3;cursor:pointer;height:20px;width:20px}.privacy-consent-box .button-group{display:flex;gap:1rem;justify-content:flex-end;width:100%}.privacy-consent-box .button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s ease-in-out}.privacy-consent-box .button.primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;color:#fff}.privacy-consent-box .button.primary:hover:not(:disabled){box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px)}.privacy-consent-box .button.secondary{background-color:#e9ecef;color:#343a40}.privacy-consent-box .button.secondary:hover:not(:disabled){background-color:#d6d8db}.privacy-consent-box .button:disabled{cursor:not-allowed;opacity:.6}.privacy-consent-box .error-message{align-items:center;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#d93025;display:flex;gap:8px;justify-content:center;margin-bottom:1.5rem;padding:1rem;text-align:center}.btn-icon-wrapper{border-radius:8px;display:grid;height:44px;min-width:44px;place-items:center}
/*# sourceMappingURL=main.5914da20.css.map*/