@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes toastIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}.fade-up{animation:fadeUp .4s ease both}.fade-in{animation:fadeIn .3s ease both}.toast-in{animation:toastIn .4s cubic-bezier(.2,.8,.2,1) both}.shake{animation:shake .35s ease}.pulse{animation:pulse 2s infinite}:root{--green: #2ecc71;--green-deep: #27ae60;--green-glow: rgba(46, 204, 113, .4);--amber: #ffb020;--red: #ef5350;--bg: #131820;--surface: #1a1f26;--surface-2: #212730;--line: rgba(255, 255, 255, .08);--text: #f0f2f5;--muted: #8b95a1;--display: "Poppins", "Inter", sans-serif;--ui: "Inter", "Segoe UI", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;background:var(--bg);color:var(--text);font-family:var(--ui);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.display{font-family:var(--display)}.text-green{color:var(--green)}.text-muted{color:var(--muted)}.text-amber{color:var(--amber)}.text-red{color:var(--red)}input,textarea,select{font-family:var(--ui);color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:15px;width:100%;outline:none;transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 15%,transparent)}input::placeholder,textarea::placeholder,select::placeholder{color:var(--muted)}a{color:var(--green);text-decoration:none}button{font-family:var(--ui)}.ticket-canvas{min-height:auto;display:flex;align-items:center;justify-content:center;padding:0;width:100%}.ticket-wrapper{--t-bg: #1e1e24;--t-bg-light: #2b2b36;--t-accent: #7c3aed;--t-accent-glow: rgba(124, 58, 237, .5);--t-text-main: #f8fafc;--t-text-muted: #94a3b8;font-size:clamp(10px,1vw,12px);perspective:1000px;display:block;width:100%}.ticket{position:relative;width:100%;max-width:44rem;color:var(--t-text-main);font-family:Space Grotesk,Segoe UI,system-ui,sans-serif;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.23,1,.32,1),box-shadow .6s ease;box-shadow:0 20px 40px #000c,0 0 0 1px #ffffff0d;background:transparent;filter:drop-shadow(0px 0px 10px rgba(0,0,0,.5))}.ticket-wrapper:hover .ticket{transform:rotateX(5deg) rotateY(-8deg) scale(1.01);box-shadow:20px 20px 40px #0009,0 0 0 1px #ffffff1a,-5px -5px 20px var(--t-accent-glow)}.ticket:after{content:"";position:absolute;inset:0;border-radius:1em;pointer-events:none;background:linear-gradient(115deg,transparent 0%,transparent 40%,rgba(255,255,255,.1) 45%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.1) 55%,transparent 60%,transparent 100%);z-index:10;background-size:250% 250%;background-position:100% 100%;transition:background-position .6s cubic-bezier(.23,1,.32,1);mix-blend-mode:overlay}.ticket-wrapper:hover .ticket:after{background-position:0% 0%}.t-main{padding:2em;position:relative;overflow:hidden;background:radial-gradient(circle at bottom left,transparent 1em,var(--t-bg) 1.05em),radial-gradient(circle at bottom right,transparent 1em,var(--t-bg) 1.05em);background-size:51% 100%;background-position:bottom left,bottom right;background-repeat:no-repeat;border-top-left-radius:1em;border-top-right-radius:1em}.t-main:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(124,58,237,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.15) 1px,transparent 1px);background-size:2em 2em;opacity:.6;z-index:0;pointer-events:none;transform:perspective(500px) rotateX(20deg) scale(1.5);animation:grid-scroll 20s linear infinite}@keyframes grid-scroll{0%{background-position:0 0}to{background-position:0 4em}}.t-content{position:relative;z-index:1}.t-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2em}.t-logo{display:flex;align-items:center;gap:.5em;font-weight:900;font-size:1.2em;letter-spacing:-.05em;color:#fff}.t-logo svg{width:1.5em;height:1.5em;fill:var(--t-accent);filter:drop-shadow(0 0 5px var(--t-accent));animation:logo-pulse 3s ease-in-out infinite alternate}@keyframes logo-pulse{0%{filter:drop-shadow(0 0 2px var(--t-accent))}to{filter:drop-shadow(0 0 10px var(--t-accent)) brightness(1.2)}}.t-type{font-size:.6em;text-transform:uppercase;letter-spacing:.2em;color:var(--t-accent);border:1px solid var(--t-accent);padding:.4em .8em;border-radius:99em;font-weight:700;white-space:nowrap}.t-title{font-size:clamp(2em,4.6vw,2.5em);font-weight:900;line-height:1.1;margin-bottom:.2em;text-transform:uppercase;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.t-subtitle{color:var(--t-text-muted);font-size:.92em;margin-bottom:2.2em}.t-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1em 1.5em;margin-bottom:1em}.t-detail-item{display:flex;flex-direction:column;gap:.2em}.t-label{font-size:.6em;text-transform:uppercase;letter-spacing:.1em;color:var(--t-text-muted)}.t-value{font-size:1.05em;font-weight:700;color:var(--t-text-main)}.t-perforation{display:flex;justify-content:space-between;height:1em;align-items:center;position:relative;z-index:2}.t-perf-line{flex-grow:1;height:0;border-top:2px dashed rgba(255,255,255,.2);margin:0 1.5em}.t-stub{padding:2em;background:radial-gradient(circle at top left,transparent 1em,var(--t-bg-light) 1.05em),radial-gradient(circle at top right,transparent 1em,var(--t-bg-light) 1.05em);background-size:51% 100%;background-position:top left,top right;background-repeat:no-repeat;border-bottom-left-radius:1em;border-bottom-right-radius:1em;display:flex;justify-content:space-between;align-items:center;gap:1.25rem;position:relative}.t-barcode-container{display:flex;flex-direction:column;gap:.5em;min-width:0}.t-barcode{width:10em;height:3em;background:repeating-linear-gradient(90deg,#fff 0,#fff 2px,transparent 2px,transparent 4px,#fff 4px,#fff 5px,transparent 5px,transparent 8px,#fff 8px,#fff 12px,transparent 12px,transparent 15px,#fff 15px,#fff 16px,transparent 16px,transparent 18px);opacity:.8}.t-barcode-id{font-family:monospace;font-size:.7em;color:var(--t-text-muted);letter-spacing:.2em;text-align:left;overflow:hidden;text-overflow:ellipsis}.t-admit{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:.6em}.t-admit-text{font-size:.7em;text-transform:uppercase;letter-spacing:.1em;color:var(--t-text-muted)}.t-admit-num{font-size:clamp(2.4em,5vw,3em);font-weight:900;line-height:1;color:var(--t-accent);text-shadow:0 0 15px var(--t-accent-glow)}@media(max-width:640px){.t-details{grid-template-columns:1fr}.t-stub{flex-direction:column;align-items:flex-start}.t-admit{align-items:flex-start;text-align:left}}.ticket-wrapper:active .ticket{transform:rotateX(15deg) rotateY(-5deg) scale(.98)}.ticket-wrapper:active .t-stub{transform:translateY(5px) rotate(2deg);opacity:.8;transition:transform .2s ease,opacity .2s ease}app-root{display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}@supports (padding-bottom: env(safe-area-inset-bottom)){.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}}
