:root{--bg-canvas: #FFFFFF;--bg-subtle: #FAFAFA;--bg-muted: #F4F4F5;--bg-elevated: #FFFFFF;--border-subtle: #EDEEF0;--border-default: #E4E4E7;--border-strong: #D4D4D8;--text-primary: #0A0A0A;--text-secondary: #52525B;--text-muted: #8A8F98;--text-disabled: #B4B4B8;--text-on-accent: #FFFFFF;--accent: #0A0A0A;--accent-hover: #1F1F22;--accent-active: #2A2A2E;--success: #15803D;--success-bg: #F0FDF4;--success-border: #BBF7D0;--danger: #B91C1C;--danger-bg: #FEF2F2;--danger-border: #FECACA;--warn: #B45309;--warn-bg: #FFFBEB;--warn-border: #FDE68A;--focus-ring: 0 0 0 1px var(--accent), 0 0 0 4px rgba(10, 10, 10, .08);--shadow-xs: 0 0 0 1px rgba(17, 24, 39, .06);--shadow-sm: 0 1px 2px rgba(17, 24, 39, .04), 0 0 0 1px rgba(17, 24, 39, .06);--shadow-md: 0 4px 12px -2px rgba(17, 24, 39, .06), 0 0 0 1px rgba(17, 24, 39, .06);--shadow-lg: 0 8px 24px -6px rgba(17, 24, 39, .1), 0 0 0 1px rgba(17, 24, 39, .06);--shadow-pop: 0 16px 40px -10px rgba(17, 24, 39, .18), 0 0 0 1px rgba(17, 24, 39, .08);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-display: "Fraunces", "Times New Roman", Georgia, serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, ui-monospace, monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 32px;--text-4xl: 44px;--text-5xl: 56px;--control-h-sm: 28px;--control-h-md: 38px;--control-h-lg: 44px;--ease-out: cubic-bezier(.2, .7, .2, 1);--dur-fast: .12s;--dur-mid: .22s;--dur-slow: .38s}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0ms;--dur-mid: 0ms;--dur-slow: 0ms}}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}html{color-scheme:light}body{background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.55;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}[role=tab],[role=button]{-webkit-tap-highlight-color:transparent}::selection{background:#0a0a0a1f}@media (max-width: 640px){.field input,.field textarea,.field select,input,textarea,select{font-size:16px}}h1,h2,h3,h4{margin:0;font-family:var(--font-sans);font-weight:600;letter-spacing:-.01em;color:var(--text-primary)}h1{font-size:var(--text-3xl);line-height:1.1;letter-spacing:-.022em}h2{font-size:var(--text-xl);line-height:1.25}h3{font-size:var(--text-lg);line-height:1.3}.display{font-family:var(--font-display);font-weight:400;font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 80,"wght" 380;letter-spacing:-.025em;font-size:clamp(2.4rem,6vw,3.6rem);line-height:1.02;color:var(--text-primary)}p{margin:0}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}a{color:var(--text-primary);text-underline-offset:3px;text-decoration-color:var(--border-strong)}a:hover{text-decoration-color:var(--text-primary)}.eyebrow{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-feature-settings:"ss01"}.eyebrow:before{content:"";width:14px;height:1px;background:var(--border-strong)}.mono{font-family:var(--font-mono);font-feature-settings:"ss01"}.btn,.btn-primary,.btn-outline,.nav-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-h-md);padding:0 16px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-canvas);color:var(--text-primary);font-size:var(--text-sm);font-weight:500;letter-spacing:-.005em;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;box-shadow:inset 0 1px #fff9,0 1px 2px #1118270a;transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,transform var(--dur-fast) ease}.btn svg,.btn-primary svg,.btn-outline svg,.nav-button svg,.danger-button svg{flex:0 0 auto}.btn:hover:not(:disabled),.btn-outline:hover:not(:disabled),.nav-button:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong);box-shadow:inset 0 1px #fff9,0 1px 2px #1118270f,0 4px 8px -2px #1118270f}.btn:active:not(:disabled),.btn-outline:active:not(:disabled),.nav-button:active:not(:disabled),.btn-primary:active:not(:disabled),.danger-button:active:not(:disabled){transform:translateY(.5px);box-shadow:inset 0 1px #fff6,0 1px 1px #1118270a}.btn:disabled,.btn-primary:disabled,.btn-outline:disabled,.nav-button:disabled,.danger-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn:focus-visible,.btn-primary:focus-visible,.btn-outline:focus-visible,.nav-button:focus-visible,.danger-button:focus-visible{outline:none;box-shadow:var(--focus-ring),inset 0 1px #fff9}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);box-shadow:inset 0 1px #ffffff29,inset 0 -1px #0000002e,0 1px 2px #0000002e,0 2px 4px -1px #0000001f}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:inset 0 1px #ffffff2e,inset 0 -1px #0000002e,0 2px 4px #0000002e,0 6px 12px -3px #0000002e}.btn-outline{background:transparent;box-shadow:none}.btn-outline:hover:not(:disabled){background:var(--bg-subtle);box-shadow:inset 0 1px #fff9,0 1px 2px #1118270a}.btn-lg{height:var(--control-h-lg);padding:0 20px;font-size:var(--text-base)}.btn-sm{height:var(--control-h-sm);padding:0 12px;font-size:var(--text-xs)}.danger-button{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg)}.danger-button:hover:not(:disabled){background:#fee5e5;border-color:#fcbaba}.link-button{border:0;background:transparent;color:var(--text-primary);padding:4px 0;height:auto;font-size:var(--text-sm);font-weight:500;text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:4px;text-decoration-thickness:1px;cursor:pointer;transition:text-decoration-color var(--dur-fast) ease}.link-button:hover{text-decoration-color:var(--text-primary)}.field{display:grid;gap:6px;margin-bottom:14px}.field span{color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;letter-spacing:0}.field input,.field textarea,.field select{width:100%;height:var(--control-h-md);padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-canvas);color:var(--text-primary);font-family:inherit;font-size:var(--text-base);outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;box-shadow:inset 0 1px 1px #11182706,0 1px 1px #11182705;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,background var(--dur-fast) ease}.field textarea{height:auto;min-height:96px;padding:12px 14px;resize:vertical;line-height:1.55;box-shadow:inset 0 1px 1px #11182706}.field input::placeholder,.field textarea::placeholder{color:var(--text-muted)}.field input:hover:not(:focus):not(:disabled),.field textarea:hover:not(:focus):not(:disabled),.field select:hover:not(:focus):not(:disabled){border-color:var(--border-strong);box-shadow:inset 0 1px 1px #11182708,0 1px 2px #1118270a}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);background:var(--bg-canvas);box-shadow:inset 0 1px 1px #11182706,0 0 0 4px #0a0a0a12}.field input:disabled,.field textarea:disabled,.field select:disabled{background:var(--bg-subtle);color:var(--text-muted);cursor:not-allowed}.field input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;filter:grayscale(1)}.field input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--radius-pill);background:var(--bg-muted);color:var(--text-secondary);border:1px solid var(--border-subtle);font-size:var(--text-xs);font-weight:500;letter-spacing:0}.error{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border-default);background:var(--bg-canvas);color:var(--text-primary);border-radius:var(--radius-md);padding:10px 14px;margin:12px 0;font-size:var(--text-sm);line-height:1.5;box-shadow:var(--shadow-xs)}.error:before{content:"";width:6px;height:6px;border-radius:50%;background:#ef4444;margin-top:7px;flex:0 0 auto;box-shadow:0 0 0 2px #ef44442e}.panel{background:var(--bg-canvas);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:20px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:#11182773;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);padding:16px;animation:fade-in var(--dur-mid) var(--ease-out) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app{min-height:100vh;background:var(--bg-canvas)}.nav{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px clamp(16px,4vw,28px);background:#ffffffd9;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border-bottom:1px solid var(--border-subtle)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text-primary);font-size:var(--text-md);font-weight:600;letter-spacing:-.005em}.brand-button{border:0;background:transparent;padding:0;height:auto}.brand-button:hover{background:transparent;border-color:transparent}.brand-mark{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--accent);color:var(--text-on-accent);box-shadow:inset 0 1px #ffffff1f,0 1px 2px #0000002e}.brand-mark svg{width:15px;height:15px}.brand-name{font-family:var(--font-display);font-style:italic;font-variation-settings:"opsz" 36,"SOFT" 100,"wght" 420;font-size:17px;letter-spacing:-.01em;color:var(--text-primary)}.nav-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.nav-button{height:var(--control-h-sm);padding:0 10px;font-size:var(--text-xs)}.nav-button svg{width:14px;height:14px}.api-pill{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px;border-radius:var(--radius-pill);background:var(--bg-subtle);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--text-xs);font-weight:500}.api-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted)}.api-dot--online{background:var(--success);box-shadow:0 0 0 3px #15803d24}.api-dot--offline{background:var(--danger);box-shadow:0 0 0 3px #b91c1c24}.section{max-width:1080px;margin:0 auto;padding:32px clamp(16px,4vw,28px) 64px}.landing{position:relative;min-height:calc(100vh - 60px);display:grid;align-items:center;padding:32px 0 64px;overflow:hidden}.landing:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(800px 400px at 80% -10%,rgba(10,10,10,.04),transparent 60%),radial-gradient(700px 380px at -10% 110%,rgba(10,10,10,.03),transparent 60%);pointer-events:none}.landing-inner{position:relative;width:min(1080px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;align-items:center}.landing-inner>div:first-child{display:grid;gap:18px;max-width:580px}.landing h1{font-family:var(--font-sans);font-size:clamp(36px,5.6vw,56px);font-weight:600;line-height:1.04;letter-spacing:-.025em;color:var(--text-primary)}.landing h1 em{font-family:var(--font-display);font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 100,"wght" 380;font-weight:400;letter-spacing:-.03em;color:var(--text-primary)}.lead{color:var(--text-secondary);font-size:var(--text-md);line-height:1.6;max-width:480px}.landing .btn-primary{align-self:flex-start}.landing-panel{background:var(--bg-canvas);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:4px 18px;box-shadow:var(--shadow-sm)}.landing-panel div{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-size:var(--text-sm);font-weight:500}.landing-panel div:last-child{border-bottom:0}.landing-panel svg{color:var(--text-secondary);width:16px;height:16px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border-subtle)}.page-head h1{font-family:var(--font-sans);font-size:var(--text-3xl);font-weight:600;letter-spacing:-.022em;color:var(--text-primary)}.page-head h1 em{font-family:var(--font-display);font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 100,"wght" 380;font-weight:400;letter-spacing:-.025em}.auth-wrap{min-height:calc(100vh - 60px);display:grid;place-items:center;padding:32px 16px;background:radial-gradient(600px 320px at 50% 0%,rgba(10,10,10,.04),transparent 70%)}.auth-card{width:min(420px,100%);background:var(--bg-canvas);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:32px 28px 24px;box-shadow:var(--shadow-md)}.auth-card h1{font-family:var(--font-sans);font-size:var(--text-2xl);font-weight:600;margin:0 0 4px;letter-spacing:-.018em}.auth-card p{color:var(--text-secondary);font-size:var(--text-sm);margin:0 0 20px}.auth-card .btn,.auth-card .btn-primary{width:100%;height:var(--control-h-lg)}.auth-card .link-button{margin-top:10px;align-self:center}.create-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:16px;background:var(--bg-canvas);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.create-grid .field{margin:0}.create-grid .btn-primary{white-space:nowrap;height:var(--control-h-md)}.events-list{display:grid;gap:8px;margin-top:20px}.event-row{display:flex;justify-content:space-between;gap:16px;align-items:center;text-align:left;background:var(--bg-canvas);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:14px 18px;cursor:pointer;transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease;font:inherit}.event-row:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.event-row>div{display:grid;gap:4px;min-width:0}.event-row strong{font-size:var(--text-md);font-weight:600;color:var(--text-primary);letter-spacing:-.005em}.event-row>div span{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);word-break:break-word}.status-on,.status-off{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:500;letter-spacing:0;white-space:nowrap;border:1px solid var(--border-subtle)}.status-on:before,.status-off:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-on{background:var(--success-bg);color:var(--success)!important;border-color:var(--success-border)}.status-off{background:var(--bg-muted);color:var(--text-secondary)!important}.detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.client-link{display:block;background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 14px;color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-sm);word-break:break-word;margin-bottom:16px}.qr-panel{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:16px;padding:24px;background:var(--bg-canvas);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.qr-copy{display:grid;gap:10px;max-width:380px}.qr-copy h2{display:flex;align-items:center;gap:8px;font-size:var(--text-lg);font-weight:600}.qr-copy h2 svg{color:var(--text-secondary);width:16px;height:16px}.qr-copy p{color:var(--text-secondary);font-size:var(--text-sm)}.qr-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.qr-image,.qr-placeholder{width:184px;height:184px;border:1px solid var(--border-default);border-radius:var(--radius-md);flex:0 0 auto;background:var(--bg-canvas);padding:8px;box-shadow:var(--shadow-sm)}.qr-image{display:block;object-fit:contain}.qr-placeholder{display:grid;place-items:center;background:var(--bg-subtle);color:var(--text-muted);font-size:var(--text-xs)}.detail-grid{display:grid;grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr);gap:12px;align-items:start}.panel h2{display:flex;align-items:center;gap:8px;margin:0 0 18px;font-size:var(--text-lg);font-weight:600;letter-spacing:-.005em}.panel h2 svg{color:var(--text-secondary);width:16px;height:16px}.toggles{display:grid;gap:10px;margin:16px 0;padding:14px 16px;background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.toggle{display:flex;align-items:center;gap:10px;color:var(--text-primary);font-size:var(--text-sm)}.toggle input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.stat{display:grid;grid-template-columns:1fr;gap:6px;background:var(--bg-canvas);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:14px 14px 12px;position:relative}.stat svg{position:absolute;top:12px;right:12px;width:14px;height:14px;color:var(--text-muted)}.stat strong{font-family:var(--font-sans);font-feature-settings:"tnum","ss01";font-size:28px;font-weight:600;line-height:1;color:var(--text-primary);letter-spacing:-.022em}.stat span{color:var(--text-secondary);font-size:var(--text-xs);font-weight:500}.filter-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:14px;padding:4px;background:var(--bg-subtle);border-radius:var(--radius-md);border:1px solid var(--border-subtle);width:fit-content}.filter-button{border:0;background:transparent;color:var(--text-secondary);border-radius:var(--radius-sm);padding:6px 12px;font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:background var(--dur-fast) ease,color var(--dur-fast) ease;height:26px}.filter-button:hover{color:var(--text-primary)}.filter-button--active{background:var(--bg-canvas);color:var(--text-primary);box-shadow:var(--shadow-xs)}.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--text-secondary);font-size:var(--text-sm);margin:16px 0;padding-top:12px;border-top:1px solid var(--border-subtle)}.pagination .btn,.pagination .btn-outline{height:var(--control-h-sm);padding:0 12px;font-size:var(--text-xs)}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:12px 0 16px}.image-tile{position:relative;display:block;width:100%;aspect-ratio:1 / 1;border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-muted);padding:0;cursor:pointer;transition:transform var(--dur-mid) var(--ease-out),border-color var(--dur-fast) ease}.image-tile:hover{transform:scale(1.02);border-color:var(--border-strong)}.image-tile img{width:100%;height:100%;object-fit:cover;display:block}.image-tile span{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,transparent,rgba(10,10,10,.78));color:#fff;padding:18px 8px 6px;font-size:var(--text-xs);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploads-list{display:grid;gap:8px}.contribution{display:flex;align-items:flex-start;gap:14px;border:1px solid var(--border-subtle);background:var(--bg-canvas);border-radius:var(--radius-md);padding:14px;min-width:0;transition:border-color var(--dur-fast) ease,background var(--dur-fast) ease}.contribution:hover{background:var(--bg-subtle);border-color:var(--border-default)}.contribution-icon{width:64px;height:64px;border-radius:var(--radius-md);background:var(--bg-muted);border:1px solid var(--border-subtle);color:var(--text-secondary);display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.contribution-icon img{width:100%;height:100%;object-fit:cover;display:block}.contribution-body{flex:1;min-width:0;display:grid;gap:6px}.contribution-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.contribution-head strong{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);overflow-wrap:anywhere;letter-spacing:-.005em}.contribution-head span{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.audio-player{width:100%;max-width:460px;min-width:220px}.contribution p{margin:0;color:var(--text-secondary);line-height:1.55;overflow-wrap:anywhere;font-size:var(--text-sm)}.show-more-button{justify-self:start;border:0;background:transparent;color:var(--text-primary);padding:0;font-weight:500;font-size:var(--text-xs);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px;cursor:pointer}.show-more-button:hover{text-decoration-color:var(--text-primary)}.image-modal{position:relative;width:min(960px,100%);max-height:calc(100vh - 32px);background:var(--bg-elevated);border-radius:var(--radius-lg);overflow:hidden;display:grid;box-shadow:var(--shadow-pop);animation:rise var(--dur-mid) var(--ease-out) both}.image-modal img{width:100%;max-height:calc(100vh - 8rem);object-fit:contain;background:#0a0a0a}.modal-close{position:absolute;right:12px;top:12px;width:32px;height:32px;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:#fffffff2;color:var(--text-primary);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-sm)}.modal-close:hover{background:var(--bg-canvas)}.modal-meta{display:flex;justify-content:space-between;gap:16px;padding:14px 18px;border-top:1px solid var(--border-subtle)}.modal-meta strong{font-size:var(--text-sm);font-weight:600}.modal-meta span{color:var(--text-muted);font-size:var(--text-sm);text-align:right}.section>*{animation:rise var(--dur-slow) var(--ease-out) both}.section>*:nth-child(1){animation-delay:30ms}.section>*:nth-child(2){animation-delay:80ms}.section>*:nth-child(3){animation-delay:.13s}.section>*:nth-child(4){animation-delay:.18s}.section>*:nth-child(5){animation-delay:.23s}.section>*:nth-child(6){animation-delay:.28s}@media (max-width: 980px){.landing-inner,.detail-grid,.create-grid{grid-template-columns:1fr}.landing-inner{gap:28px}.qr-panel{flex-direction:column;align-items:stretch;gap:20px}.qr-image,.qr-placeholder{width:100%;max-width:220px;height:auto;aspect-ratio:1 / 1;align-self:center}.page-head{flex-direction:column;align-items:flex-start}.pagination{flex-direction:column;align-items:stretch}.pagination .btn{width:100%}.contribution-head{flex-direction:column;gap:4px}.contribution-head span{white-space:normal}.stats-row{grid-template-columns:1fr}}@media (max-width: 640px){.section{padding:20px 16px 56px}.nav{flex-direction:column;align-items:stretch;gap:8px;padding:10px 16px}.brand{justify-content:flex-start}.nav-actions{justify-content:flex-start;gap:6px}.api-pill{font-size:11px}.page-head{padding-bottom:16px}.page-head h1{font-size:26px}.detail-head{flex-wrap:wrap;gap:8px}.detail-head .danger-button{margin-left:auto}.qr-actions{flex-direction:column;align-items:stretch}.qr-actions .btn,.qr-actions .btn-primary,.qr-actions .btn-outline{width:100%}.qr-panel{padding:18px}.event-row{flex-wrap:wrap;gap:8px;padding:14px}.event-row>div{flex:1 1 100%;min-width:0}.event-row strong{font-size:var(--text-sm)}.event-row>div span{font-size:11px}.filter-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-button{white-space:nowrap;flex:0 0 auto}.auth-wrap{padding:16px}.auth-card{padding:24px 20px 20px}.modal-close{width:40px;height:40px}.modal-meta{padding:12px 14px;flex-wrap:wrap;gap:4px}.modal-meta span{text-align:left}.page-head h1,.event-row strong{overflow-wrap:anywhere;word-break:break-word}.contribution{gap:10px;padding:12px}.contribution-icon{width:56px;height:56px}.image-grid{grid-template-columns:repeat(3,1fr);gap:6px}.toggles{padding:12px}.panel{padding:16px}.create-grid{padding:14px;gap:10px}}@media (max-width: 380px){.image-grid{grid-template-columns:repeat(2,1fr)}.api-pill{padding:0 8px}}@supports (padding: env(safe-area-inset-bottom)){.section{padding-bottom:max(56px,env(safe-area-inset-bottom))}.nav{padding-top:max(12px,env(safe-area-inset-top))}}
