.header-auth[data-v-434b31c8]{align-items:center;gap:8px;display:flex}.user-chip[data-v-434b31c8]{color:inherit;background:#ffffff14;border-radius:999px;align-items:center;gap:6px;max-width:180px;padding:4px 10px;text-decoration:none;display:inline-flex}.user-chip__name[data-v-434b31c8]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-chip__role[data-v-434b31c8]{text-transform:uppercase;letter-spacing:.05em;color:#ffd166;font-size:.7rem}.btn--compact[data-v-434b31c8]{padding:6px 12px;font-size:.85rem}.theme-toggle[data-v-434b31c8]{border:1px solid var(--border);width:34px;height:34px;color:var(--text);cursor:pointer;background:0 0;border-radius:9px;flex:none;justify-content:center;align-items:center;font-size:15px;transition:background .15s;display:inline-flex}.theme-toggle[data-v-434b31c8]:hover{background:var(--bg-softer)}@media (width<=640px){.user-chip[data-v-434b31c8]{max-width:120px}.header-auth[data-v-434b31c8]{gap:6px}}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAAQsABAAAAAACBQAAAPSAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbgQwcLgZgP1NUQVQqAFwRCAqDJIJwCxQAATYCJAMiBCAFhHwHZwwHG7MGAC4KY3BPU+JujmTy/q5FrS2o4Hn0r+/cJDNe0B/WiqgkVbIq4f219nsnuMRN4HuHaxLRPbH9a4doJltjKJHpHgqUBNHk7jmRSCOO2soPNrj8jy8cuhz/WDZq25oCT5xY2+q4sainL5C0TMfWuSmbQlvD3l4sy9acRIubAT5A1O3eLAJ4AQCFIGgEAdzU18tISJpZgcodySOo/I4ygUomgGUhgPTuyhPIBQQQDC6cCE4EBThRVGQCQeroaADr4fBnjdtARoRRKMiEpR5FQy3c2iRATRCzjbolX7GBmqpaAKRflUg72tOUxcUBKC6WNXMAx6ja+/VLywPmi1QGZNHVa6BC1RegKgN5P1soSYPL6MO7e1IzgEIAxClfAVCABkoyvKRhkgIojBOFnarGvHJcVNX9FrB9wnrlmK5iydM8NPhKglgoAoALgOIAD9AdsBioCOgQUBZB2KMRxNBOX5NXuL3HuIdPXa8iFFaC5lKEdmca7enh7t3x/s4dmbjv6t3mzf/uKsI77qm3Krrv8mjPtNu3mbD70q2Cgvdb25lw25i6W8Nzi3KDpBgXU31ZBe7Ikst71NUK67in3sn4vP7L+mKfN3zZcPSzfa79Ao3g7Iqpzqlzs9v9H/DbHHKHDij/jhOFuy8Oy+sx2TD195p6u5dOLRwbWLdR8+D85qsDozfaEpp7z6Fduz6E5HQcbTr4Ozne9qVGxaNHFRu3C23a+rBn3UaT1CZ4CXWVys6Y7zw2LydjAfJvnj++efU2JP7SpKs+dev6XJ1UqmD0yubG1QrotdEABw5JxzLfyXXwAWBAL9fn5dNdQgDZN/Ts8s8t2pdEfHNq/Q7gafTMKQDP2tTIxbTG9wY7CgCB/6pjvRrzv7Re/k15p85lFhF4agX4Or2UOoDyKmmAi1Am5RlR9lMI4GUhGjEuYKeE6CahasqaFIXFbdIE+C01OJONZu5Mdqo6MBUmSJOpqHK1xmIK8QIxhAE5T+WlOcLn8kiziBM+JbYqcYRSEid7HtR6UobQz2IRjnG+DDECFpMvglGcyzJv2kys8tZc/BqC+/9UVAJpg/WwtRngckgUFRG22bA+WLte2Aki1aWZizjRrk+PPid2I9Vvzpg5A9VAS925lMgh7sFFxROojHO8g2JG2tnatUNWeAjE0l/AUQHimISMUSQPxQlIQ7ejLh91iHIEO0bFLC6KckUIhyuXBIvKm22ks7i1luPnCC6gph9RaNFixCZ2e2wnTlKSM7Sfb/vE+shvtvvEBRTu2FlJcpYNz6E2QOFQSNTfJ8hQ+CZWu80M)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:500;src:url(./unbounded-cyrillic-500-normal-vuFlZByi.woff2)format("woff2"),url(./unbounded-cyrillic-500-normal-CRDmNtZY.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:500;src:url(./unbounded-vietnamese-500-normal-BdVOZ7mI.woff2)format("woff2"),url(./unbounded-vietnamese-500-normal-DRrV6_OG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:500;src:url(./unbounded-latin-ext-500-normal-BTIpesyw.woff2)format("woff2"),url(./unbounded-latin-ext-500-normal-DRTUZjT4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:500;src:url(./unbounded-latin-500-normal-4slEIF53.woff2)format("woff2"),url(./unbounded-latin-500-normal-ZsrgWWU1.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,d09GMgABAAAAAAQMABAAAAAAB+AAAAOwAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbgQwcLgZgP1NUQVQqAFwRCAqDJIJtCxQAATYCJAMiBCAFhEYHZwwHG3oGIxFmfM0O8M/D2IE2KXexlvRX30jl4k0ByoIFW5Pm075+YpPjCMK6+K9Osusn4APwSeKJ0ARA/zfCdz9c0xILi5BPgVU7UACUe6B7QO0mZzupNnE5/rFs1LZf+AIRJzI3rkEf/YdjYxmFr42NC6Q839aFT4hla06fRTcFxCDqdm5WoAtIQshCoG2qheXlV1x9ff23O2Tf3fXffZv999RfgYpA7LbDvntqIhCKlqbQFBKakuEKFjRRkqFa83rN1eChoJIElHjEY5huuu3gAmICbC/po/SQGunUtDFWwzixpbmxkUXUQPIDWHOZNbnM6NF35U+qPOX7GEmc+8KL0mLpe0bLQmgK9BcYLh200877R0ESEO30EEjI6C8L9FesjJ6akrrRlnGZxyONvquC7hvVp36BZcQH6wr9MiEqeoEW6IsOdsLZGE6GrFIlg3cIFZDNOUXRc6tOqd0+aDK79tBNso2ily0l1fLOzu3dtjn19dfjmDtfeGOjjZ54RZC/3j711eHtN2h557TXXnP0bc++uv76dz15k6NfUxbfGNV5tUv7Rp9Dp/mw/PrtxPn3nxHPDHPcXf36Ct89+f2Tje/23z91xXc/3/HzqVjujbOurV17wOv637034uzFR579nnBtnuy168WLbaSuOOngf6u8aXGPIY/sU520Wn+lk5VnbvNXW36zXS5edGfh/IXW+1526gV/71vZuLT1kLeOvGbQ5HWHq56vO+2+Z2orOW6525WL9O+72eabLfDYWeME7e2e//Kma5/3ycsXfv1vY1z36wsHbXrixltthQ+kiQINjVibZnfTK2ZDkB/Kz/Pgy2cRdx5w/rdL9t6q1+K/NXP+Eh8sdebx8OHm49YR1e2n1SUQ/FSq88Piv9/zQx+02sybW9HCt1v9qbl8jQnop6dAyyKKofJT9ksCbUfKorRwSwyVhdA3mkLSDEI224tCMdxdQs2GthTqhluW72lBXVEUXTa3NYM5G4EkiA7+YY5hrznO/rYkw7GJLakELYE7Pz651b/Q1Rmw4Q5VdgeWLaFeGZEFHW0E3kFU7WdKVmS8JAy8WV8ANl4tVuzVK1rp9ZI622L0TZRefpBd5wEaoZUjZWVMx8RUbsThlXgmXVgow/fNzNbNsHq07Eon2xlBspLcL0IZ1E60jiiowKPu2Jzrt9KNWexWFxnv2cL4fSQ5cpSoRb2+zFcd/nVpV5co3VL+zTHdTUvbfLsOlKThqk0jWXBNMhM6V9T+hBNuKwEAAA==)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(./unbounded-cyrillic-700-normal-BnWDpkfm.woff2)format("woff2"),url(./unbounded-cyrillic-700-normal-BKv7sql3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(./unbounded-vietnamese-700-normal-CjKRcRIV.woff2)format("woff2"),url(./unbounded-vietnamese-700-normal-Bvu7IMCd.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(./unbounded-latin-ext-700-normal-BLzWLLjG.woff2)format("woff2"),url(./unbounded-latin-ext-700-normal-C5zWdd_U.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(./unbounded-latin-700-normal-CaoNriVp.woff2)format("woff2"),url(./unbounded-latin-700-normal-CZtriu5h.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--bg-soft:#161b22;--bg-softer:#1c2230;--border:#30363d;--text:#e6edf3;--muted:#8b949e;--accent:#58a6ff;--accent-2:#79c0ff;--green:#3fb950;--amber:#d29922;--red:#f85149;--violet:#a371f7;--cyan:#39c5cf;--radius:12px;--font-display:"Unbounded", "Segoe UI", -apple-system, sans-serif;--btn-fg:#051018;--bg-glow:#1b2433;--header-bg:#0d1117d9;--shimmer-hi:#262e3f;--backdrop:#010409b3}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1100px 500px at 85% -10%, var(--bg-glow) 0%, transparent 60%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55}::selection{background:#58a6ff59}.shell{flex-direction:column;min-height:100vh;display:flex}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 20px}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.92em}.site-header{border-bottom:1px solid var(--border);background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;position:sticky;top:0}.header-inner{align-items:center;gap:18px;padding-top:14px;padding-bottom:14px;display:flex}.brand{font-family:var(--font-display);color:var(--text);letter-spacing:.2px;align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand-icon{font-size:20px}.nav{flex-wrap:wrap;gap:4px;margin-right:auto;display:flex}.nav a{color:var(--muted);border-radius:8px;padding:6px 12px;font-size:14px;transition:color .15s,background .15s}.nav a:hover{color:var(--text);background:var(--bg-soft);text-decoration:none}.nav a.router-link-active{color:var(--text);background:var(--bg-soft)}main.container{flex:1;padding-top:28px;padding-bottom:40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.page-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 4px;font-size:clamp(22px,3.6vw,30px);font-weight:700}.hero{border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;margin-bottom:34px;padding:44px 26px 40px;position:relative;overflow:hidden}.hero__glow,.hero__glow--2{filter:blur(90px);opacity:.35;pointer-events:none;border-radius:50%;width:380px;height:380px;position:absolute}.hero__glow{background:var(--accent);animation:9s ease-in-out infinite hero-float;top:-160px;right:-60px}.hero__glow--2{background:var(--violet);animation:11s ease-in-out infinite reverse hero-float;bottom:-200px;left:-120px}@keyframes hero-float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-24px,18px)scale(1.08)}}.hero__title{font-family:var(--font-display);letter-spacing:-.01em;background:linear-gradient(92deg, var(--text) 20%, var(--accent-2) 75%);color:#0000;-webkit-background-clip:text;background-clip:text;max-width:21ch;margin:0 0 12px;font-size:clamp(26px,5vw,44px);font-weight:700;line-height:1.15;position:relative}.hero__sub{max-width:58ch;color:var(--muted);margin:0 0 18px;font-size:15px;position:relative}.page-sub{color:var(--muted);margin:0;font-size:14px}.chip{color:var(--muted);border:1px solid var(--border);background:var(--bg-soft);white-space:nowrap;border-radius:999px;padding:5px 11px;font-size:12px}.hint{color:var(--muted)}.hint--error{color:var(--red)}.btn{color:var(--btn-fg);background:linear-gradient(180deg, var(--accent-2), var(--accent));cursor:pointer;border:0;border-radius:9px;padding:9px 18px;font-size:14px;font-weight:600;transition:filter .15s,transform .1s;display:inline-block}.btn:hover{filter:brightness(1.1);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn--ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn--ghost:hover{background:var(--bg-soft);filter:none}.btn--sm{border-radius:8px;padding:6px 12px;font-size:12px}.btn--loading{justify-content:center;align-items:center;gap:8px;display:inline-flex}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn--danger{color:var(--red);background:0 0;border:1px solid #f8514973}.btn--danger:hover:not(:disabled){filter:none;background:#f8514914}.genre-filter{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.genre-filter__chip{border:1px solid var(--border);background:var(--bg-soft);color:var(--muted);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;transition:color .15s,background .15s,border-color .15s}.genre-filter__chip:hover{color:var(--text)}.genre-filter__chip--active{color:var(--btn-fg);background:linear-gradient(180deg, var(--accent-2), var(--accent));border-color:#0000;font-weight:600}.movie-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.movie-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);animation:.45s both card-in;animation-delay:calc(min(var(--card-i,0), 12) * 55ms);flex-direction:column;transition:transform .15s,border-color .15s;display:flex;overflow:hidden}@keyframes card-in{0%{opacity:0;transform:translateY(12px)scale(.98)}}.movie-card:hover{border-color:var(--accent);transform:translateY(-3px)}.movie-card__poster{justify-content:center;align-items:center;height:200px;display:flex;position:relative;overflow:hidden}.movie-card__poster:before{content:"";pointer-events:none;background:radial-gradient(130% 100% at 50% 25%,#0000 55%,#0000004d);position:absolute;inset:0}.movie-card__poster:after{content:"";opacity:.15;mix-blend-mode:overlay;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/140px 140px;animation:.8s step-end infinite grain;position:absolute;inset:-50px}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-28px,16px)}40%{transform:translate(16px,-24px)}60%{transform:translate(-12px,-8px)}80%{transform:translate(24px,20px)}}.movie-card__genre{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap;background:#00000080;border-radius:999px;padding:3px 9px;font-size:11px;position:absolute;top:8px;left:8px}.movie-card__icon{filter:drop-shadow(0 4px 10px #00000073);font-size:56px;transition:transform .2s}.movie-card:hover .movie-card__icon{transform:scale(1.1)}.movie-card__duration{color:#fff;background:#00000080;border-radius:999px;padding:2px 8px;font-size:11px;position:absolute;bottom:8px;right:8px}.movie-card__body{flex-direction:column;flex:1;padding:14px;display:flex}.movie-card__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 4px;font-size:16px;line-height:1.3;display:-webkit-box;overflow:hidden}.movie-card__meta{color:var(--muted);margin:0 0 8px;font-size:13px}.movie-card__desc{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 14px;font-size:13px;display:-webkit-box;overflow:hidden}.movie-card__footer{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;display:flex}.movie-card__price{font-size:15px;font-weight:700}.rating{align-items:center;gap:1px;display:inline-flex}.rating__star{color:var(--muted);opacity:.55;font-size:13px;line-height:1}.rating__star--filled{color:var(--amber);opacity:1}.rating__star--lg{font-size:18px}.movie-card__rating{width:fit-content;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin:0 0 6px;padding:1px 0;font-size:12px;display:flex}.movie-card__rating:hover,.movie-card__rating:hover .rating__star{color:var(--amber);opacity:1}.movie-card__rating-count{color:var(--muted)}.review-summary{align-items:center;gap:8px;margin:0 0 12px;display:flex}.review-summary__text{color:var(--muted);font-size:13px}.review-list{flex-direction:column;gap:10px;margin:0 0 16px;padding:0;list-style:none;display:flex}.review-item{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.review-item__head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.review-item__author{font-size:13px;font-weight:600}.review-item__date{color:var(--muted);margin-left:auto;font-size:12px}.review-item__text{color:var(--text);white-space:pre-line;overflow-wrap:anywhere;margin:6px 0 0;font-size:13px}.review-form__actions{justify-content:flex-end;display:flex}.rating-input{gap:4px;display:flex}.rating-input__star{color:var(--muted);opacity:.55;cursor:pointer;background:0 0;border:0;padding:0;font-size:28px;line-height:1;transition:transform .1s,color .1s,opacity .1s}.rating-input__star--active{color:var(--amber);opacity:1}.rating-input__star:hover{color:var(--amber);opacity:1;transform:scale(1.15)}.skeleton-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.skeleton-card__poster,.skeleton-card__line{background:linear-gradient(100deg, var(--bg-softer) 40%, var(--shimmer-hi) 50%, var(--bg-softer) 60%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}.skeleton-card__poster{height:200px}.skeleton-card__body{flex-direction:column;gap:9px;padding:14px;display:flex}.skeleton-card__line{border-radius:6px;height:12px}.skeleton-card__line--title{width:75%;height:15px}.skeleton-card__line--short{width:45%}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-20% 0}}.modal-backdrop{z-index:50;background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-soft);border:1px solid var(--border);border-radius:16px;flex-direction:column;width:100%;max-width:460px;max-height:calc(100dvh - 40px);display:flex;overflow:hidden}.modal__head{flex:none;align-items:center;gap:12px;padding:16px 18px;display:flex;position:relative}.modal__icon{filter:drop-shadow(0 3px 8px #0006);font-size:30px}.modal__title{margin:0;font-size:17px;line-height:1.25}.modal__meta{opacity:.85;margin:2px 0 0;font-size:12px}.modal__close{color:#fff;cursor:pointer;background:#00000040;border:0;border-radius:8px;width:28px;height:28px;font-size:13px;position:absolute;top:10px;right:10px}.modal__close:hover{background:#00000073}.modal__body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:16px;min-height:0;padding:18px;display:flex;overflow-y:auto}.field__label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:12px;display:block}.field__input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:9px;outline:none;padding:10px 12px;font-size:14px}.field__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #58a6ff26}.modal:focus{outline:none}.occupancy{align-items:center;gap:8px;margin-bottom:10px;display:flex}.occupancy__bar{background:var(--bg-softer);border-radius:999px;flex:1;height:6px;overflow:hidden}.occupancy__fill{background:var(--green);border-radius:999px;height:100%;transition:width .3s,background .3s}.occupancy__fill--mid{background:var(--amber)}.occupancy__fill--high{background:var(--red)}.occupancy__text{color:var(--muted);white-space:nowrap;font-size:11px}.modal__seats{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.session-chips{flex-wrap:wrap;gap:8px;display:flex}.session-chip{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;touch-action:manipulation;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:7px 14px;transition:border-color .15s,background .15s;display:inline-flex}.session-chip:hover{border-color:var(--accent)}.session-chip__when{white-space:nowrap;font-size:13px;font-weight:600}.session-chip__hall{color:var(--muted);white-space:nowrap;font-size:11px}.session-chip--active{background:linear-gradient(180deg, var(--accent-2), var(--accent));color:var(--btn-fg);border-color:#0000}.session-chip--active .session-chip__hall{color:var(--btn-fg);opacity:.8}.seat-chip{color:var(--accent-2);cursor:pointer;background:#58a6ff1f;border:1px solid #58a6ff73;border-radius:7px;align-items:center;gap:5px;padding:3px 9px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;transition:background .15s;display:inline-flex}.seat-chip:hover{background:#58a6ff38}.seat-chip span{opacity:.55;font-size:10px}.hall{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:14px 12px 10px;overflow-x:auto}.hall__screen{background:linear-gradient(90deg, transparent, var(--accent-2), transparent);text-align:center;letter-spacing:.4em;text-transform:uppercase;width:70%;height:7px;color:var(--muted);text-indent:.4em;border-radius:50%;margin:0 auto 14px;font-size:9px;line-height:7px}.hall__row{align-items:center;gap:4px;margin-bottom:5px;display:flex}.hall__row-label{width:14px;color:var(--muted);text-align:center;flex:none;font-size:11px;transition:color .15s}.hall__row:hover .hall__row-label{color:var(--accent-2)}.hall__seat{border:1px solid var(--border);background:var(--bg-soft);min-width:22px;height:26px;color:var(--muted);cursor:pointer;touch-action:manipulation;border-radius:6px;flex:1;padding:0;font-size:11px}.hall__seat:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.hall__seat--selected{background:var(--accent);border-color:var(--accent-2);color:var(--btn-fg);font-weight:700}.hall__seat--taken{background:var(--bg-softer);border-color:var(--bg-softer);opacity:.45;cursor:default}.hall__legend{color:var(--muted);justify-content:center;gap:14px;margin:12px 0 0;font-size:11px;display:flex}.hall__legend>span{align-items:center;gap:5px;display:inline-flex}.hall__dot{border:1px solid var(--border);background:var(--bg-soft);border-radius:3px;width:10px;height:10px}.hall__dot--taken{background:var(--bg-softer);border-color:var(--bg-softer);opacity:.5}.hall__dot--selected{background:var(--accent);border-color:var(--accent-2)}.modal__error{color:var(--red);margin:0;font-size:13px}.modal__note{color:var(--muted);border-left:2px solid var(--border);margin:0;padding-left:10px;font-size:12px}.modal__foot{border-top:1px solid var(--border);background:var(--bg);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.modal__total{font-weight:700}.modal__actions{gap:10px;display:flex}.modal-enter-active,.modal-leave-active{transition:opacity .18s}.modal-enter-active .modal,.modal-leave-active .modal{transition:transform .18s}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal,.modal-leave-to .modal{transform:scale(.96)translateY(8px)}.pay-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);gap:18px;padding:20px;display:grid}.pay-card__summary{border-top:1px dashed var(--border);color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;padding-top:16px;font-size:14px;display:flex}.pay-card__total{color:var(--text);font-size:26px;font-weight:700;font-family:var(--font-display)}.pay-timer{text-align:center;color:var(--cyan);font-variant-numeric:tabular-nums;margin:0;font-size:15px}.pay-timer--overdue{color:var(--muted)}.pay-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.pay-promo{gap:10px;margin-top:14px;display:flex}.pay-promo__input{text-transform:uppercase;letter-spacing:.04em;flex:1;min-width:0}.promo-applied{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:14px;padding:10px 12px;display:flex}.promo-applied__code{font-weight:600}.promo-applied__base{color:var(--muted)}.promo-applied__discount{color:var(--cyan);font-weight:600}.pay-bonus{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;margin-top:14px;padding:10px 12px;display:flex}.pay-bonus__toggle{cursor:pointer;align-items:baseline;gap:8px;display:flex}.pay-bonus__balance{color:var(--muted);font-size:13px}.pay-bonus__controls{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.pay-bonus__input{width:110px}.pay-bonus__cap{color:var(--muted);font-size:13px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.stat__num{font-size:26px;font-weight:700}.stat__label{color:var(--muted);font-size:12px}.stat--pending_payment .stat__num{color:var(--cyan)}.stat--pending .stat__num{color:var(--amber)}.stat--confirmed .stat__num{color:var(--green)}.stat--failed .stat__num{color:var(--red)}.stat--expired .stat__num{color:var(--muted)}.stat--cancelling .stat__num{color:var(--violet)}.stat--cancelled .stat__num{color:var(--muted)}.booking-list{flex-direction:column;gap:10px;display:flex}.booking-row{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:14px;padding:12px 14px;display:flex}.booking-row__poster{border-radius:10px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;font-size:22px;display:flex}.booking-row__main{min-width:0;margin-right:auto}.booking-row__title{white-space:nowrap;text-overflow:ellipsis;margin:0 0 2px;font-size:15px;overflow:hidden}.booking-row__meta{color:var(--muted);margin:0;font-size:13px}.booking-row__message{color:var(--muted);margin:4px 0 0;font-size:12px}.booking-row__message--failed{color:var(--red)}.booking-row__worker{opacity:.75}.booking-row__side{flex:none;align-items:center;gap:10px;display:flex}.list-enter-active{transition:opacity .25s,transform .25s}.list-enter-from{opacity:0;transform:translateY(-8px)}.list-leave-active{position:absolute}.list-move{transition:transform .25s}.status-badge{white-space:nowrap;border:1px solid;border-radius:999px;flex:none;padding:5px 11px;font-size:12px;font-weight:600}.status-badge--pending_payment{color:var(--cyan);background:#39c5cf14;border-color:#39c5cf73;animation:1.6s ease-in-out infinite pulse}.status-badge--pending{color:var(--amber);background:#d2992214;border-color:#d2992273;animation:1.6s ease-in-out infinite pulse}.status-badge--confirmed{color:var(--green);background:#3fb95014;border-color:#3fb95073}.status-badge--failed{color:var(--red);background:#f8514914;border-color:#f8514973}.status-badge--cancelling{color:var(--violet);background:#a371f714;border-color:#a371f773;animation:1.6s ease-in-out infinite pulse-violet}.status-badge--expired,.status-badge--cancelled{color:var(--muted);border-color:var(--border);background:var(--bg-softer)}@keyframes pulse-violet{0%,to{box-shadow:0 0 #a371f740}50%{box-shadow:0 0 0 5px #a371f714}}@keyframes pulse{0%,to{box-shadow:0 0 #d2992240}50%{box-shadow:0 0 0 5px #d2992214}}.empty{text-align:center;color:var(--muted);padding:60px 0}.empty__icon{margin:0 0 6px;font-size:40px}.empty p{margin:0 0 16px}.footer{border-top:1px solid var(--border);color:var(--muted);padding-top:18px;padding-bottom:26px;font-size:13px}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f8fa;--bg-soft:#fff;--bg-softer:#eef1f5;--border:#d8dee4;--text:#1f2328;--muted:#59636e;--accent:#0969da;--accent-2:#218bff;--green:#1a7f37;--amber:#9a6700;--red:#cf222e;--violet:#8250df;--cyan:#1b7c83;--btn-fg:#fff;--bg-glow:#dceafb;--header-bg:#ffffffd9;--shimmer-hi:#e4e9ef;--backdrop:#1f232873}[data-theme=light] .nav a:hover,[data-theme=light] .nav a.router-link-active,[data-theme=light] .btn--ghost:hover{background:var(--bg-softer)}[data-theme=light] .user-chip{background:#1f23280f}[data-theme=light] .toast{box-shadow:0 8px 30px #1f232838}@media (width<=640px){.container{padding:0 14px}main.container{padding-top:18px}.header-inner{flex-wrap:wrap;gap:10px 12px;padding-top:10px;padding-bottom:8px}.brand{margin-right:auto}.nav{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;order:3;width:100%;margin-right:0;padding-bottom:2px;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{white-space:nowrap;flex:none}.hero{margin-bottom:24px;padding:28px 16px 26px}.hero__glow,.hero__glow--2{width:240px;height:240px}.field__input{font-size:16px}.modal-backdrop{padding:12px}.modal{border-radius:14px}.modal__foot{flex-wrap:wrap}.modal__total{width:100%}.modal__actions{margin-left:auto}.toast{bottom:14px}.booking-row{flex-wrap:wrap}.booking-row__main{order:3;width:100%;margin-right:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.stat--revenue .stat__num{color:var(--amber)}.stat--total .stat__num{color:var(--text)}.stat--ticket .stat__num{color:var(--accent)}.stat--seats .stat__num{color:var(--cyan)}.stat--occupancy .stat__num{color:var(--green)}.stat--movies .stat__num{color:var(--accent-2)}.stat--reviews .stat__num{color:var(--violet)}.stat--rating .stat__num{color:var(--green)}.ticket-list{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.ticket-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;transition:transform .15s,border-color .15s;display:flex;overflow:hidden}.ticket-card:hover{border-color:var(--accent);transform:translateY(-2px)}.ticket-card__head{color:#fff;align-items:center;gap:10px;padding:12px 14px;display:flex}.ticket-card__icon{font-size:22px;line-height:1}.ticket-card__head-main{flex:1;min-width:0}.ticket-card__title{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:600;overflow:hidden}.ticket-card__meta{opacity:.85;margin:2px 0 0;font-size:12px}.ticket-card__no{font-family:var(--font-display);letter-spacing:.04em;opacity:.9;white-space:nowrap;font-size:11px}.ticket-card__qr{cursor:zoom-in;background:#fff;border:0;justify-content:center;width:100%;padding:16px 16px 8px;display:flex}.ticket-card__qr svg{width:100%;max-width:220px;height:auto}.ticket-card__foot{text-align:center;padding:8px 14px 14px}.ticket-card__seat{font-family:var(--font-display);color:var(--text);margin:0;font-size:15px}.ticket-card__guest{color:var(--muted);margin:2px 0 0;font-size:13px}.ticket-fullscreen{z-index:60;background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.ticket-fullscreen__inner{outline:none;flex-direction:column;align-items:center;gap:10px;display:flex}.ticket-fullscreen__qr{width:min(82vw,78dvh,420px);height:auto}.ticket-fullscreen__seat{font-family:var(--font-display);color:var(--text);text-align:center;margin:4px 0 0;font-size:18px}.ticket-fullscreen__meta{color:var(--muted);text-align:center;margin:0;font-size:13px}
