:root{color-scheme:light;font-family:Space Grotesk,Noto Sans JP,Hiragino Sans,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;line-height:1.5;background:#0f0712;color:#fdf0f6;--bg: #0f0712;--panel: rgba(255, 255, 255, .06);--panel-strong: rgba(255, 255, 255, .12);--stroke: rgba(255, 255, 255, .16);--text: #fde8f2;--muted: rgba(253, 232, 242, .78);--accent: #ff6fa8;--accent-2: #ff94c1;--accent-soft: rgba(255, 159, 207, .22);--shadow: 0 18px 48px rgba(0, 0, 0, .35)}html,body,#root{height:100%;width:100%;overflow-x:hidden}*{box-sizing:border-box}body{margin:0;background:radial-gradient(120% 120% at 18% 8%,rgba(255,158,209,.2),transparent 55%),radial-gradient(120% 120% at 82% 12%,rgba(255,111,168,.18),transparent 60%),linear-gradient(145deg,#0c0510,#12071a 55%,#0a0410);color:var(--text);overflow-x:hidden}img{max-width:100%;height:auto}button{appearance:none;border:1px solid var(--stroke);background:linear-gradient(135deg,#ffffff1f,#ffffff0a);box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:var(--text);padding:12px 14px;border-radius:14px;font-weight:700;letter-spacing:.15px;transition:transform .08s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}button:active{transform:translateY(1px)}button:disabled{opacity:.6}.btnPrimary{background:linear-gradient(120deg,var(--accent) 0%,var(--accent-2) 60%,#ffd9eb 100%);border-color:#ffffff42;box-shadow:0 20px 48px #ff6fa859;color:#2a0a18;text-shadow:0 1px 0 rgba(255,255,255,.4)}.btnGhost{background:#ffffff0d;border-color:#ffffff24;box-shadow:none}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.scanner{position:relative;width:100%;height:100%;overflow:hidden;background:#000}.scannerVideo{width:100%;height:100%;object-fit:cover}.scannerOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-align:center}.toast{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:50;max-width:calc(100% - 24px);padding:10px 12px;border-radius:999px;border:1px solid var(--stroke);background:#120810d1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer{position:absolute;left:0;right:0;bottom:0;z-index:20;padding:10px 10px calc(10px + env(safe-area-inset-bottom))}.drawerHandle{width:100%;padding:8px 10px;border-radius:999px;background:#0000008c;border:1px solid rgba(255,255,255,.16);font-size:13px}.drawerPanel{margin-top:10px;border-radius:16px;border:1px solid rgba(255,255,255,.16);background:#000000c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-height:38vh;overflow:auto;padding:10px}.drawerList{display:flex;flex-direction:column;gap:8px}.drawerItem{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;padding:10px 12px;border-radius:12px;text-align:left}.drawerItemTitle{font-size:14px;font-weight:700}.drawerItemMeta{font-size:12px;opacity:.8}.modalBackdrop{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(120% 120% at 50% 10%,rgba(255,159,207,.18),transparent 55%),#070308bf}.modal{width:min(420px,100%);border-radius:18px;border:1px solid rgba(255,255,255,.22);background:linear-gradient(160deg,#120810f5,#120810e0,#ff9fcf14);padding:16px;box-shadow:0 20px 48px #00000061}.modalTitle{margin:0 0 10px;font-size:18px}.modalRow{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:12px}.qrBig{display:block;margin:12px auto 0;border-radius:12px;background:#fff;max-width:100%}.page{height:100%;padding:max(16px,env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.pageHeader{display:flex;justify-content:space-between;align-items:center;gap:12px}.pageTitle{margin:0;font-size:18px;min-width:0}.pageHeader button{white-space:nowrap}.input{width:100%;padding:14px;border-radius:14px;border:1px solid var(--stroke);background:linear-gradient(135deg,#ffffff14,#ff9fcf14);color:var(--text);font-size:18px}.hint{font-size:13px;color:var(--muted)}.adminLayout{height:100%;display:grid;grid-template-rows:45% 55%}.adminScannerPane{position:relative}.adminPanel{overflow:auto;padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.12);background:#000000eb}.tableWrap{overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:14px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.1);vertical-align:top}th{position:sticky;top:0;background:#121212;text-align:left;z-index:1}.qrGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.qrCard{border:1px solid rgba(255,255,255,.14);background:#ffffff0f;border-radius:16px;padding:12px}.qrCardTitle{font-size:14px;font-weight:800}.qrCardText{margin-top:6px;font-size:12px;opacity:.9}.qrCardImage{display:block;margin:10px auto 0;border-radius:12px;background:#fff}.qrCardPlaceholder{margin-top:10px;height:220px;display:flex;align-items:center;justify-content:center;border-radius:12px;border:1px dashed rgba(255,255,255,.18);opacity:.85}.qrCardButtons{margin-top:10px;display:flex;gap:8px}.home{position:relative;height:100%;padding:max(16px,env(safe-area-inset-top)) 16px calc(110px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;isolation:isolate;background-color:var(--bg);background-image:radial-gradient(1000px circle at 16% 10%,rgba(255,158,209,.18),transparent 58%),radial-gradient(840px circle at 82% 22%,rgba(255,111,168,.16),transparent 60%),radial-gradient(900px circle at 50% 118%,rgba(255,212,231,.12),transparent 62%),linear-gradient(180deg,#ffffff05,#fff0)}.home:before{content:"";position:absolute;inset:-120px;pointer-events:none;z-index:-1;background:radial-gradient(40% 40% at 28% 18%,rgba(255,196,225,.32),transparent 62%),radial-gradient(32% 34% at 70% 26%,rgba(255,153,207,.32),transparent 68%),conic-gradient(from 180deg at 35% 18%,rgba(255,255,255,.18),transparent 40%),conic-gradient(from 320deg at 80% 20%,rgba(255,255,255,.18),transparent 35%);opacity:.85;mix-blend-mode:screen;filter:blur(3px);transform:translateZ(0);animation:petalGlow 14s ease-in-out infinite}.home:after{content:"";position:absolute;inset:-80px;pointer-events:none;z-index:-1;background:radial-gradient(22% 26% at 20% 32%,rgba(255,255,255,.08),transparent 62%),radial-gradient(30% 38% at 82% 36%,rgba(255,111,168,.14),transparent 60%),radial-gradient(60% 60% at 50% 90%,rgba(255,212,231,.12),transparent 70%);opacity:.75;mix-blend-mode:screen;transform:translateZ(0);animation:petalDrift 16s ease-in-out infinite}@keyframes petalGlow{0%{transform:translate3d(-1.5%,-.8%,0) scale(1)}50%{transform:translate3d(1.5%,.8%,0) scale(1.03)}to{transform:translate3d(-1.5%,-.8%,0) scale(1)}}@keyframes petalDrift{0%{transform:translateZ(0) rotate(0)}50%{transform:translate3d(1.8%,1.2%,0) rotate(1.5deg)}to{transform:translateZ(0) rotate(0)}}@media(prefers-reduced-motion:reduce){.home:before,.home:after{animation:none}}.homeHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:4px 0 2px}.homeTitle{font-size:24px;font-weight:900;letter-spacing:.4px;text-transform:none;text-shadow:0 12px 34px rgba(255,111,168,.25)}.homeSubtitle{margin-top:6px;font-size:12px;color:var(--muted)}.homeHeaderButtons{display:flex;gap:8px;align-items:center}.homeHeaderButtons button{padding:10px 12px;border-radius:999px;font-size:13px}.homeContent{flex:1;overflow:hidden;padding-bottom:10px}.homeEmpty{padding:14px 16px;border-radius:18px;border:1px solid var(--stroke);background:linear-gradient(160deg,#ffffff0f,#ff9fcf1a);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 14px 32px #00000038}.problemGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.problemButton{position:relative;z-index:0;width:100%;text-align:left;padding:14px;border-radius:18px;border:1px solid var(--stroke);background:linear-gradient(150deg,#ffffff1f,#ff9fcf1f);box-shadow:0 18px 42px #ff6fa833;overflow:hidden}.problemButton:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;transform:scale(1.12);filter:blur(20px);opacity:.75;background:radial-gradient(80% 90% at 50% 60%,#ff9fcf33,#ff9fcf00 70%),radial-gradient(30% 40% at 18% 24%,#ffffff1f,#fff0 70%)}.problemTitle{font-size:16px;font-weight:900;line-height:1.25}.problemMeta{margin-top:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.problemStatus{padding:5px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:var(--accent-soft);color:#3b0d1f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.homeBottomBar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,#ff6fa82e,#0f071299 38%,#0000);pointer-events:none}.homeBottomBar button{pointer-events:auto;flex:1}.homeScanButton{flex:1.4}.sheetBackdrop{position:fixed;inset:0;z-index:24;background:radial-gradient(120% 120% at 50% 10%,rgba(255,159,207,.18),transparent 55%),#070308b3}.sheet{position:fixed;left:0;right:0;bottom:0;height:min(74vh,640px);transform:translateY(calc(100% + 40px));transition:transform .28s cubic-bezier(.2,.75,.2,1);z-index:30;border-top-left-radius:26px;border-top-right-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.2);background:#120810e6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.sheetOpen{transform:translateY(0)}.sheetHeader{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:linear-gradient(to bottom,#0f0712bf,#0f071200)}.sheetHandle{width:42px;height:5px;border-radius:999px;background:#ffffff42}.sheetClose{padding:10px 12px;border-radius:999px}.sheetBody{height:100%}
