@tailwind base;@tailwind components;@tailwind utilities;:root{--viewport-height: 100vh;--keyboard-height: 0px;--viewport-offset-top: 0px;--viewport-offset-left: 0px}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}@media (max-width: 768px){input,select,textarea{font-size:16px!important;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=checkbox]{-webkit-appearance:checkbox;-moz-appearance:checkbox;appearance:checkbox;border-radius:4px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],input[type=search],textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}.leaderboard-content.transitioning,.penalty-content.transitioning{opacity:1!important;transition:none!important}.bottom-nav-btn{transition-duration:.1s!important}}html{width:100%;height:100%;overflow:hidden}body{width:100%;height:100%;margin:0;padding:0;overflow:hidden}#root{max-width:480px;margin:0 auto;width:100%;height:100%;height:100vh;height:100dvh;position:relative}.browser-debug{position:fixed;bottom:10px;right:10px;background:#000c;color:#fff;padding:8px;font-size:12px;border-radius:4px;z-index:9999;font-family:monospace;display:none}.browser-debug.show{display:block}.penalty-content,.leaderboard-content{transition:opacity .1s ease-in-out;opacity:1;flex:1}.penalty-content.transitioning,.leaderboard-content.transitioning{opacity:.3}input,textarea,select{font-size:16px!important;-webkit-appearance:none;border-radius:0}input[type=checkbox]{-webkit-appearance:checkbox;-moz-appearance:checkbox;appearance:checkbox;border-radius:4px}button,a,[role=button]{min-height:44px;min-width:44px;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent;touch-action:manipulation;-ms-touch-action:manipulation;cursor:pointer}.app-main,.coach-viewport,.mypage,.leaderboard-list,.penalty-list,.feed{touch-action:auto!important}input:focus,textarea:focus{scroll-margin-bottom:100px;scroll-padding-bottom:100px}@supports (-webkit-touch-callout: none){input:focus,textarea:focus{scroll-margin-top:20px;scroll-margin-bottom:150px}}@supports (-webkit-touch-callout: none){input:focus,textarea:focus,select:focus{font-size:16px!important}}html[data-keyboard-visible=true]{overflow:hidden}html[data-keyboard-visible=true] body{position:fixed;width:100%;overflow:hidden}html[data-keyboard-visible=true] .app-main{max-height:var(--viewport-height)}html[data-keyboard-visible=true] .bottom-nav{opacity:.3;pointer-events:none}html[data-keyboard-visible=true] .checkin-bar{opacity:.5}html[data-keyboard-visible=true] .coach-input{opacity:1;pointer-events:auto}.app-main{transition:max-height .3s ease-out}.bottom-nav,.checkin-bar,.coach-input{transition:opacity .2s ease-out}@supports (-webkit-appearance: none){input,button,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=checkbox]{-webkit-appearance:checkbox;-moz-appearance:checkbox;appearance:checkbox}}@media (hover: none) and (pointer: coarse){.nav-btn,.cta,.modal-submit,.bottom-nav-btn,.google-login-btn,.kakao-login-btn{-webkit-tap-highlight-color:rgba(239,68,68,.1);tap-highlight-color:rgba(239,68,68,.1)}}@supports (-webkit-text-size-adjust: none){body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}}input[type=search]{-webkit-appearance:none}.sticky{position:-webkit-sticky;position:sticky}.no-select{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}@layer base{:root{--background: 0 0% 100%;--foreground: 0 0% 3.9%;--card: 0 0% 100%;--card-foreground: 0 0% 3.9%;--popover: 0 0% 100%;--popover-foreground: 0 0% 3.9%;--primary: 0 84% 60%;--primary-foreground: 0 0% 98%;--secondary: 0 0% 96%;--secondary-foreground: 0 0% 9%;--muted: 0 0% 96%;--muted-foreground: 0 0% 45%;--accent: 0 0% 96%;--accent-foreground: 0 0% 9%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--success: 142 71% 45%;--success-foreground: 0 0% 98%;--warning: 45 93% 47%;--warning-foreground: 0 0% 0%;--border: 0 0% 90%;--input: 0 0% 90%;--ring: 0 84% 60%;--radius: .5rem;--bg: hsl(var(--background));--text: hsl(var(--foreground));--brand: hsl(var(--primary));--weekend: hsl(var(--muted-foreground));--space-1: 8px;--space-2: 12px;--space-3: 16px;--font-sm: 12px;--font-md: 14px;--font-lg: 20px}.dark{--background: 0 0% 5%;--foreground: 0 0% 98%;--card: 0 0% 17%;--card-foreground: 0 0% 98%;--popover: 0 0% 5%;--popover-foreground: 0 0% 98%;--primary: 0 84% 60%;--primary-foreground: 0 0% 98%;--secondary: 0 0% 17%;--secondary-foreground: 0 0% 98%;--muted: 0 0% 17%;--muted-foreground: 0 0% 65%;--accent: 0 0% 17%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--success: 142 71% 45%;--success-foreground: 0 0% 98%;--warning: 45 93% 47%;--warning-foreground: 0 0% 0%;--border: 0 0% 17%;--input: 0 0% 17%;--ring: 0 84% 60%;--bg: hsl(var(--background));--text: hsl(var(--foreground));--brand: hsl(var(--primary));--muted: hsl(0, 0%, 65%)}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,Arial,Apple SD Gothic Neo,Noto Sans KR,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{border-radius:9999px}.app-container{width:100%;height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden}.app-header{flex-shrink:0;padding:var(--space-3) var(--space-3) 0;margin-bottom:0}.app-main{flex:1;min-height:0;padding:calc(var(--space-2) + env(safe-area-inset-top,0px)) var(--space-3) 70px;margin:0;overflow:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:auto;will-change:scroll-position}.app-main::-webkit-scrollbar{display:none}.app-main{-ms-overflow-style:none;scrollbar-width:none}.component-scrollbar{overflow-y:auto}.header-logo{font-size:24px;font-weight:800;color:var(--brand);text-align:center}.title-with-logo{display:flex;align-items:center;position:relative;margin-bottom:var(--space-2);margin-top:8px}.title-logo{flex-shrink:0;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.title-logo.is-clickable{cursor:pointer}.app-title{font-size:var(--font-lg);margin:0;font-weight:700;text-align:center;width:100%}.app-subtitle{font-size:var(--font-md);margin:0;color:var(--muted)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1);font-size:var(--font-sm);color:var(--muted);margin:var(--space-2) 0 0}.calendar-weekdays span{text-align:center}.calendar-nav{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;gap:var(--space-1)}.calendar-label{text-align:center;font-weight:600}.nav-btn{height:32px;border:1px solid var(--border);border-radius:16px;background:hsl(var(--card));color:hsl(var(--foreground));cursor:pointer;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.nav-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.nav-btn.is-active{background:var(--brand);color:hsl(var(--primary-foreground));border-color:var(--brand)}.nav-btn.has-brand-color{color:var(--brand)}.nav-btn:disabled{color:hsl(var(--muted-foreground));opacity:.6;cursor:default}.stats{margin:0 0 8px}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-1)}.stat{border:1px solid var(--border);border-radius:12px;padding:var(--space-2);text-align:center}.stat .label{display:block;font-size:var(--font-sm);color:var(--muted)}.stat .value{display:block;font-weight:700;font-size:14px}.attendance-heatmap-section{margin:12px 0 8px;padding:12px;border:1px solid var(--border);border-radius:12px;background:hsl(var(--card))}.results{margin:12px 0 8px}.results-card{border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center}.results-title{font-weight:700;margin-bottom:6px}.results-amount{font-size:18px;font-weight:800;color:var(--brand)}.results-note{font-size:12px;color:var(--muted)}.king{margin-top:8px;font-weight:800;color:#34c759}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.day{aspect-ratio:1 / 1;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:var(--font-md);color:var(--text);background:hsl(var(--card));position:relative}.day .date{transform:translateY(-5px);display:inline-block}.day.is-weekend{color:var(--weekend)}.day.is-outside{color:var(--muted);opacity:.6;pointer-events:none}.day:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.day[aria-disabled=true]{cursor:default}.day .marker{position:absolute;left:50%;bottom:6px;transform:translate(-50%);width:8px;height:8px;border-radius:50%;background:var(--brand)}.day.is-attended .marker{background:var(--brand)}.day.is-clickable{cursor:pointer}.day.is-clickable:hover{opacity:.8}@media (min-width: 420px){.app{padding:20px 20px 90px}.app-title{font-size:22px}}.app-footer{margin-top:var(--space-3)}.cta{width:300px;height:44px;border:none;border-radius:22px;background:var(--brand);color:hsl(var(--primary-foreground));font-weight:700;font-size:15px;cursor:pointer;box-shadow:0 2px 6px #ef444426;transition:background-color .16s ease,box-shadow .16s ease,transform 80ms ease;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;margin:0 auto}.cta:disabled{opacity:.6;cursor:default}.cta:hover{box-shadow:0 4px 10px #ef444438}.cta:active{transform:translateY(1px) scale(.995)}.cta:after,.bottom-nav-btn:after,.nav-btn:after,.modal-submit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#00000014;opacity:0;transition:opacity .12s ease;border-radius:inherit;pointer-events:none}.cta:active:after,.bottom-nav-btn:active:after,.nav-btn:active:after,.modal-submit:active:after{opacity:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182773;display:flex;align-items:flex-start;justify-content:center;padding-top:20vh;z-index:50;-webkit-backdrop-filter:saturate(110%) blur(2px);backdrop-filter:saturate(110%) blur(2px)}.modal-card{width:min(340px,calc(100% - 32px));background:hsl(var(--card));border-radius:12px;padding:28px 24px;box-shadow:0 10px 30px #00000029;animation:modal-in .22s cubic-bezier(.22,.61,.36,1)}.modal-title{margin:6px 0 8px;font-size:18px;font-weight:800}.modal-desc{margin:0 0 12px;color:var(--muted);font-size:14px}.modal-form{display:grid;grid-template-columns:1fr auto;gap:10px}.modal-input{height:40px;border:1px solid var(--border);border-radius:12px;padding:0 12px;font-size:15px}.modal-input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.modal-submit{height:40px;padding:0 14px;border:none;border-radius:20px;background:var(--brand);color:hsl(var(--primary-foreground));font-weight:700;cursor:pointer;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}@keyframes modal-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.leaderboard{margin:12px 0 0;display:flex;flex-direction:column;height:100%}.list-container{display:flex;flex-direction:column;padding-bottom:80px}.leaderboard-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.leaderboard-title{font-weight:800}.leaderboard-subtitle{color:var(--muted);font-size:12px}.leaderboard-loading{color:var(--muted);font-size:14px;text-align:center;padding:8px 0}.leaderboard-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.leaderboard-list.year-mode{gap:0}.leaderboard-item{border:1px solid var(--border);border-radius:12px;background:hsl(var(--card));padding:8px var(--space-2)}.leaderboard-item-main{display:grid;grid-template-columns:36px 32px 1fr auto;align-items:center;gap:var(--space-2);min-height:28px}.leaderboard-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}.leaderboard-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.leaderboard-item>*{align-self:center}.leaderboard-item .who{display:flex;flex-direction:column;justify-content:center;gap:2px;cursor:pointer}.leaderboard-item .rank{font-weight:900;color:var(--brand);text-align:center}.leaderboard-item .rank,.leaderboard-item .score{display:flex;align-items:center;justify-content:center;line-height:1}.leaderboard-item .who .nick{font-weight:700;line-height:1.25;margin:0}.leaderboard-item .who .breakdown{color:hsl(var(--muted-foreground));font-size:12px;line-height:1.2;margin:0}.leaderboard-item .score{font-weight:800}.leaderboard-item.is-me{border:2px solid var(--brand);position:relative}.leaderboard-item.is-paused{background:hsl(var(--warning) / .1);padding:6px var(--space-2)}.leaderboard-item.is-paused .leaderboard-item-main{grid-template-columns:32px 1fr;min-height:24px;gap:var(--space-1-5)}.leaderboard-nav-top{margin-bottom:var(--space-1)}.leaderboard-mode-nav{margin-bottom:var(--space-2);justify-content:center;gap:var(--space-1);display:flex}.leaderboard-item .who.is-clickable{cursor:pointer}.leaderboard-item .who.is-paused-section{margin-left:0}.leaderboard-item.is-paused .who{gap:0}.leaderboard-item.is-paused .who .breakdown{font-size:11px;margin-top:2px}.leaderboard-paused-badge{margin-left:var(--space-0-5);font-size:10px;opacity:.5}.leaderboard-item.is-paused .leaderboard-avatar{width:28px;height:28px}.leaderboard-section-divider{list-style:none;margin:16px 0 8px;padding:0}.leaderboard-section-divider .divider-text{padding:8px 12px;font-size:13px;font-weight:600;color:hsl(var(--muted-foreground));background:hsl(var(--muted));border-radius:8px;text-align:center}.leaderboard-item,.leaderboard-item *,.leaderboard-item:focus,.leaderboard-item:focus-visible,.leaderboard-item:focus-within,.leaderboard-item:active,.leaderboard-item.is-me:focus,.leaderboard-item.is-me:focus-visible,.leaderboard-item.is-me:focus-within,.leaderboard-item.is-me:active{outline:none!important;outline-width:0!important;outline-style:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent!important}.inline-calendar{max-height:0;overflow:hidden;transition:max-height .22s cubic-bezier(.22,.61,.36,1),transform .22s cubic-bezier(.22,.61,.36,1),opacity .22s ease;transform:translateY(-6px);opacity:0}.inline-calendar.is-open{max-height:520px;transform:translateY(0);opacity:1;margin-top:8px}.year-heatmap{width:100%}.year-heatmap-grid{display:flex;gap:1px;width:100%}.year-heatmap-week{display:flex;flex-direction:column;gap:1px;flex:1}.year-heatmap-day{width:100%;aspect-ratio:1;background:hsl(var(--muted) / .8);border-radius:1px;transition:all .2s ease;flex:1}.year-heatmap-day.has-attendance{background:var(--brand)}.year-heatmap-day.is-outside{opacity:.1}.year-heatmap-day:hover:not(.is-outside){transform:scale(1.3);box-shadow:0 0 4px #0003}.penalty-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.penalty-item{border:1px solid var(--border);border-radius:12px;background:hsl(var(--card));padding:10px var(--space-2)}.penalty-item-main{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:6px;min-height:36px}.penalty-item>*{align-self:center}.penalty-item .who{display:flex;flex-direction:column;justify-content:center;gap:var(--space-0-5);width:61px;flex-shrink:0}.penalty-item .who .nick{font-weight:700;line-height:1.25;margin:0}.penalty-item .who .breakdown{color:hsl(var(--muted-foreground));font-size:var(--font-sm);line-height:1.2;margin:0}.penalty-crown{margin-left:var(--space-0-5);font-size:var(--font-base)}.penalty-paused-badge{margin-left:var(--space-0-5);font-size:var(--font-xs);opacity:.6}.penalty-amount{font-size:var(--font-xs);font-weight:var(--font-weight-bold);margin-top:var(--space-0-5);color:hsl(var(--destructive))}.penalty-amount.is-zero{color:hsl(var(--success))}.penalty-item .score{font-weight:800}.penalty-item.is-me{border:2px solid var(--brand)}.penalty-item.is-paused{background:hsl(var(--warning) / .1)}.penalty-item.is-paused .penalty-item-main{grid-template-columns:1fr}.penalty-section-divider{margin:16px 0 8px;padding:8px 12px;font-size:13px;font-weight:600;color:hsl(var(--muted-foreground));background:hsl(var(--muted));border-radius:8px;text-align:center}.exemption-list{display:flex;flex-direction:column;gap:8px}.exemption-empty{text-align:center;padding:60px 20px;color:hsl(var(--muted-foreground));font-size:14px;opacity:.6}.exemption-item{border:1px solid var(--border);border-radius:10px;background:hsl(var(--card));transition:all .15s ease}.exemption-item:hover{border-color:hsl(var(--muted-foreground) / .3)}.exemption-main{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px}.exemption-info{flex:1;min-width:0}.exemption-title{font-size:14px;font-weight:700;color:hsl(var(--foreground));display:flex;align-items:center;gap:6px;margin-bottom:4px}.exemption-subtitle{font-size:12px;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exemption-badge{padding:2px 8px;border-radius:8px;font-size:10px;font-weight:700;white-space:nowrap}.exemption-badge.full{background:var(--brand);color:#fff}.exemption-badge.partial{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.exemption-delete-btn{padding:6px 12px;border:1px solid var(--border);background:hsl(var(--card));color:hsl(var(--muted-foreground));font-size:12px;font-weight:600;cursor:pointer;border-radius:6px;transition:all .15s ease;flex-shrink:0}.exemption-delete-btn:hover{background:hsl(var(--destructive));color:#fff;border-color:hsl(var(--destructive))}.exemption-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.exemption-reason-textarea{resize:vertical;min-height:60px}.penalty-chart{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,auto);gap:3px;align-items:center}.penalty-chart-month{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 2px;border-radius:3px;gap:1px;min-height:30px}.penalty-chart-month.has-penalty{background:hsl(var(--destructive))}.penalty-chart-month.is-paid{background:#34c759}.penalty-chart-month.no-penalty{background:hsl(var(--muted) / .3)}.penalty-chart-month.clickable{cursor:pointer;transition:all .2s ease}.penalty-chart-month.clickable:hover{transform:scale(1.05);box-shadow:0 2px 4px #0003}.penalty-chart-month.is-toggling{opacity:.6;pointer-events:none;position:relative;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:.8}}.penalty-chart-month-number{font-size:9px;font-weight:700;line-height:1}.penalty-chart-month.has-penalty .penalty-chart-month-number{color:hsl(var(--destructive-foreground));opacity:.8}.penalty-chart-month.no-penalty .penalty-chart-month-number{color:hsl(var(--muted-foreground));opacity:.4}.penalty-chart-month.is-paid .penalty-chart-month-number{color:#fff;opacity:.9}.penalty-chart-month-amount{font-size:8px;font-weight:700;line-height:1;color:hsl(var(--destructive-foreground))}.penalty-chart-month.is-paid .penalty-chart-month-amount{color:#fff}.penalty-chart-month.has-attendance{background:hsl(var(--success) / .2)}.penalty-chart-month.has-attendance .penalty-chart-month-number{color:hsl(var(--success));font-weight:700}.penalty-chart-month.is-current{border:1px solid hsl(var(--primary) / .5)}.penalty-chart-month.no-attendance{background:hsl(var(--muted) / .3)}.penalty-chart-month.no-attendance .penalty-chart-month-number{color:hsl(var(--muted-foreground));opacity:.4}.mypage{margin:12px 0 0;display:flex;flex-direction:column}.mypage-content{display:flex;flex-direction:column;gap:24px}.mypage-section{border:1px solid var(--border);border-radius:12px;background:hsl(var(--card));padding:16px}.mypage-section-title{font-size:16px;font-weight:700;margin:0 0 12px;color:var(--text)}.mypage-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.mypage-item:last-child{border-bottom:none}.mypage-item-label{font-size:14px;color:var(--text)}.mypage-item-value{font-size:14px;font-weight:600;color:var(--text)}.mypage-theme-buttons{display:flex;gap:8px}.mypage-theme-btn{padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:hsl(var(--background));color:var(--text);font-size:14px;cursor:pointer;transition:all .2s}.mypage-theme-btn:hover{border-color:var(--brand)}.mypage-theme-btn.active{background:var(--brand);color:hsl(var(--primary-foreground));border-color:var(--brand)}.mypage-logout-btn{width:100%;padding:12px;border:1px solid #ef4444;border-radius:8px;background:hsl(var(--background));color:#ef4444;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.mypage-logout-btn:hover{background:#ef4444;color:hsl(var(--primary-foreground))}.mypage-deactivate-btn{width:100%;padding:12px;margin-top:8px;border:2px solid #dc2626;border-radius:8px;background:hsl(var(--background));color:#dc2626;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.mypage-deactivate-btn:hover{background:#dc2626;color:hsl(var(--primary-foreground));border-color:#dc2626}.mypage-prompt-buttons{display:grid;gap:8px;margin-top:8px}.mypage-prompt-btn{width:100%;padding:12px 16px;border:2px solid var(--border);border-radius:12px;background:hsl(var(--background));color:var(--text);text-align:left;cursor:pointer;transition:all .16s ease;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.mypage-prompt-btn:hover{border-color:var(--brand)}.mypage-prompt-btn.active{background:var(--brand);color:hsl(var(--primary-foreground));border-color:var(--brand)}.mypage-prompt-name{font-weight:600;font-size:14px;margin-bottom:4px}.mypage-prompt-desc{font-size:12px;opacity:.8;line-height:1.3}.mypage-message{text-align:center;color:var(--muted);padding:20px 0}.mypage-ig{padding:20px 16px}.mypage-ig-header{display:flex;align-items:flex-start;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--border);position:relative}.mypage-ig-avatar-wrapper{position:relative;flex-shrink:0}.mypage-ig-avatar{position:relative;width:86px;height:86px;border-radius:43px;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:hsl(var(--foreground));overflow:hidden;flex-shrink:0;border:none;padding:0;-webkit-tap-highlight-color:transparent}.mypage-ig-avatar.is-clickable{cursor:pointer;transition:all .2s}.mypage-ig-avatar.is-clickable:hover .mypage-ig-avatar-overlay{opacity:1}.mypage-ig-avatar.is-clickable:active{transform:scale(.97)}.mypage-ig-avatar.is-clickable:disabled{cursor:not-allowed;opacity:.7}.mypage-ig-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.mypage-ig-avatar span{color:#fff}.mypage-ig-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;opacity:0;transition:opacity .2s;pointer-events:none}.mypage-ig-avatar-uploading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000b3;z-index:1}.mypage-upload-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.mypage-ig-avatar-edit{position:absolute;bottom:0;right:0;width:32px;height:32px;border-radius:16px;background:hsl(var(--primary));border:3px solid hsl(var(--card));cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 8px #00000026}.mypage-ig-avatar-edit:hover:not(:disabled){transform:scale(1.1);box-shadow:0 4px 12px #0003}.mypage-ig-avatar-edit:disabled{opacity:.5;cursor:not-allowed}.mypage-ig-info{flex:1;min-width:0}.mypage-ig-username{font-size:20px;font-weight:600;margin:0 0 12px}.mypage-ig-stats{display:flex;gap:24px}.mypage-ig-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.mypage-ig-stat-value{font-size:18px;font-weight:700}.mypage-ig-stat-label{font-size:13px;color:hsl(var(--muted-foreground))}.mypage-ig-bio{padding:16px 0;border-bottom:1px solid var(--border)}.mypage-ig-bio-name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.mypage-ig-settings{padding:8px 0}.mypage-ig-setting-item{display:flex;align-items:center;gap:12px;padding:12px 0;cursor:pointer;transition:background .2s;border-radius:8px}.mypage-ig-setting-item:hover{background:hsl(var(--muted) / .05)}.mypage-ig-setting-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:hsl(var(--foreground));flex-shrink:0}.mypage-ig-setting-content{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px}.mypage-ig-setting-title{font-size:15px;font-weight:400;color:hsl(var(--foreground))}.mypage-ig-setting-value{font-size:14px;color:hsl(var(--muted-foreground))}.mypage-ig-toggle{flex-shrink:0}.mypage-ig-toggle-btn{position:relative;width:50px;height:30px;border-radius:15px;border:none;background:hsl(var(--muted) / .3);cursor:pointer;transition:background .3s;padding:0}.mypage-ig-toggle-btn.active{background:hsl(var(--primary))}.mypage-ig-toggle-slider{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:12px;background:#fff;transition:transform .3s;box-shadow:0 2px 4px #0003}.mypage-ig-toggle-btn.active .mypage-ig-toggle-slider{transform:translate(20px)}.mypage-ig-actions{padding:20px 0 0}.mypage-ig-logout-btn{width:100%;padding:14px;border:1px solid var(--border);border-radius:8px;background:transparent;color:#ef4444;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.mypage-ig-logout-btn:hover{background:#ef4444;color:#fff;border-color:#ef4444}.mypage-ig-posts{padding:16px 0 0;border-top:1px solid var(--border)}.mypage-ig-posts-loading,.mypage-ig-posts-empty{text-align:center;padding:40px 20px;color:hsl(var(--muted-foreground));font-size:14px}.mypage-ig-posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.mypage-ig-post-item{position:relative;width:100%;padding-bottom:100%;overflow:hidden;background:hsl(var(--muted) / .1);border:none;border-radius:0;cursor:pointer;transition:opacity .2s}.mypage-ig-post-item:hover{opacity:.9}.mypage-ig-post-item:hover .mypage-ig-post-overlay{opacity:1}.mypage-ig-post-item img{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;border-radius:0}.mypage-ig-post-multiple{position:absolute;top:8px;right:8px;z-index:2;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.mypage-ig-post-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.mypage-ig-post-stats{display:flex;flex-direction:column;align-items:center;gap:12px}.mypage-ig-post-stat{display:flex;align-items:center;gap:8px;color:#fff;font-size:16px;font-weight:700}.mypage-ig-post-delete{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#dc2626e6;border:none;border-radius:50%;cursor:pointer;transition:all .2s}.mypage-ig-post-delete:hover{background:#dc2626;transform:scale(1.05)}.mypage-ig-post-delete:active{transform:scale(.95)}.all-menu{margin:12px 0 0}.all-list{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.all-list-item{border:1px solid var(--border);border-radius:12px;background:hsl(var(--card));transition:all .2s ease}.all-list-item:hover{border-color:var(--brand);box-shadow:0 2px 8px #0000001a}.all-item-button{width:100%;padding:var(--space-2);border:none;background:transparent;text-align:left;cursor:pointer;display:flex;align-items:center;gap:var(--space-2);transition:all .2s ease}.all-item-button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:12px}.all-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--brand);color:hsl(var(--primary-foreground));flex-shrink:0}.all-content{flex:1;min-width:0}.all-arrow{display:flex;align-items:center;justify-content:center;color:hsl(var(--muted-foreground));flex-shrink:0;opacity:.6;transition:opacity .2s}.all-item-button:hover .all-arrow{opacity:1;color:hsl(var(--muted-foreground))}.all-title{font-size:var(--font-md);font-weight:700;color:var(--text);margin:0 0 4px;line-height:1.25}.all-description{font-size:var(--font-sm);color:hsl(var(--muted-foreground));margin:0;line-height:1.3}.all-detail{margin:12px 0 0}.all-back-btn{display:flex;align-items:center;gap:8px;padding:8px 0;margin-bottom:var(--space-3);border:none;background:transparent;color:var(--brand);font-size:var(--font-md);font-weight:600;cursor:pointer;transition:opacity .2s}.all-back-btn:hover{opacity:.8}.all-back-btn svg{flex-shrink:0}.monthly-winner{margin:12px 0 0;display:flex;flex-direction:column;gap:var(--space-3)}.monthly-winner-card{border:1px solid var(--border);border-radius:12px;background:hsl(var(--card));padding:var(--space-3)}.monthly-winner-loading{text-align:center;color:hsl(var(--muted-foreground));padding:20px 0}.monthly-winner-error{border:1px solid #ef4444;border-radius:12px;background:hsl(var(--card));padding:var(--space-3);color:#ef4444}.monthly-winner-empty{text-align:center;padding:40px 0}.monthly-winner-icon{font-size:48px;margin-bottom:var(--space-3)}.monthly-winner-empty-title{font-size:var(--font-lg);font-weight:700;color:var(--text);margin:0 0 8px}.monthly-winner-empty-text{font-size:var(--font-md);color:hsl(var(--muted-foreground));margin:0}.monthly-winner-hero{border:1px solid var(--border);border-radius:12px;background:hsl(var(--card));padding:var(--space-3);color:var(--text);position:relative;overflow:hidden}.monthly-winner-hero:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--brand)}.monthly-winner-hero-content{text-align:center}.monthly-winner-crown{font-size:48px;margin-bottom:var(--space-2);filter:drop-shadow(0 2px 4px rgba(255,193,7,.3));animation:crown-glow 2s ease-in-out infinite alternate}.monthly-winner-crown-empty{font-size:32px;margin-bottom:var(--space-2);opacity:.3;filter:grayscale(100%)}@keyframes crown-glow{0%{filter:drop-shadow(0 2px 4px rgba(255,193,7,.3));transform:scale(1)}to{filter:drop-shadow(0 4px 8px rgba(255,193,7,.5));transform:scale(1.05)}}.monthly-winner-hero-title{font-size:var(--font-lg);font-weight:700;margin:0 0 4px;color:var(--text)}.monthly-winner-hero-date{color:hsl(var(--muted-foreground));margin-bottom:var(--space-3);font-size:var(--font-md)}.monthly-winner-hero-name{font-size:24px;font-weight:800;margin-bottom:var(--space-2);color:var(--brand);text-shadow:0 1px 2px rgba(0,0,0,.1);letter-spacing:-.02em}.monthly-winner-hero-congrats{color:hsl(var(--muted-foreground));font-size:var(--font-md);margin:0 0 var(--space-3) 0;font-weight:600}.monthly-winner-hero-pending{font-size:16px;font-weight:700;margin-bottom:var(--space-2);color:var(--text)}.monthly-winner-hero-info{color:hsl(var(--muted-foreground));font-size:var(--font-sm);margin:0}.monthly-winner-celebration{display:flex;justify-content:center;gap:var(--space-2);margin-top:var(--space-2)}.celebration-icon{font-size:20px;animation:celebration-bounce 1.5s ease-in-out infinite;animation-delay:var(--delay, 0s)}.celebration-icon:nth-child(1){--delay: 0s}.celebration-icon:nth-child(2){--delay: .2s}.celebration-icon:nth-child(3){--delay: .4s}@keyframes celebration-bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}.monthly-winner-admin-section{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.monthly-winner-select-btn{background:linear-gradient(135deg,var(--brand) 0%,hsl(var(--brand-hue),70%,55%) 100%);color:#fff;border:none;border-radius:8px;padding:var(--space-2) var(--space-3);font-weight:600;font-size:var(--font-sm);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a;margin-bottom:var(--space-2)}.monthly-winner-select-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.monthly-winner-select-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.monthly-winner-admin-hint{color:hsl(var(--muted-foreground));font-size:var(--font-xs);margin:0;text-align:center;line-height:1.4}.monthly-winner-section{border:1px solid var(--border);border-radius:12px;background:hsl(var(--card))}.monthly-winner-section-header{padding:var(--space-3);border-bottom:1px solid var(--border)}.monthly-winner-section-title{font-size:var(--font-lg);font-weight:700;color:var(--text);margin:0}.monthly-winner-section-content{padding:var(--space-3)}.monthly-winner-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.monthly-winner-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2);border-radius:8px;background:hsl(var(--muted));transition:all .2s}.monthly-winner-item.is-latest{background:#fef3c7;border:1px solid #fbbf24}.dark .monthly-winner-item.is-latest{background:#451a03;border-color:#92400e}.monthly-winner-item-main{display:flex;align-items:center;gap:var(--space-2)}.monthly-winner-info{flex:1}.monthly-winner-name{font-weight:700;color:var(--text);line-height:1.25;margin-bottom:2px}.monthly-winner-date{font-size:var(--font-sm);color:hsl(var(--muted-foreground));line-height:1.2}.monthly-winner-badge{font-size:11px;padding:2px 6px;border-radius:4px;background:#fbbf24;color:#92400e;font-weight:600}.dark .monthly-winner-badge{background:#92400e;color:#fbbf24}.monthly-winner-info-card{border:1px solid var(--border);border-radius:12px;background:hsl(var(--muted));padding:var(--space-3)}.dark .monthly-winner-info-card{background:hsl(var(--card));border-color:var(--border)}.monthly-winner-info-content{display:flex;align-items:flex-start;gap:var(--space-2)}.monthly-winner-info-icon{font-size:20px;flex-shrink:0}.monthly-winner-info-text{flex:1}.monthly-winner-info-title{font-weight:700;color:var(--text);margin:0 0 4px;font-size:var(--font-md)}.dark .monthly-winner-info-title{color:var(--text)}.monthly-winner-info-desc{font-size:var(--font-sm);color:hsl(var(--muted-foreground));margin:0;line-height:1.4}.dark .monthly-winner-info-desc{color:hsl(var(--muted-foreground))}.login-content{text-align:center;padding:var(--space-3) 0;min-height:calc(100vh - 200px);display:flex;flex-direction:column;justify-content:center;align-items:center}.login-logo{margin-bottom:var(--space-2);transform:translateY(-5vh)}.VEAR-logo{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.VEAR-logo img{border-radius:0;box-shadow:none}.VEAR-text{font-size:18px;font-weight:800;color:var(--brand);letter-spacing:1px}.login-welcome-title{font-size:3.5rem;font-weight:900;color:var(--brand);margin:0 0 var(--space-3);line-height:1}.login-subtitle{font-size:var(--font-md);color:var(--muted);margin:0 0 var(--space-3);line-height:1.5}.login-button-container{position:fixed;bottom:20px;left:0;right:0;display:flex;justify-content:center;width:100%;padding:0 20px;z-index:10;min-height:80px}@media (max-width: 360px){.login-button-container{padding:0 16px;bottom:30px}.custom-google-wrapper{padding:8px;max-width:calc(100vw - 32px)}}@media (max-width: 320px){.login-button-container{padding:0 12px;bottom:25px}.custom-google-wrapper{padding:6px;max-width:calc(100vw - 24px)}}.login-loading{display:flex;align-items:center;justify-content:center;height:44px;font-size:var(--font-md);color:var(--brand);font-weight:500}.google-login-btn{width:100%;height:56px;background:#fff;border:1px solid #dadce0;border-radius:6px;cursor:pointer;transition:all .2s ease;font-family:inherit;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.google-login-btn:hover{background:#f8f9fa;box-shadow:0 1px 3px #0000001a}.google-login-btn:active{background:#f1f3f4}.google-login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.google-login-content{display:flex;align-items:center;justify-content:center;gap:12px;color:#3c4043;font-weight:500;font-size:14px}.google-logo{flex-shrink:0}.login-buttons-wrapper{display:flex;flex-direction:column;gap:12px;width:100%;max-width:280px;margin:0 auto}.kakao-login-btn{width:100%;height:56px;background:#fee500;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;font-family:inherit;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.kakao-login-btn:hover{background:#ffeb00;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.kakao-login-btn:active{transform:translateY(0);box-shadow:0 2px 6px #0000001a}.kakao-login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.kakao-login-content{display:flex;align-items:center;justify-content:center;gap:8px;color:#191919;font-weight:600;font-size:14px}.kakao-logo{width:24px;height:24px;-o-object-fit:contain;object-fit:contain;display:block}.logo-subtitle{color:var(--muted);font-size:18px;font-weight:600;line-height:1.2;margin:0}.invite-form{width:100%}.invite-input-container{margin-bottom:16px}.invite-code-inputs{display:flex;gap:6px;justify-content:center;margin:24px 0 20px;width:100%}.invite-code-digit{width:44px;height:54px;border:2px solid var(--brand);border-radius:10px;font-size:40px;font-weight:600;text-align:center;text-transform:uppercase;transition:all .16s ease;background:hsl(var(--card));color:var(--text);flex:1;max-width:44px}.invite-code-digit:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #ef44441a;transform:scale(1.05)}.invite-code-digit.error{border-color:#ef4444;background:#ef44440d}.invite-code-digit:disabled{opacity:.6;cursor:not-allowed}.invite-input-guide{font-size:12px;color:var(--muted);text-align:center;margin-top:8px}.invite-error{background:#ef44441a;color:#ef4444;padding:8px 12px;border-radius:8px;font-size:14px;text-align:center;margin-bottom:16px}.invite-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.invite-btn-cancel{height:36px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);font-weight:600;cursor:pointer;transition:all .16s ease;font-size:13px}.invite-btn-cancel:hover{background:hsl(var(--muted))}.invite-btn-submit{height:36px;border:none;border-radius:8px;background:var(--brand);color:hsl(var(--primary-foreground));font-weight:600;cursor:pointer;transition:all .16s ease;font-size:13px}.invite-btn-submit:disabled{opacity:.5;cursor:not-allowed}.invite-btn-submit:hover:not(:disabled){background:#dc2626}@media (max-width: 360px){.modal-card{width:calc(100% - 24px);padding:24px 20px}.invite-code-inputs{gap:3px;margin:20px 0 16px}.invite-code-digit{width:38px;height:48px;font-size:36px;border-radius:8px;border-width:1.5px;max-width:38px}.invite-buttons{gap:6px}.invite-btn-cancel,.invite-btn-submit{height:32px;font-size:12px;border-radius:6px}}.bottom-nav{position:fixed;left:0;right:0;bottom:0;background:hsl(var(--card));border-top:1px solid var(--border);z-index:40;pointer-events:none}.bottom-nav-inner{max-width:480px;margin:0 auto;padding:0 16px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;pointer-events:auto}.bottom-nav-btn{height:48px;border-radius:12px;background:transparent;border:none;font-weight:700;cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#9ca3af;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.bottom-nav-btn:hover{background:transparent}.bottom-nav-btn.is-active{background:transparent;color:#ef4444;border:none}.bottom-nav-icon{width:18px;height:18px;display:inline-flex}.bottom-nav-icon svg{width:18px;height:18px;display:block}.bottom-nav-label{font-size:12px;line-height:1}.form-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.coach{display:flex;flex-direction:column;height:100%;overflow:hidden}.coach-viewport{flex:1;border:1px solid transparent;border-radius:12px;background:transparent;padding:10px 10px 80px;overflow-y:auto;-webkit-overflow-scrolling:touch}html[data-keyboard-visible=true] .coach-viewport{padding-bottom:calc(80px + var(--keyboard-height));transition:padding-bottom .3s ease-out}.coach-viewport::-webkit-scrollbar{display:none}.coach-viewport{-ms-overflow-style:none;scrollbar-width:none;transition:padding-bottom .3s ease-out}.coach-msg{display:flex;margin:15px 0}.coach-msg.is-user{justify-content:flex-end}.coach-msg.is-assistant{justify-content:flex-start}.coach-bubble{max-width:80%;padding:8px 10px;border-radius:16px;font-size:14px;line-height:1.4;word-break:keep-all;overflow-wrap:break-word}.coach-msg.is-user .coach-bubble{background:var(--brand);color:hsl(var(--primary-foreground));border-top-right-radius:8px;max-width:66.6667%}.coach-msg.is-assistant .coach-bubble{background:hsl(var(--muted));color:hsl(var(--card-foreground));border-top-left-radius:8px}.coach-md{font-size:14px;line-height:1.6}.coach-md p{margin:0 0 6px}.coach-md ul,.coach-md ol{margin:6px 0 8px 18px;padding:0}.coach-md li{margin:2px 0}.coach-md strong{font-weight:800}.coach-md em{font-style:italic}.coach-md code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#0000000f;padding:1px 4px;border-radius:6px;font-size:12px}.coach-md pre{margin:6px 0;padding:8px;background:hsl(var(--muted));color:hsl(var(--muted-foreground));border-radius:12px;overflow:auto}.coach-md del,.coach-md s{text-decoration:none}.coach-md pre code{background:transparent;padding:0;color:inherit}.coach-md a{color:var(--brand);text-decoration:underline}.coach-wave-loader{display:inline-flex;align-items:center;gap:6px;min-height:20px}.coach-wave-loader span{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--brand);animation:wave-flow 1.4s ease-in-out infinite;opacity:.4}.coach-wave-loader span:nth-child(1){animation-delay:0s}.coach-wave-loader span:nth-child(2){animation-delay:.2s}.coach-wave-loader span:nth-child(3){animation-delay:.4s}@keyframes wave-flow{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-8px)}}.coach-input{position:fixed;left:0;right:0;bottom:49px;background:transparent;z-index:45;padding:6px 16px;transition:transform .2s ease-out,bottom .2s ease-out;pointer-events:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;max-width:480px;margin:0 auto}.coach-input textarea,.coach-input button{pointer-events:auto}.coach-input textarea{border:1px solid var(--brand);border-radius:12px;padding:9px 10px;height:40px;min-height:40px;max-height:120px;line-height:20px;resize:none;font-size:14px;background:hsl(var(--card));color:hsl(var(--foreground));overflow-y:auto;box-sizing:border-box;vertical-align:top}.dark .coach-input textarea{background:transparent;border-color:var(--brand);color:#fff}.dark .coach-input textarea::-moz-placeholder{color:#fff9}.dark .coach-input textarea::placeholder{color:#fff9}.coach-input textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.coach-input button{border:none;border-radius:20px;background:var(--brand);color:hsl(var(--primary-foreground));padding:0 14px;height:40px;line-height:40px;font-weight:700;cursor:pointer;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;box-sizing:border-box}.checkin-bar{position:fixed;left:0;right:0;bottom:49px;background:transparent;z-index:45;padding:6px 16px;display:grid;gap:10px;max-width:480px;margin:0 auto;pointer-events:none}.checkin-bar>*{pointer-events:auto}.checkin-confirm .photo-preview{border:1px solid var(--border);border-radius:16px;overflow:hidden}.checkin-confirm .photo-preview img{display:block;width:100%;height:auto}.feed{margin:12px 0 0}.feed-empty{color:var(--muted);text-align:center;padding:12px 0}.ig-feed-list{list-style:none;padding:0 0 20px;margin:0;display:grid;gap:20px}.ig-post{border:1px solid var(--border);border-radius:16px;background:hsl(var(--card));overflow:hidden;box-shadow:0 1px 3px #0000000d;transition:box-shadow .2s}.ig-post:hover{box-shadow:0 4px 12px #00000014}.ig-post-header{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:12px 16px}.ig-avatar{width:36px;height:36px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:hsl(var(--foreground));box-shadow:0 0 0 1px #0000000d;overflow:hidden;flex-shrink:0}.ig-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.ig-username{font-weight:700;font-size:15px;color:hsl(var(--foreground))}.ig-options{border:none;background:transparent;color:hsl(var(--muted-foreground));font-size:20px;padding:4px 8px;cursor:pointer;border-radius:8px;transition:background .2s}.ig-options:hover{background:hsl(var(--muted) / .1)}.ig-post-menu{position:absolute;top:100%;right:0;margin-top:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 4px 12px #0000001a;min-width:120px;overflow:hidden;z-index:10}.ig-post-menu-item{width:100%;padding:12px 16px;border:none;background:none;text-align:left;font-size:14px;color:hsl(var(--foreground));cursor:pointer;transition:background .2s}.ig-post-menu-item:hover{background:hsl(var(--muted) / .1)}.ig-post-menu-item.is-danger{color:hsl(var(--destructive));font-weight:600}.ig-post-menu-item.is-danger:hover{background:hsl(var(--destructive) / .1)}.ig-post-image-container{position:relative;background:hsl(var(--muted) / .05)}.ig-post-image img{display:block;width:100%;height:auto;max-height:600px;-o-object-fit:contain;object-fit:contain}.ig-slider-btn{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:18px;background:#fffffff2;color:hsl(var(--foreground));border:none;box-shadow:0 2px 8px #00000026;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:2;-webkit-tap-highlight-color:transparent}.ig-slider-btn:hover{background:#fff;transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px #0003}.ig-slider-prev{left:12px}.ig-slider-next{right:12px}.ig-slider-indicators{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:2;padding:6px 10px;border-radius:12px;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ig-slider-dot{width:6px;height:6px;border-radius:3px;background:#fff9;transition:all .3s cubic-bezier(.4,0,.2,1)}.ig-slider-dot.is-active{background:#fff;width:20px}.ig-post-actions{display:flex;align-items:center;gap:4px;padding:8px 12px}.ig-action{width:40px;height:40px;border-radius:20px;border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:hsl(var(--foreground));position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;transition:all .2s}.ig-action:hover{background:hsl(var(--muted) / .1)}.ig-action.is-active{color:#ef4444;animation:like-bounce .4s cubic-bezier(.4,0,.2,1)}@keyframes like-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.ig-spacer{flex:1}.ig-post-likes{padding:0 16px 8px;font-size:14px;font-weight:700;color:hsl(var(--foreground))}.ig-post-caption{padding:0 16px 8px;font-size:14px;line-height:1.5;color:hsl(var(--foreground))}.ig-post-caption .ig-username{margin-right:6px;font-weight:700}.ig-post-time{padding:0 16px 16px;font-size:12px;color:hsl(var(--muted-foreground));letter-spacing:.2px}.ig-expire{color:hsl(var(--muted-foreground));opacity:.8}.feed-floating-upload-btn{position:fixed;bottom:61px;left:50%;transform:translate(-50%);width:48px;height:48px;border-radius:24px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border:none;box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:100;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent}.feed-floating-upload-btn:hover:not(:disabled){transform:translate(-50%) scale(1.05);box-shadow:0 6px 16px #0003,0 3px 6px #00000026}.feed-floating-upload-btn:active:not(:disabled){transform:translate(-50%) scale(.95)}.feed-floating-upload-btn:disabled{opacity:.6;cursor:not-allowed;transform:translate(-50%) scale(1)}@media (max-width: 640px){.feed-floating-upload-btn{width:44px;height:44px;bottom:59px}}.feed-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.feed-modal{background:hsl(var(--card));border-radius:16px;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.feed-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.feed-modal-header h2{font-size:18px;font-weight:700;margin:0}.feed-modal-close{background:none;border:none;font-size:32px;line-height:1;color:hsl(var(--muted-foreground));cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.feed-modal-body{flex:1;overflow-y:auto;padding:20px}.feed-modal-preview{margin-bottom:16px;border-radius:8px;overflow:hidden;background:hsl(var(--muted) / .1)}.feed-modal-preview img{width:100%;height:auto;display:block}.feed-modal-caption{position:relative}.feed-modal-caption textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font-size:14px;resize:vertical;min-height:80px;font-family:inherit}.feed-modal-caption textarea:focus{outline:none;border-color:hsl(var(--primary))}.feed-modal-caption-count{position:absolute;bottom:8px;right:12px;font-size:12px;color:var(--muted);pointer-events:none}.feed-modal-footer{display:flex;gap:12px;padding:16px 20px;border-top:1px solid var(--border)}.feed-modal-footer button{flex:1;padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s}.feed-modal-footer button:first-child{background:hsl(var(--muted) / .2);color:hsl(var(--foreground))}.feed-modal-footer button:last-child{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.feed-modal-footer button:hover:not(:disabled){opacity:.9}.feed-modal-footer button:disabled{opacity:.5;cursor:not-allowed}.ig-upload{display:flex;flex-direction:column;min-height:100vh;background:hsl(var(--background))}.ig-upload-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 16px;background:hsl(var(--card));border-bottom:1px solid var(--border)}.ig-upload-back{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:hsl(var(--foreground));cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .2s}.ig-upload-back:hover:not(:disabled){opacity:.7}.ig-upload-back:disabled{opacity:.3;cursor:not-allowed}.ig-upload-title{font-size:16px;font-weight:600;color:hsl(var(--foreground));margin:0}.ig-upload-next{padding:7px 16px;background:none;border:none;font-size:14px;font-weight:600;color:hsl(var(--primary));cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .2s}.ig-upload-next:hover:not(:disabled){opacity:.7}.ig-upload-next:disabled{opacity:.3;cursor:not-allowed}.ig-upload-body{flex:1;display:flex;flex-direction:column;overflow-y:auto}.ig-upload-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px}.ig-upload-select-btn{display:flex;flex-direction:column;align-items:center;gap:20px;padding:40px;background:none;border:none;cursor:pointer;color:hsl(var(--foreground));-webkit-tap-highlight-color:transparent;transition:opacity .2s}.ig-upload-select-btn:hover:not(:disabled){opacity:.7}.ig-upload-select-btn:disabled{opacity:.5;cursor:not-allowed}.ig-upload-select-text{font-size:20px;font-weight:300;color:hsl(var(--foreground))}.ig-upload-select-sub{font-size:14px;color:hsl(var(--muted-foreground))}.ig-upload-content{flex:1;display:flex;flex-direction:column}.ig-upload-carousel{flex-shrink:0;background:#000}.ig-upload-carousel-inner{position:relative;width:100%;max-width:600px;margin:0 auto;aspect-ratio:1}.ig-upload-carousel-inner img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block}.ig-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffffe6;border:none;border-radius:50%;color:#000;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s;z-index:10}.ig-carousel-nav:hover:not(:disabled){background:#fff;transform:translateY(-50%) scale(1.1)}.ig-carousel-nav:active:not(:disabled){transform:translateY(-50%) scale(.95)}.ig-carousel-nav:disabled{opacity:.3;cursor:not-allowed}.ig-carousel-prev{left:12px}.ig-carousel-next{right:12px}.ig-carousel-indicators{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:10}.ig-carousel-dot{width:6px;height:6px;border-radius:50%;background:#ffffff80;transition:all .2s}.ig-carousel-dot.is-active{background:#fff}.ig-upload-thumbnails{display:flex;gap:8px;padding:12px 16px;overflow-x:auto;background:hsl(var(--card));border-bottom:1px solid var(--border)}.ig-thumbnail-wrapper{position:relative;flex-shrink:0}.ig-thumbnail{width:64px;height:64px;padding:0;background:hsl(var(--muted) / .1);border:2px solid transparent;border-radius:4px;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s}.ig-thumbnail img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.ig-thumbnail.is-active{border-color:hsl(var(--primary))}.ig-thumbnail:hover:not(:disabled){opacity:.7}.ig-thumbnail:disabled{opacity:.5;cursor:not-allowed}.ig-thumbnail-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:hsl(var(--destructive));border:2px solid hsl(var(--card));border-radius:50%;color:hsl(var(--destructive-foreground));cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s;z-index:1}.ig-thumbnail-remove:hover:not(:disabled){transform:scale(1.1)}.ig-thumbnail-remove:active:not(:disabled){transform:scale(.95)}.ig-thumbnail-remove:disabled{opacity:.5;cursor:not-allowed}.ig-thumbnail-add{flex-shrink:0;width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:hsl(var(--muted) / .1);border:2px dashed var(--border);border-radius:4px;color:hsl(var(--muted-foreground));cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s}.ig-thumbnail-add:hover:not(:disabled){border-color:hsl(var(--primary));color:hsl(var(--primary))}.ig-thumbnail-add:disabled{opacity:.5;cursor:not-allowed}.ig-upload-single-actions{display:flex;gap:12px;padding:12px 16px;background:hsl(var(--card));border-bottom:1px solid var(--border)}.ig-upload-single-remove,.ig-upload-single-add{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:hsl(var(--muted) / .1);border:1px solid var(--border);border-radius:8px;font-size:14px;font-weight:500;color:hsl(var(--foreground));cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s}.ig-upload-single-remove:hover:not(:disabled),.ig-upload-single-add:hover:not(:disabled){background:hsl(var(--muted) / .2)}.ig-upload-single-remove:disabled,.ig-upload-single-add:disabled{opacity:.5;cursor:not-allowed}.ig-upload-details{flex:1;padding:16px;background:hsl(var(--card))}.ig-details-caption{display:flex;gap:12px;align-items:flex-start}.ig-details-avatar{flex-shrink:0;width:32px;height:32px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#fff}.ig-details-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.ig-details-avatar span{display:block}.ig-details-input-wrapper{flex:1;display:flex;flex-direction:column;gap:4px}.ig-details-input{width:100%;padding:0;background:none;border:none;font-size:14px;font-family:inherit;color:hsl(var(--foreground));resize:none;line-height:1.5}.ig-details-input:focus{outline:none}.ig-details-input::-moz-placeholder{color:hsl(var(--muted-foreground))}.ig-details-input::placeholder{color:hsl(var(--muted-foreground))}.ig-details-input:disabled{opacity:.5;cursor:not-allowed}.ig-details-count{text-align:right;font-size:12px;color:hsl(var(--muted-foreground))}.ig-upload-error{display:flex;align-items:center;gap:8px;padding:12px 16px;margin:12px 16px;background:hsl(var(--destructive) / .1);border:1px solid hsl(var(--destructive) / .2);border-radius:8px;color:hsl(var(--destructive));font-size:14px}.ig-upload-processing{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 32px;background:hsl(var(--card));border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 40px #0000001a;z-index:1000}.ig-spinner{width:40px;height:40px;border:3px solid hsl(var(--muted) / .2);border-top-color:hsl(var(--primary));border-radius:50%;animation:ig-spin .8s linear infinite}@keyframes ig-spin{to{transform:rotate(360deg)}}.ig-upload-processing span{font-size:14px;font-weight:500;color:hsl(var(--foreground))}.ig-upload-footer{position:fixed;bottom:49px;left:0;right:0;padding:12px 16px;background:transparent;display:flex;justify-content:center;z-index:50;pointer-events:none}.ig-upload-share-btn{width:auto;min-width:120px;padding:14px 40px;background:hsl(var(--primary));color:#fff;border:none;border-radius:50px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;pointer-events:auto;box-shadow:0 4px 12px #00000026}.ig-upload-share-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.ig-upload-share-btn:active:not(:disabled){transform:translateY(0)}.ig-upload-share-btn:disabled{opacity:.5;cursor:not-allowed}@media (min-width: 768px){.ig-upload{max-width:768px;margin:0 auto;border-left:1px solid var(--border);border-right:1px solid var(--border)}}@media (max-width: 340px){.app{padding:12px 10px 70px}.calendar-weekdays{gap:6px;font-size:10px}.calendar-grid{gap:6px}.day{font-size:12px;min-height:28px}.stat .value{font-size:13px}.bottom-nav-label{font-size:11px}}[data-chart],.chart,.chart-container{min-height:60px;min-width:0;width:100%}.chart svg,.chart-container svg,[data-chart] svg,.chart canvas,.chart-container canvas,[data-chart] canvas{display:block;max-width:100%;max-height:100%}.app-main{transition:opacity .15s ease-in-out;opacity:1}.app-main.tab-transitioning{opacity:0}.app-main.tab-transitioning .title-with-logo,.app-main.tab-transitioning .app-title,.app-main.tab-transitioning .title-logo,.app-main.tab-transitioning .title-logo img,.app-main.tab-transitioning .calendar-nav,.app-main.tab-transitioning .nav-btn,.app-main.tab-transitioning .calendar-label{opacity:1!important;transition:none!important}.title-with-logo,.app-title,.title-logo,.title-logo img,.calendar-nav,.nav-btn,.calendar-label{transition:none!important;animation:none!important;transform:none!important}.nav-btn:hover,.nav-btn:active,.nav-btn:focus{transition:none!important;animation:none!important;transform:none!important}.leaderboard-item .who[role=button]:hover{background-color:transparent}.leaderboard-item .who[role=button]:focus{outline:none!important;box-shadow:none!important;border:none!important}.leaderboard-item .who[role=button]:focus-visible{outline:none!important;box-shadow:none!important;border:none!important}.leaderboard-item .who[role=button]:active{outline:none!important;box-shadow:none!important;border:none!important}.leaderboard-item .who[role=button]{-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent;-moz-user-select:none;user-select:none;-webkit-user-select:none}.leaderboard-item.is-me .who[role=button]:hover{background-color:transparent}.nav-btn:after{display:none!important}.bottom-nav-btn{transition:all .15s ease-out!important}.bottom-nav-btn.active{transform:translateY(-2px);transition:all .2s cubic-bezier(.34,1.56,.64,1)!important}.oauth-callback{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--bg-color);color:var(--text-color)}.oauth-callback-content{text-align:center;padding:2rem}.oauth-callback-content .loading-spinner{width:32px;height:32px;margin:0 auto 1rem;border:3px solid rgba(0,123,255,.2);border-left-color:var(--brand);border-radius:50%;animation:spin 1s linear infinite}.oauth-callback-content p{font-size:1.1rem;margin:1rem 0}.retry-button{background:var(--brand);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;margin-top:1rem;transition:all .2s ease}.retry-button:hover{background:var(--brand-hover);transform:translateY(-1px)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s linear infinite;vertical-align:middle;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{display:flex;justify-content:center;align-items:center;min-height:400px;width:100%}.loading-container .spinner{width:32px;height:32px;border-width:3px;border-color:var(--brand);border-top-color:transparent;margin-right:0}.adduser{padding:1rem;max-width:600px;margin:0 auto}.adduser-content{background:var(--surface);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.adduser-title{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;color:var(--text)}.adduser-form{display:flex;flex-direction:column;gap:1rem}.adduser-field{display:flex;flex-direction:column;gap:.5rem}.adduser-label{font-weight:600;font-size:.9rem;color:var(--text)}.adduser-input{padding:.75rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;background:var(--bg);color:var(--text)}.adduser-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #3b82f61a}.adduser-error{padding:.75rem;background:#fee;color:#c00;border-radius:8px;font-size:.9rem}.adduser-submit-btn{padding:.75rem 1.5rem;background:var(--brand);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.adduser-submit-btn:hover:not(:disabled){background:var(--brand-hover)}.adduser-submit-btn:disabled{opacity:.6;cursor:not-allowed}.adduser-success{display:flex;flex-direction:column;gap:1.5rem}.adduser-success-title{font-size:1.5rem;font-weight:700;color:var(--brand);text-align:center}.adduser-info{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:var(--bg);border-radius:8px}.adduser-info-item{display:flex;justify-content:space-between;align-items:center}.adduser-info-label{font-weight:600;color:var(--text-secondary)}.adduser-info-value{font-weight:700;color:var(--text);font-size:1.1rem}.adduser-message-container{display:flex;flex-direction:column;gap:.5rem}.adduser-message-title{font-weight:600;font-size:.9rem;color:var(--text-secondary)}.adduser-message{padding:1rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;white-space:pre-wrap;font-size:.9rem;line-height:1.6;color:var(--text);overflow-x:auto}.adduser-actions{display:flex;flex-direction:column;gap:.75rem}.adduser-copy-btn,.adduser-reset-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.adduser-copy-btn{background:var(--brand);color:#fff}.adduser-copy-btn:hover{background:var(--brand-hover)}.adduser-reset-btn{background:var(--surface);color:var(--text);border:1px solid var(--border)}.adduser-reset-btn:hover{background:var(--bg)}.admin{margin:12px 0 0;display:flex;flex-direction:column}.admin-nav-tabs{display:flex;gap:8px;margin-bottom:20px}.admin-nav-tab{padding:10px 20px;border:1px solid var(--border);background:hsl(var(--card));border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;color:hsl(var(--foreground));transition:all .2s ease}.admin-nav-tab:hover{background:hsl(var(--muted))}.admin-nav-tab.active{background:var(--brand);color:#fff;border-color:var(--brand)}.admin-floating-add-btn{position:fixed;bottom:65px;left:50%;transform:translate(-50%);padding:14px 24px;background:var(--brand);color:#fff;border:none;border-radius:50px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #ef444466;z-index:900}.admin-floating-add-btn:hover{background:#dc2626;transform:translate(-50%) translateY(-2px);box-shadow:0 6px 16px #ef444480}.admin-floating-add-btn:active{transform:translate(-50%) translateY(0);box-shadow:0 2px 8px #ef44444d}.admin-actions{display:flex;justify-content:flex-end;margin-bottom:12px}.admin-add-user-btn{padding:10px 20px;background:var(--brand);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.admin-add-user-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 2px 8px #ef44444d}.admin-add-user-btn:active{transform:translateY(0)}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}.admin-title{font-weight:800;font-size:var(--font-lg);color:var(--text);margin:0}.admin-count{color:hsl(var(--muted-foreground));font-size:var(--font-sm);font-weight:600}.admin-table{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:hsl(var(--card))}.admin-table-header{display:grid;grid-template-columns:1fr 1fr 3fr;background:hsl(var(--muted));border-bottom:2px solid var(--border)}.admin-table-header .admin-table-cell{font-weight:800;font-size:14px;color:var(--text);padding:12px var(--space-2);text-align:left}.admin-table-body{display:flex;flex-direction:column}.admin-table-row{display:grid;grid-template-columns:1fr 1fr 3fr;border-bottom:1px solid var(--border);transition:background-color .15s ease;cursor:pointer}.admin-table-row:last-child{border-bottom:none}.admin-table-row:hover{background:hsl(var(--muted))!important}.admin-table-row.striped{background:#00000005}.dark .admin-table-row.striped{background:#ffffff05}.admin-table-cell{padding:12px var(--space-2);font-size:14px;color:var(--text);display:flex;align-items:center}.admin-table-nickname{font-weight:700;color:var(--text)}.admin-table-notes{color:hsl(var(--muted-foreground));font-size:13px}.admin-table-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:hsl(var(--muted-foreground));font-weight:600}.admin-table-status{justify-content:center}.admin-status-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.admin-status-badge.active{background:#dcfce7;color:#166534}.dark .admin-status-badge.active{background:#14532d;color:#86efac}.admin-status-badge.paused{background:#fef3c7;color:#92400e}.dark .admin-status-badge.paused{background:#78350f;color:#fde047}.admin-loading,.admin-error,.admin-empty{text-align:center;padding:40px 20px;color:hsl(var(--muted-foreground));font-size:var(--font-md)}.admin-error{color:#ef4444}.admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182780;display:flex;align-items:center;justify-content:center;z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.admin-modal-content{background:hsl(var(--card));border-radius:12px;width:min(400px,calc(100% - 32px));max-height:80vh;overflow-y:auto;box-shadow:0 10px 30px #0003;animation:modal-in .22s cubic-bezier(.22,.61,.36,1)}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border)}.admin-modal-title{font-size:18px;font-weight:800;color:var(--text);margin:0}.admin-modal-close{width:32px;height:32px;border:none;background:transparent;color:hsl(var(--muted-foreground));font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.admin-modal-close:hover{background:hsl(var(--muted));color:var(--text)}.admin-modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.admin-modal-field{display:flex;flex-direction:column;gap:6px}.admin-modal-label{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em}.admin-modal-value{font-size:15px;color:var(--text);font-weight:500}.admin-modal-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:600;color:var(--brand)}.admin-modal-select{width:100%;padding:10px 36px 10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;color:var(--text);background:hsl(var(--background));cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.admin-modal-select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #ef44441a}.admin-modal-textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;color:var(--text);background:hsl(var(--background));resize:vertical;min-height:60px;line-height:1.5}.admin-modal-textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #ef44441a}.admin-modal-footer{padding:20px;border-top:1px solid var(--border);display:flex;gap:12px}.admin-modal-save-btn{flex:1;padding:12px;background:var(--brand);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.admin-modal-save-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.admin-modal-save-btn:active{transform:translateY(0)}.admin-modal-delete-btn{flex:1;padding:12px;background:transparent;color:#ef4444;border:1px solid #ef4444;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.admin-modal-delete-btn:hover{background:#ef4444;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.admin-modal-delete-btn:active{transform:translateY(0)}.admin-modal-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:15px;color:var(--text);background:hsl(var(--background))}.admin-modal-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #ef44441a}.admin-modal-error{padding:10px 12px;background:#ef44441a;color:#ef4444;border-radius:8px;font-size:14px;text-align:center}.admin-modal-cancel-btn{flex:1;padding:12px;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.admin-modal-cancel-btn:hover{background:hsl(var(--muted))}.tips{margin:12px 0 0;display:flex;flex-direction:column;padding-bottom:80px}.tips-write-bar{position:fixed;left:0;right:0;bottom:49px;background:transparent;z-index:45;padding:10px 16px;display:flex;justify-content:center;max-width:480px;margin:0 auto}.tips-write-btn-fixed{padding:12px 32px;background:var(--brand);color:#fff;border:none;border-radius:24px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #ef44444d;position:relative;overflow:hidden}.tips-write-btn-fixed:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 4px 12px #ef444466}.tips-write-btn-fixed:active{transform:translateY(0)}.tips-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.tips-card{border:1px solid var(--border);border-radius:12px;background:hsl(var(--card));padding:16px;transition:all .2s}.tips-card:hover{box-shadow:0 2px 8px #0000001a}.tips-card-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;gap:12px}.tips-card-title{font-size:16px;font-weight:700;color:var(--text);margin:0;flex:1}.tips-card-author{font-size:13px;color:hsl(var(--muted-foreground));font-weight:600;flex-shrink:0}.tips-card-content{font-size:14px;color:var(--text);line-height:1.6;margin:0 0 12px;white-space:pre-wrap}.tips-card-footer{display:flex;justify-content:flex-end}.tips-card-date{font-size:12px;color:hsl(var(--muted-foreground))}.tips-loading,.tips-error,.tips-empty{text-align:center;padding:40px 20px;color:hsl(var(--muted-foreground));font-size:var(--font-md)}.tips-error{color:#ef4444}.tips-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182780;display:flex;align-items:center;justify-content:center;z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tips-modal-content{background:hsl(var(--card));border-radius:12px;width:min(450px,calc(100% - 32px));max-height:80vh;overflow-y:auto;box-shadow:0 10px 30px #0003;animation:modal-in .22s cubic-bezier(.22,.61,.36,1)}.tips-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border)}.tips-modal-title{font-size:18px;font-weight:800;color:var(--text);margin:0}.tips-modal-close{width:32px;height:32px;border:none;background:transparent;color:hsl(var(--muted-foreground));font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.tips-modal-close:hover{background:hsl(var(--muted));color:var(--text)}.tips-modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.tips-modal-field{display:flex;flex-direction:column;gap:8px}.tips-modal-label{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em}.tips-modal-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:15px;color:var(--text);background:hsl(var(--background))}.tips-modal-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #ef44441a}.tips-modal-textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;color:var(--text);background:hsl(var(--background));resize:vertical;min-height:120px;line-height:1.5}.tips-modal-textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #ef44441a}.tips-modal-error{padding:10px 12px;background:#ef44441a;color:#ef4444;border-radius:8px;font-size:14px;text-align:center}.tips-modal-footer{padding:20px;border-top:1px solid var(--border);display:flex;gap:12px}.tips-modal-cancel-btn{flex:1;padding:12px;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.tips-modal-cancel-btn:hover{background:hsl(var(--muted))}.tips-modal-submit-btn{flex:1;padding:12px;background:var(--brand);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.tips-modal-submit-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.tips-modal-submit-btn:active{transform:translateY(0)}.mypage-ig-title-row{display:flex;align-items:center;gap:12px}.mypage-ig-settings-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:hsl(var(--foreground));cursor:pointer;border-radius:50%;transition:all .2s;-webkit-tap-highlight-color:transparent;flex-shrink:0;padding:0}.mypage-ig-settings-btn:hover{background:hsl(var(--muted) / .1)}.mypage-ig-settings-btn:active{transform:scale(.95)}.settings-ig{padding:8px 0}.settings-ig-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:none;border:none;width:100%;text-align:left;cursor:pointer;transition:background .2s;-webkit-tap-highlight-color:transparent}.settings-ig-item:not(.is-info):hover{background:hsl(var(--muted) / .05)}.settings-ig-item:not(.is-info):active{background:hsl(var(--muted) / .1)}.settings-ig-item.is-info{cursor:default}.settings-ig-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:hsl(var(--foreground));flex-shrink:0}.settings-ig-content{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.settings-ig-title{font-size:15px;font-weight:400;color:hsl(var(--foreground))}.settings-ig-value{font-size:14px;color:hsl(var(--muted-foreground))}.settings-ig-arrow{flex-shrink:0;color:hsl(var(--muted-foreground))}.settings-ig-divider{height:8px;background:hsl(var(--muted) / .05);border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:8px 0}.settings-ig-group{padding:16px}.settings-ig-group-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;color:hsl(var(--foreground))}.settings-ig-group-title{font-size:15px;font-weight:600;color:hsl(var(--foreground))}.settings-theme-toggle{display:flex;gap:8px;padding:4px;background:hsl(var(--muted) / .1);border-radius:12px}.settings-theme-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;background:transparent;border:none;border-radius:8px;font-size:14px;font-weight:500;color:hsl(var(--foreground));cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.settings-theme-btn:hover:not(.is-active){background:hsl(var(--muted) / .05)}.settings-theme-btn:active{transform:scale(.97)}.settings-theme-btn.is-active{background:hsl(var(--card));box-shadow:0 2px 4px #00000014}.settings-theme-btn span{font-size:13px}.title-back-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:hsl(var(--foreground));cursor:pointer;border-radius:50%;transition:all .2s;-webkit-tap-highlight-color:transparent;margin-right:8px}.title-back-btn:hover{background:hsl(var(--muted) / .1)}.title-back-btn:active{transform:scale(.95)}.settings-version-info{display:flex;flex-direction:column;gap:12px}.settings-version-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:hsl(var(--muted) / .05);border-radius:8px}.settings-version-label{font-size:14px;font-weight:500;color:hsl(var(--foreground))}.settings-version-value{font-size:14px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,monospace}:root{--space-0: 0px;--space-0-5: 4px;--space-1: 8px;--space-1-5: 10px;--space-2: 12px;--space-3: 16px;--space-4: 20px;--space-5: 24px;--space-6: 32px;--space-8: 40px;--space-10: 48px;--space-12: 56px;--space-16: 64px}:root{--font-xs: 11px;--font-sm: 12px;--font-base: 14px;--font-md: 15px;--font-lg: 16px;--font-xl: 18px;--font-2xl: 20px;--font-3xl: 24px;--font-4xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}:root{--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-base: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1), 0 4px 6px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .15), 0 10px 10px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25)}.dark{--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-base: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .4), 0 4px 6px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .5), 0 10px 10px rgba(0, 0, 0, .2);--shadow-2xl: 0 25px 50px rgba(0, 0, 0, .6)}:root{--radius-sm: 4px;--radius-base: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px}:root{--transition-fast: .15s;--transition-base: .2s;--transition-slow: .3s;--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.68, -.55, .265, 1.55)}:root{--z-base: 0;--z-dropdown: 10;--z-sticky: 20;--z-fixed: 30;--z-modal-backdrop: 40;--z-modal: 50;--z-popover: 60;--z-tooltip: 70;--z-notification: 80;--z-max: 100}.dark{--background: 0 0% 8%;--card: 0 0% 12%;--border: 0 0% 20%;--muted: 0 0% 20%;--accent: 0 0% 20%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}
