html,body,#root{height:100%;width:100%;margin:0;padding:0;overflow-x:hidden}body{display:block;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#fafafa;color:#111}button,input,select,textarea{font:inherit;color:inherit}:root{--color-primary: #1565c0;--color-primary-dark: #0d47a1;--color-primary-light: #e8f1fc;--color-primary-soft: rgba(21, 101, 192, .08);--color-accent: #00897b;--color-success: #2e7d32;--color-success-bg: rgba(46, 125, 50, .12);--color-warn: #b45309;--color-warn-bg: rgba(180, 83, 9, .1);--color-surface: #ffffff;--color-surface-alt: #f5f8fc;--color-border: #e1e8f0;--color-text: #111827;--color-text-muted: #5b6472}*,*:before,*:after{box-sizing:border-box}.appShell{height:100dvh;height:100vh;display:flex;flex-direction:column;overflow-x:hidden;background:linear-gradient(180deg,#eef3fb,#dfe9f7)}.appHeader{position:sticky;top:0;z-index:50;background:linear-gradient(180deg,#fff,#fbfcfe);border-bottom:3px solid var(--color-primary);box-shadow:0 2px 10px #0d47a114;padding-top:env(safe-area-inset-top)}.headerInner{width:100%;max-width:1100px;margin:0 auto;padding:12px;padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}.headerTopRow{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;min-width:0}.logoBox{height:88px;width:100%;max-width:360px;border-radius:12px;background:transparent;display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden}.logoImg{width:100%;height:100%;object-fit:contain;display:block}.langSelect{height:44px;width:clamp(160px,22vw,260px);border-radius:12px;border:1px solid var(--color-border);background:var(--color-primary-light);color:var(--color-primary-dark);font-weight:600;padding:0 12px;font-size:16px;min-width:0}.langSelect:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.headerSearchRow{margin-top:10px;width:100%;display:flex}.searchInput{width:100%;height:52px;padding:0 14px;border-radius:14px;border:1px solid var(--color-border);background:var(--color-surface);outline:none;font-size:clamp(16px,2.2vw,20px);box-shadow:inset 0 1px 2px #1118270d;transition:border-color .15s,box-shadow .15s}.searchInput:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.listArea{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.contentInner{width:100%;max-width:1100px;margin:0 auto;padding:12px;padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right));min-width:0}.speechCard{background:#ffce20;border-radius:20px;padding:16px;margin-bottom:12px}.speechText{font-weight:900;font-size:clamp(18px,3.2vw,34px);line-height:1.2;color:#111;overflow-wrap:anywhere}.loading{padding:8px 0 12px;color:var(--color-primary-dark);font-weight:600}.cards{display:grid;gap:10px}.card{border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:16px;padding:12px;background:var(--color-surface);box-shadow:0 1px 3px #1118270a}.cardLine{margin:6px 0;overflow-wrap:anywhere;word-break:break-word}.label{font-weight:900;color:var(--color-primary-dark)}.tableWrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:12px;overflow-x:hidden}.table{width:100%;border-collapse:collapse;table-layout:fixed}.table th{padding:12px;text-align:left;background:var(--color-primary-light);color:var(--color-primary-dark);font-size:13px;letter-spacing:.03em;text-transform:uppercase;border-bottom:2px solid var(--color-border)}.table th:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}.table th:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}.table td{padding:12px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;color:var(--color-text);white-space:normal;overflow-wrap:anywhere;word-break:break-word}.table tbody tr:nth-child(2n) td{background:var(--color-surface-alt)}.table tbody tr:hover td{background:var(--color-primary-soft)}.bold{font-weight:900;color:var(--color-primary-dark)}.floorChip{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--color-accent);color:#fff;font-weight:700;font-size:13px}.btn{width:auto;max-width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--color-primary);background:var(--color-primary);cursor:pointer;font-size:16px;color:#fff;font-weight:600;text-align:left;white-space:normal;overflow-wrap:anywhere;word-break:break-word;box-shadow:0 2px 6px #0d47a133;transition:background .15s,box-shadow .15s,transform .1s}.btn.block{width:100%;margin-top:10px;text-align:center}.btn:hover{background:var(--color-primary-dark);box-shadow:0 4px 12px #0d47a14d}.btn:active{transform:translateY(1px);box-shadow:0 1px 3px #0d47a140}.contentInner.checkInContentInner{min-height:100%;display:flex;flex-direction:column}.checkInView{display:flex;flex-direction:column;flex:1}.checkInView.centered{justify-content:center}.checkInPanel{width:100%;max-width:720px;margin:0 auto;background:var(--color-surface);border-radius:24px;box-shadow:0 10px 40px #0d47a11f,0 2px 10px #1118270d;padding:clamp(20px,4vw,40px)}.checkInPanel .card{background:var(--color-surface-alt)}.checkInSearchRow{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.checkInSearchRow .searchInput{flex:1 1 160px;min-width:140px}.checkInSearchRow .btn{flex:0 0 auto}.checkInSamples{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-4px 0 16px;font-size:13px;color:var(--color-text-muted)}.checkInSampleChip{padding:6px 14px;border-radius:999px;border:1px solid var(--color-primary);background:var(--color-primary-light);color:var(--color-primary-dark);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.checkInSampleChip:hover{background:var(--color-primary-soft)}.checkInEmptyState{display:flex;flex-direction:column;align-items:center;text-align:center;padding:15vh 20px 40px}.checkInEmptyState.compact{padding:4px 20px 20px}.checkInEmptyState.compact .checkInEmptyIcon{width:52px;height:52px;margin-bottom:10px}.checkInEmptyState.compact .checkInEmptyIcon svg{width:24px;height:24px}.checkInEmptyState.compact .checkInEmptyTitle{font-size:19px}.checkInEmptyState.compact .checkInEmptySubtitle{font-size:14px;max-width:none}.checkInEmptyIcon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:18px;background:var(--color-primary-light);color:var(--color-primary)}.checkInEmptyIcon.warn{background:var(--color-warn-bg);color:var(--color-warn)}.checkInEmptyIcon svg{width:34px;height:34px}.checkInEmptyTitle{font-size:20px;font-weight:800;color:var(--color-text);margin-bottom:6px}.checkInEmptySubtitle{font-size:15px;color:var(--color-text-muted);max-width:340px;line-height:1.5}.checkInConfirm{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--color-success-bg);color:var(--color-success);font-weight:700;text-align:center}.modalBackdrop{position:fixed;inset:0;background:#1118278c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:200;animation:modalFadeIn .15s ease}.modalCard{width:100%;max-width:360px;background:var(--color-surface);border-radius:20px;padding:32px 24px 24px;text-align:center;box-shadow:0 20px 60px #11182759;animation:modalPop .25s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.checkmarkWrap{width:88px;height:88px;margin:0 auto 18px}.checkmarkSvg{width:100%;height:100%}.checkmarkCircle{stroke:var(--color-success);stroke-width:3;stroke-dasharray:151;stroke-dashoffset:151;animation:checkmarkCircle .5s ease forwards}.checkmarkCheck{stroke:var(--color-success);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:36;stroke-dashoffset:36;animation:checkmarkCheck .35s .45s ease forwards}@keyframes checkmarkCircle{to{stroke-dashoffset:0}}@keyframes checkmarkCheck{to{stroke-dashoffset:0}}.modalTitle{font-size:22px;font-weight:800;color:var(--color-text);margin-bottom:10px}.modalLine{font-size:15px;color:var(--color-text-muted);line-height:1.5}.modalLocation{display:flex;flex-direction:column;margin-top:18px;padding:12px 14px;border-radius:14px;background:var(--color-primary-light);border:1px solid var(--color-primary)}.modalLocationLabel{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary-dark);margin-bottom:4px}.modalLocationValue{font-size:20px;font-weight:800;color:var(--color-primary-dark)}.modalCloseBtn{margin-top:22px}.loadMore{margin-top:12px;width:100%;padding:12px;border-radius:12px;border:1px solid var(--color-primary);background:var(--color-primary-light);cursor:pointer;font-size:16px;font-weight:600;color:var(--color-primary-dark);transition:background .15s}.loadMore:hover{background:var(--color-primary-soft)}@media(max-width:599px){.headerTopRow{grid-template-columns:1fr}.langSelect{width:100%}.searchInput{height:54px}.checkInSearchRow{flex-direction:column}.checkInSearchRow .searchInput,.checkInSearchRow .btn{width:100%;flex:0 0 auto}.checkInSearchRow .searchInput{height:54px}}@media(min-width:600px)and (max-width:1024px){.headerInner,.contentInner{max-width:900px}}@media(max-width:599px){.logoBox{max-width:100%;height:72px}}@media(min-width:1600px){.headerInner,.contentInner{max-width:1500px}.checkInPanel{max-width:820px}.langSelect{height:52px;font-size:18px}.searchInput{height:60px;font-size:20px}.btn{font-size:18px;padding:14px 20px}.checkInSampleChip{font-size:15px;padding:8px 18px}.checkInEmptyIcon{width:96px;height:96px;margin-bottom:22px}.checkInEmptyIcon svg{width:44px;height:44px}.checkInEmptyTitle{font-size:26px}.checkInEmptySubtitle{font-size:17px;max-width:460px}.checkInEmptyState.compact .checkInEmptyIcon{width:64px;height:64px;margin-bottom:14px}.checkInEmptyState.compact .checkInEmptyIcon svg{width:30px;height:30px}.checkInEmptyState.compact .checkInEmptyTitle{font-size:24px}.checkInEmptyState.compact .checkInEmptySubtitle{font-size:16px}.table th,.table td{font-size:16px;padding:16px}.card{padding:18px}.cardLine{font-size:16px}.floorChip{font-size:14px;padding:3px 12px}}
