:root{--cream:#fbf6ea;--cream-deep:#f2e9d6;--ink:#241f1a;--ink-soft:#5a5148;--maroon:#7a1f2b;--maroon-deep:#5e1620;--gold:#b8860b;--gold-soft:#d9b75c;--leaf:#2f4b3c;--leaf-deep:#1f3529;--leaf-soft:#e4ece2;--radius-card:18px;--radius-control:10px;--font-display:"Fraunces", "Iowan Old Style", serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--shadow-card:0 1px 2px #241f1a0a, 0 8px 24px #241f1a0f;--shadow-lift:0 4px 10px #241f1a14, 0 16px 40px #241f1a1a}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font-family:inherit}:focus-visible{outline:2px solid var(--maroon);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.kasavu-border{background-color:var(--maroon);background-image:linear-gradient(135deg, var(--gold) 25%, transparent 25%), linear-gradient(225deg, var(--gold) 25%, transparent 25%);background-position:0 0;background-repeat:repeat-x;background-size:14px 10px;width:100%;height:10px}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{text-align:center;padding:28px 24px 8px}.app-header__mark{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-size:13px;font-weight:600}.app-header__title{font-family:var(--font-display);color:var(--maroon-deep);margin:4px 0 2px;font-size:28px;font-weight:600}.header__locations{margin:2px 0}.app-header__subtitle{color:var(--ink-soft);font-size:14px}.app-main{flex:1;justify-content:center;padding:20px 16px 48px;display:flex}.step-card{border-radius:var(--radius-card);width:100%;max-width:560px;box-shadow:var(--shadow-card);border:1px solid var(--cream-deep);background:#fff;padding:28px 24px 24px}.trail{gap:6px;width:100%;max-width:560px;margin:0 auto 14px;padding:0 24px;display:flex}.trail__fold{background:var(--cream-deep);border-radius:3px;flex:1;height:6px;position:relative;overflow:hidden}.trail__fold:after{content:"";background:var(--leaf);transform-origin:0;transition:transform .32s;position:absolute;inset:0;transform:scaleX(0)}.trail__fold.is-done:after,.trail__fold.is-active:after{transform:scaleX(1)}.trail__fold.is-active:after{background:var(--gold)}.choice-grid{gap:12px;display:grid}.choice-card{text-align:left;border-radius:var(--radius-control);border:1.5px solid var(--cream-deep);background:var(--cream);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;transition:border-color .15s,background .15s,transform .15s;display:flex}.choice-card:hover{border-color:var(--gold-soft);transform:translateY(-1px)}.choice-card.is-selected{border-color:var(--maroon);box-shadow:var(--shadow-lift);background:#fff}.choice-card__title{font-family:var(--font-display);color:var(--ink);font-size:17px;font-weight:600}.choice-card__meta{color:var(--ink-soft);margin-top:2px;font-size:13px}.choice-card__glyph{font-size:22px;line-height:1}.btn{border-radius:var(--radius-control);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:13px 20px;font-size:15px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn-primary{background:var(--maroon);width:100%;color:var(--cream)}.btn-primary:hover{background:var(--maroon-deep)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{color:var(--maroon);background:0 0;padding:8px 4px}.field{margin-bottom:18px}.field__label{color:var(--ink);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field__hint{color:var(--ink-soft);margin-top:6px;font-size:12px}.field__input,.field__select,.field__textarea{border:1.5px solid var(--cream-deep);border-radius:var(--radius-control);width:100%;color:var(--ink);background:var(--cream);padding:11px 13px;font-size:15px}.field__textarea{resize:vertical;min-height:64px}.stepper{border:1.5px solid var(--cream-deep);border-radius:var(--radius-control);background:var(--cream);align-items:center;gap:14px;padding:6px 8px;display:inline-flex}.stepper__btn{border:1px solid var(--cream-deep);cursor:pointer;width:32px;height:32px;color:var(--maroon);background:#fff;border-radius:8px;font-size:16px}.stepper__value{text-align:center;min-width:24px;font-family:var(--font-mono);font-size:16px;font-weight:600}.summary{background:var(--leaf-soft);border-radius:var(--radius-control);margin:4px 0 20px;padding:14px 16px}.summary__row{color:var(--ink-soft);justify-content:space-between;padding:4px 0;font-size:14px;display:flex}.summary__row.is-total{border-top:1px dashed var(--gold-soft);color:var(--ink);margin-top:6px;padding-top:10px;font-size:17px;font-weight:700}.summary__row .amount{font-family:var(--font-mono)}.summary__note{color:var(--maroon);margin-top:6px;font-size:12px}.back-nav{margin-bottom:12px}.pookalam-loader{background:radial-gradient(circle at 50% 50%, var(--cream) 0 6px, transparent 7px), conic-gradient(var(--maroon) 0deg 40deg, var(--gold) 40deg 80deg, var(--leaf) 80deg 120deg, var(--maroon) 120deg 160deg, var(--gold) 160deg 200deg, var(--leaf) 200deg 240deg, var(--maroon) 240deg 280deg, var(--gold) 280deg 320deg, var(--leaf) 320deg 360deg);border-radius:50%;width:56px;height:56px;margin:8px auto;animation:1.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loader-row{flex-direction:column;align-items:center;padding:8px 0 4px;display:flex}.loader-row__label{color:var(--ink-soft);font-size:13px}.ticket{border-radius:var(--radius-card);border:1.5px dashed var(--gold-soft);background:#fff;padding:22px;position:relative}.ticket__check{background:var(--leaf);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 12px;font-size:22px;display:flex}.ticket__id{font-family:var(--font-mono);color:var(--ink-soft);text-align:center;font-size:13px}.ticket__title{font-family:var(--font-display);text-align:center;color:var(--maroon-deep);margin:2px 0 16px;font-size:22px;font-weight:600}.ticket__row{border-bottom:1px solid var(--cream-deep);justify-content:space-between;padding:7px 0;font-size:14px;display:flex}.ticket__row:last-of-type{border-bottom:none}.error-banner{border:1px solid var(--maroon);color:var(--maroon-deep);border-radius:var(--radius-control);background:#fbe9e7;margin-bottom:16px;padding:10px 14px;font-size:13px}
