:root{--color-primary: #0066cc;--color-primary-dark: #004c99;--color-primary-light: #d6e9fb;--color-primary-on-dark: #2997ff;--color-accent: #7a5cf0;--color-accent-warm: #ff8a5c;--color-bg: #f5f5f7;--color-surface: #ffffff;--color-surface-2: #fafafc;--color-surface-dark: #272729;--color-surface-black: #000000;--color-text: #1d1d1f;--color-text-soft: #333333;--color-text-muted: #7a7a7a;--color-text-on-dark: #ffffff;--color-text-on-dark-soft: #cccccc;--color-text-on-dark-muted: rgba(255, 255, 255, .55);--color-border: #e0e0e0;--color-success: #0a9551;--color-success-light: #d9f5e7;--color-warning: #d97706;--color-warning-light: #fdf0d5;--color-danger: #d64545;--color-danger-light: #fbe6e4;--radius-none: 0px;--radius-sm: 8px;--radius-md: 11px;--radius-lg: 18px;--radius-full: 9999px;--shadow-product: 3px 5px 30px rgba(0, 0, 0, .22)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,system-ui,Segoe UI,Noto Sans Thai,Leelawadee UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}button{font-family:inherit}h1,h2,h3{letter-spacing:-.02em}.top-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;height:60px;padding:12px 24px;background:var(--color-surface-black)}.nav-brand{display:flex;align-items:center;gap:10px}.nav-wordmark{font-size:15px;font-weight:600;color:var(--color-text-on-dark)}.nav-link{background:transparent;color:var(--color-text-on-dark-soft);font-size:13px;font-weight:400;padding:8px 12px;text-decoration:none;border-radius:var(--radius-sm)}.nav-link:hover{color:var(--color-text-on-dark)}.app-icon{flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600}.app-icon.lg{width:56px;height:56px;font-size:24px}.hero-heading{margin:0;font-size:40px;font-weight:600;line-height:1.1;letter-spacing:-.015em;color:var(--color-text)}.section-heading{margin:0;font-size:24px;font-weight:600;letter-spacing:-.01em;color:var(--color-text)}.body-paragraph{margin:0;font-size:17px;line-height:1.47;letter-spacing:-.01em;color:var(--color-text-soft)}.small-caps-label{display:block;margin:0 0 8px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.card{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px}.card-green{background:var(--color-bg);color:var(--color-text);border-radius:var(--radius-lg);padding:24px}.tile-dark{background:var(--color-surface-dark);color:var(--color-text-on-dark);border-radius:var(--radius-lg);padding:24px}.tile-dark .hero-heading,.tile-dark .section-heading{color:var(--color-text-on-dark)}.tile-dark .body-paragraph{color:var(--color-text-on-dark-soft)}.tile-dark .small-caps-label{color:var(--color-text-on-dark-muted)}.tile-dark a,.tile-dark .text-link{color:var(--color-primary-on-dark)}.tile-section{width:100%;padding:56px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}.tile-section>*{max-width:560px}.tile-section.on-light{background:var(--color-surface);color:var(--color-text)}.tile-section.on-parchment{background:var(--color-bg);color:var(--color-text)}.tile-section.on-dark{background:var(--color-surface-dark);color:var(--color-text-on-dark)}.tile-section.on-dark .hero-heading,.tile-section.on-dark .section-heading{color:var(--color-text-on-dark)}.tile-section.on-dark .body-paragraph{color:var(--color-text-on-dark-soft)}.tile-section.on-dark .small-caps-label{color:var(--color-text-on-dark-muted)}.footer{padding:32px 24px;background:var(--color-bg);color:var(--color-text-muted);font-size:12px;text-align:center;border-top:1px solid var(--color-border)}.footer p{margin:0 0 4px}.icon-badge{flex-shrink:0;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary)}.icon-badge svg{width:52%;height:52%}.icon-badge.sm{width:32px;height:32px}.icon-badge.md{width:44px;height:44px}.icon-badge.lg{width:64px;height:64px}.icon-badge.on-dark{background:#ffffff24;color:var(--color-primary-on-dark)}.icon-badge.solid{background:var(--color-primary);color:#fff}.icon-badge.neutral{background:var(--color-surface-2);color:var(--color-text-soft)}.icon-badge.warm{background:var(--color-warning-light);color:var(--color-warning)}.icon-badge.success{background:var(--color-success-light);color:var(--color-success)}.icon-badge.danger{background:var(--color-danger-light);color:var(--color-danger)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.stat-card{display:flex;align-items:center;gap:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px 18px}.stat-value{font-size:20px;font-weight:600;color:var(--color-text);line-height:1.15}.stat-label{margin:2px 0 0;font-size:12px;color:var(--color-text-muted)}.liff-content-card.ticket-card{position:relative;overflow:hidden;background:var(--color-surface-dark);border-color:transparent;color:var(--color-text-on-dark);box-shadow:var(--shadow-product)}.ticket-card .liff-queue-number{color:var(--color-text-on-dark)}.ticket-card .liff-queue-label,.ticket-card .liff-queue-date,.ticket-card .confirm-note{color:var(--color-text-on-dark-soft)}.ticket-divider{width:100%;border:none;border-top:1px solid rgba(255,255,255,.2);margin:6px 0}.liff-page{max-width:480px;margin:0 auto;padding:28px 20px 40px;display:flex;flex-direction:column;gap:20px}.liff-page-header{text-align:center;margin-bottom:4px}.liff-page-eyebrow{margin:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--color-primary);text-transform:uppercase}.liff-page-header h1{margin:0;font-size:26px;font-weight:600;letter-spacing:-.01em;color:var(--color-text)}.liff-state-card,.liff-content-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.liff-spinner{width:32px;height:32px;border-radius:50%;border:3px solid var(--color-primary-light);border-top-color:var(--color-primary);animation:liff-spin .8s linear infinite}@keyframes liff-spin{to{transform:rotate(360deg)}}.liff-state-card p{margin:0;color:var(--color-text-muted);font-size:15px}.liff-state-card.error p{color:var(--color-danger)}.liff-btn-primary,.liff-btn-secondary{display:inline-flex;align-items:center;justify-content:center;width:100%;height:48px;padding:0 32px;border:none;border-radius:var(--radius-full);font-size:17px;font-weight:400;letter-spacing:-.01em;cursor:pointer;text-decoration:none;box-sizing:border-box;transition:background-color .15s ease,transform .1s ease}.liff-btn-primary{background:var(--color-primary);color:#fff}.liff-btn-primary:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.liff-btn-primary:not(:disabled):hover{background:var(--color-primary-dark)}.liff-btn-primary:not(:disabled):active{transform:scale(.96)}.liff-btn-secondary{background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-primary)}.liff-btn-secondary:hover{background:var(--color-primary-light)}.liff-btn-secondary:active{transform:scale(.96)}.liff-btn-primary.auto,.liff-btn-secondary.auto{width:auto;height:auto;padding:11px 26px}.liff-badge{padding:6px 16px;border-radius:var(--radius-full);background:var(--color-success-light);color:var(--color-success);font-size:13px;font-weight:600;letter-spacing:.02em}.liff-badge.neutral{background:var(--color-primary-light);color:var(--color-primary)}.liff-badge.danger{background:var(--color-danger-light);color:var(--color-danger)}.liff-queue-number{font-size:64px;font-weight:600;letter-spacing:-.02em;color:var(--color-primary);line-height:1;margin:8px 0 0}.liff-queue-label{margin:0;font-size:14px;color:var(--color-text-muted)}.liff-queue-date{margin:0;font-size:15px;font-weight:600;color:var(--color-text)}
