:root{--brand: #c4002f;--bg: #f2f2f2;--card: #ffffff;--text: #111111;--muted: #666666;--border: #e5e5e5;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%}body{background:var(--brand);color:var(--text)}body.app-mode{overflow:hidden}body.admin-mode{overflow-y:auto;overflow-x:hidden}.app-root{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden}.device{width:min(1200px,100%);height:min(860px,100%);display:grid;grid-template-rows:auto 1fr;background:var(--bg);border-radius:0;overflow:hidden;border:1px solid var(--border);position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:#ffffffbf}.topbar-heading{display:flex;align-items:flex-start;gap:8px;min-width:0}.topbar-title{margin:0;font-size:16px;font-weight:700;display:flex;flex-wrap:wrap;line-height:1.25}.title-line1,.title-line2{white-space:nowrap}.title-line2{margin-left:4px}.topbar-date{margin:0;font-size:12px;color:var(--muted)}.content{overflow:auto;padding:12px 12px calc(96px + env(safe-area-inset-bottom,0px));-ms-overflow-style:none;scrollbar-width:none}.content::-webkit-scrollbar{width:0;height:0;display:none}.floating-menu{position:absolute;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));width:72px;height:72px;z-index:35}.floating-avatar-btn{width:72px;height:72px;border-radius:999px;border:2px solid #0a0a0a;box-shadow:none;background:radial-gradient(circle at 25% 20%,#fffffffa,#fff0 40%),radial-gradient(circle at 70% 78%,#00000038,#0000 48%),#f7f7f7;padding:0;overflow:hidden;cursor:pointer;position:relative;transition:transform .14s ease,box-shadow .14s ease}.floating-avatar-btn:hover{transform:translateY(-2px) scale(1.015)}.floating-avatar-btn:active{transform:translateY(2px) scale(.99);box-shadow:none}.floating-avatar-btn img{width:100%;height:100%;object-fit:cover;display:block;border-radius:999px}.floating-avatar-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:radial-gradient(circle at 30% 20%,#ffffff80,#fff0 42%),radial-gradient(circle at 75% 85%,#0003,#0000 42%);pointer-events:none}.floating-avatar-fallback{display:none;place-items:center;width:100%;height:100%;font-size:28px;background:#fff6f8}.floating-ring{position:absolute;right:0;bottom:0;width:72px;height:72px;pointer-events:none}.floating-item{position:absolute;right:6px;bottom:6px;width:52px;height:52px;border-radius:999px;border:2px solid #222;background:#fff;color:#111;font-weight:800;cursor:pointer;opacity:0;transform:translate(0) scale(.75);transition:transform .22s ease,opacity .22s ease;box-shadow:0 8px 20px #0000001f;pointer-events:none}.floating-menu.open .floating-item{opacity:1;pointer-events:auto}.floating-item:nth-child(1){transform:translate(-88px) scale(1)}.floating-item:nth-child(2){transform:translate(-62px,-62px) scale(1)}.floating-menu:not(.open) .floating-item{transform:translate(0) scale(.75)}.floating-item.active{border-color:#c4002f66;color:var(--brand);background:#fff4f7}.tabbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border);background:#ffffffbf;padding:10px;gap:8px}.tab{border:1px solid var(--border);border-radius:12px;background:#fff;padding:10px;font-weight:700;cursor:pointer}.tab.active{color:var(--brand);border-color:#c4002f4d}.home-grid{display:grid;gap:12px;grid-template-columns:1fr;grid-template-areas:"daily" "hero" "heroPhotos" "links" "curve" "tags" "records" "proof"}.area-links{grid-area:links}.area-hero{grid-area:hero}.area-hero-photos{grid-area:heroPhotos}.area-curve{grid-area:curve}.area-tags{grid-area:tags}.area-daily{grid-area:daily}.area-records{grid-area:records}.area-proof{grid-area:proof}.area-daily .card{background:transparent;border:0;padding:0;margin:0;display:flow-root}.area-daily{padding:0;align-self:start}.area-daily>.card{height:auto!important}.home-grid>div{min-width:0}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:14px}.card-header{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.card-header h2{margin:0;font-size:22px}.eyebrow,.muted{margin:0;color:var(--muted)}.balance{margin:8px 0;font-size:clamp(28px,4vw,48px);font-weight:800}.balance-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:nowrap}.balance-changes{display:grid;gap:6px;text-align:right;flex:0 0 auto}.balance-change{display:grid;gap:1px;font-size:12px;line-height:1.2}.balance-change .label{color:var(--muted);font-weight:700}.balance-change .value{font-weight:800}.balance-change.up .value{color:#0d7f36}.balance-change.down .value{color:var(--brand)}.balance-change.flat .value{color:var(--muted)}.social-row-card{padding:10px;display:grid;gap:8px}.social-row{display:grid;grid-template-columns:2fr 1fr;gap:10px;align-items:stretch}.social-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.social-head strong{font-size:13px}.social-head a{color:var(--muted);text-decoration:none}.embed-wrap{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#f8f8f8}.embed-wrap.video{aspect-ratio:16 / 9}.embed-wrap.post{height:100%}.embed-wrap iframe{width:100%;height:100%;border:0;display:block}.social-instagram iframe{pointer-events:none}.social-links-panel{display:grid;gap:8px;width:100%;align-self:start;align-content:start;padding:10px;border:1px solid var(--border);border-radius:14px;background:#ffffffb8;box-sizing:border-box}.social-instagram-profiles{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;aspect-ratio:auto;height:auto;width:100%;justify-items:stretch}.social-links-title{margin:0 0 2px;color:var(--brand);font-size:12px;font-weight:900;line-height:1.1}.instagram-profile-link{border:1px solid var(--border);border-radius:10px;background:#fff;color:#222;text-decoration:none;font-weight:700;font-size:12px;line-height:1;min-height:42px;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:8px 10px;width:100%;box-sizing:border-box}.instagram-profile-meta{min-width:0;display:grid;gap:2px}.instagram-profile-name{display:block;font-weight:800;font-size:12px;line-height:1.15}.social-link-arrow{color:#ff69b4}.instagram-profile-desc{display:block;font-weight:600;font-size:11px;line-height:1.2;color:var(--muted)}.social-logo-link{position:absolute;right:8px;bottom:8px;z-index:3;width:30px;height:30px;border-radius:999px;text-decoration:none;display:grid;place-items:center;border:1px solid rgba(0,0,0,.14);background:#fffffff2}.social-logo-mark{width:22px;height:22px;display:block}.social-row>*{min-width:0}.instagram-fallback{border:1px dashed var(--border);border-radius:10px;min-height:110px;display:grid;place-items:center;color:var(--muted);font-size:13px;text-decoration:none;font-weight:700}.extra-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.extra-link{border:1px solid var(--border);border-radius:10px;background:#fff;padding:9px 10px;text-decoration:none;color:#222;font-size:13px;font-weight:700;text-align:center}.placeholder{min-height:90px;display:grid;place-items:center;border:1px dashed var(--border);border-radius:12px;margin-top:10px;color:var(--muted);font-size:13px}.card-lg .placeholder{min-height:180px}.linkish{border:0;background:transparent;color:var(--brand);font-weight:700;margin-top:10px;padding:0;cursor:pointer}.hero-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.kpi{margin:4px 0 0;font-size:clamp(20px,2vw,28px);font-weight:800;line-height:1.1}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{border:1px solid var(--border);border-radius:999px;background:#fff;padding:5px 10px;font-size:12px;font-weight:700}.segmented{display:flex;gap:6px}.segbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);border-radius:999px;background:#f1f1f1;padding:6px 10px;font-weight:700;font-size:12px;color:#7b7b7b;cursor:pointer}.segbtn.active{color:var(--brand);border-color:#c4002f4d;background:#fff5f8}.curve{width:100%;height:auto;margin-top:8px;border:1px solid var(--border);border-radius:12px;background:#fff}.axis-labels{display:flex;justify-content:space-between;margin-top:6px;color:var(--muted);font-size:12px}.chart-wrap{margin-top:10px;height:220px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bar{display:flex;height:14px;border-radius:999px;overflow:hidden;border:1px solid var(--border);margin-top:10px}.bar span{display:block;height:100%}.legend{display:grid;gap:8px;margin-top:10px}.legend-item{display:flex;justify-content:space-between;gap:8px;font-size:13px}.legend-item i{display:inline-block;width:9px;height:9px;border-radius:999px;margin-right:7px}.note{margin:10px 0 0;border:1px solid var(--border);border-radius:12px;background:#fff;padding:10px;color:var(--muted);font-weight:600}.daily-hook{margin:0;border:1px solid rgba(196,0,47,.2);border-radius:12px;background:#fff6f8;padding:12px;color:#9c0026;font-size:18px;font-weight:800;line-height:1.35;display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.daily-hook-days{color:#c4002f;font-weight:900;background:#c4002f1f;border-radius:8px;padding:0 6px}.daily-hook-line{display:block;white-space:nowrap}.daily-hook-current-day{color:#c4002f;font-weight:900;background:#c4002f1f;border-radius:8px;padding:0 6px}.daily-info-btn{width:26px;height:26px;border-radius:999px;border:1px solid rgba(196,0,47,.35);background:#fff;color:var(--brand);font-weight:800;cursor:pointer}.daily-info-note{margin:0;color:#333;font-size:14px;line-height:1.5}.daily-info-head{font-weight:800}.daily-info-value{color:var(--brand);font-weight:900;margin:0 2px}.daily-info-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#0000008c;display:grid;place-items:center;padding:20px}.daily-info-modal-content{position:relative;width:min(92vw,440px);border-radius:14px;border:1px solid var(--border);background:#fff;padding:16px 14px 14px}.daily-info-modal-close{position:absolute;top:8px;right:8px;width:28px;height:28px;border:0;border-radius:999px;background:#f2f2f2;color:#111;font-size:20px;line-height:1;cursor:pointer}.list{display:grid;gap:8px;margin-top:10px}.list-row{display:flex;justify-content:space-between;gap:8px;border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px;font-size:13px}.recent-day-list{display:grid;gap:8px;margin-top:10px}.recent-day-row{display:grid;grid-template-columns:70px minmax(0,1.3fr) minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--border);background:#fff;border-radius:10px;padding:8px 10px}.recent-col{font-size:12px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-col.date{font-weight:800}.recent-col.memo{color:#222;font-weight:650}.recent-col.tags{color:var(--muted)}.recent-col.delta{font-size:13px;font-weight:800;text-align:right}.recent-col.delta.income{color:#1f3a8a}.recent-col.delta.expense{color:var(--brand)}.recent-col.delta.flat{color:var(--muted)}.proof-box{margin-top:10px;min-height:90px;border:1px dashed var(--border);border-radius:12px;display:grid;place-items:center;color:var(--muted)}.thumb{margin-top:10px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.thumb img{display:block;width:100%;height:180px;object-fit:contain;background:#f7f7f7}#screen-proof .thumb{max-width:400px}#screen-proof .thumb img{height:250px}.stack-page{display:grid;gap:12px}#screen-proof .stack-page{max-width:560px;margin:0 auto}.proof-carousel-card{overflow:hidden}.carousel{margin-top:10px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}.carousel-viewport{overflow:hidden}.carousel-track{display:flex;will-change:transform}.carousel-slide{min-width:100%}.carousel-slide .thumb{margin:0 auto}.carousel-nav{width:32px;height:32px;border:1px solid var(--border);border-radius:999px;background:#fff;cursor:pointer;color:var(--text);font-size:24px;line-height:1;display:grid;place-items:center;padding:0}.carousel-dots{display:flex;justify-content:center;gap:6px;margin-top:10px}.dot-btn{width:8px;height:8px;border-radius:999px;border:0;background:#cfcfcf;cursor:pointer;padding:0}.dot-btn.active{width:18px;background:var(--brand)}#screen-records .stack-page{max-width:860px;margin:0 auto}.record-day{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.record-day summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;padding:10px 12px;font-weight:750}.record-day summary::-webkit-details-marker{display:none}.record-balance-row{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#f2f2f2cc;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.record-balance-label{font-size:12px;color:var(--muted);font-weight:650}.record-balance-value{font-size:12px;color:#555;font-weight:700}.summary-inline{display:flex;align-items:center;gap:10px;min-width:0}.summary-date{font-weight:800;white-space:nowrap}.summary-meta{color:var(--muted);font-size:12px;font-weight:650;white-space:nowrap}.record-row{border-top:1px solid var(--border);padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}.record-row.effective{background:#f2f2f2b3}.record-row.compact{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.record-left{display:grid;gap:4px}.record-row.compact .record-left{display:flex;align-items:center;gap:8px;min-width:0}.record-inline-text{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.record-memo{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.record-tags-inline{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.record-right{text-align:right;min-width:145px}.record-right.compact{min-width:auto}.record-photo-strip{border-top:1px solid var(--border);padding:10px 12px;display:flex;gap:8px;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none}.record-photo-strip::-webkit-scrollbar{width:0;height:0;display:none}.record-photo-thumb{width:56px;height:56px;border-radius:999px;overflow:hidden;border:1px solid var(--border);flex:0 0 auto;background:#fff}.record-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.record-photo-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#000000b3;display:grid;place-items:center;padding:20px}.record-photo-modal-content{position:relative;width:min(92vw,760px);height:min(88vh,760px);border-radius:16px;overflow:hidden;background:#111;border:1px solid rgba(255,255,255,.15)}.shared-carousel{position:relative}.shared-carousel-viewport{width:100%;height:100%;overflow:hidden}.shared-carousel-track{height:100%;display:flex;will-change:transform}.shared-carousel-slide{min-width:100%;height:100%}.shared-carousel-image{width:100%;height:100%;display:block}.shared-carousel-image.contain{object-fit:contain}.shared-carousel-image.cover{object-fit:cover}.shared-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:36px;height:36px;border:0;border-radius:999px;background:#0000008c;color:#fff;font-size:28px;line-height:1;cursor:pointer}.shared-carousel-nav.prev{left:10px}.shared-carousel-nav.next{right:10px}.shared-carousel-dots{margin-top:8px;display:flex;justify-content:center;gap:6px}.shared-carousel-dot{width:7px;height:7px;border-radius:999px;border:0;background:#d3d3d3;cursor:pointer;padding:0}.shared-carousel-dot.active{background:var(--brand)}.shared-carousel-count{position:absolute;left:50%;bottom:10px;z-index:5;transform:translate(-50%);padding:4px 10px;border-radius:999px;background:#0000008c;color:#fff;font-size:12px;font-weight:700}.record-modal-carousel{width:100%;height:100%}.record-photo-modal-close{position:absolute;top:10px;right:10px;z-index:6;width:32px;height:32px;border:0;border-radius:999px;background:#0000008c;color:#fff;font-size:24px;line-height:1;cursor:pointer}.record-photo-modal-count{z-index:5}.tiny{color:var(--muted);font-size:12px;font-weight:650}.badge{display:inline-flex;align-items:center;flex:0 0 auto;border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:750;white-space:nowrap;word-break:keep-all;line-height:1}.badge.expense{color:var(--brand)}.badge.income{color:#1f3a8a}.amount.expense{color:var(--brand)}.amount.income{color:#1f3a8a}.action-card{position:relative;padding-bottom:46px}.action-card .linkish{position:absolute;left:14px;bottom:14px;margin:0}.proof-carousel-home-card .shared-carousel{margin-top:10px}.proof-home-carousel .shared-carousel-viewport{border:1px solid var(--border);border-radius:12px;background:#f7f7f7;aspect-ratio:16 / 10}.home-record-photos-card{padding-bottom:10px}.home-record-photo-strip{border-top:0;padding-top:8px}.home-photo-modal-content{display:grid;grid-template-rows:minmax(0,1fr) auto}.home-record-modal-carousel{min-height:0}.home-photo-meta{border-top:1px solid rgba(255,255,255,.12);background:#161616eb;color:#f2f2f2;padding:10px 12px;display:grid;gap:6px}.home-photo-meta-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:start}.home-photo-meta-label{color:#b5b5b5;font-size:12px;font-weight:700}.home-photo-meta-value{color:#f2f2f2;font-size:12px;font-weight:650;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1023px){.device{width:min(760px,100%)}.title-line2{display:block;width:100%;margin-left:0}.chart-wrap{height:200px}}@media (min-width: 1025px){.home-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"daily daily" "hero hero" "heroPhotos heroPhotos" "links links" "curve tags" "records proof"}}@media (min-width: 768px){.home-grid>div{display:flex}.home-grid>div>.card{width:100%;height:100%}.balance-row{justify-content:flex-start;gap:clamp(18px,4vw,56px)}.balance-changes{text-align:left}.social-row{align-items:stretch}.embed-wrap.post{height:100%;aspect-ratio:auto}.social-instagram-profiles{align-self:start;align-content:start;justify-content:start;height:auto;width:100%}.social-links-panel{align-self:start}.daily-hook{white-space:nowrap;align-items:center}.daily-hook-line{display:inline}.daily-hook-line+.daily-hook-line:before{content:" "}}@media (max-width: 767px){.app-root{padding:10px}.device{width:100%;height:100%;border-radius:0}.topbar-title{font-size:14px}.topbar-heading{align-items:center}.home-grid{grid-template-columns:1fr;grid-template-areas:"daily" "hero" "heroPhotos" "links" "curve" "tags" "records" "proof"}.balance-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(118px,.82fr);align-items:start;gap:6px}.balance{font-size:clamp(16px,7.8vw,32px);line-height:1.02}.balance-changes{min-width:0;justify-self:end;gap:4px;text-align:right}.balance-change{font-size:11px;min-width:0}.balance-change .value{display:block;font-size:clamp(11px,3.2vw,14px);line-height:1.15;white-space:normal;word-break:break-word}.social-row{grid-template-columns:1fr;grid-template-areas:"youtube" "sns";gap:6px;align-items:start}.social-youtube{grid-area:youtube}.social-links-panel{grid-area:sns}.social-row-card{padding:8px}.embed-wrap{border-radius:8px}.embed-wrap.video{aspect-ratio:16 / 11}.embed-wrap.post{height:auto;aspect-ratio:4 / 5}.social-instagram-profiles{grid-template-columns:repeat(2,minmax(0,1fr));aspect-ratio:auto;height:auto;overflow:visible;align-content:start;width:100%}.social-instagram iframe{transform:none;width:100%;height:100%}.area-tags .card-header h2{font-size:20px;line-height:1.1}.area-tags .card-header .muted{font-size:11px;line-height:1.1;white-space:nowrap}.instagram-profile-link{position:relative;width:100%;min-width:0;min-height:38px;padding:6px 8px 6px 34px;gap:6px;align-items:center;justify-content:center;text-align:center}.instagram-profile-link .social-logo-mark{position:absolute;left:8px;top:50%;transform:translateY(-50%)}.instagram-profile-name{font-size:10px;line-height:1.1;white-space:normal;word-break:normal}.instagram-profile-meta{justify-items:center}.instagram-profile-desc{font-size:10px;line-height:1.1;white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all}#screen-proof .thumb{max-width:none}#screen-proof .thumb img{height:180px}#screen-proof .stack-page{max-width:none}.record-row{grid-template-columns:1fr}.record-row.compact{grid-template-columns:minmax(0,1fr) auto}.record-right{text-align:left;min-width:0}.recent-day-row{grid-template-columns:70px minmax(0,1fr) auto;grid-template-areas:"date memo delta" "date tags delta"}.recent-col.date{grid-area:date}.recent-col.memo{grid-area:memo}.recent-col.tags{grid-area:tags}.recent-col.delta{grid-area:delta}.action-card .linkish{bottom:12px}}.admin-root{min-height:100vh;background:#f6f6f6;color:#111;padding:24px;font-size:15px;line-height:1.4}.admin-root button,.admin-root input,.admin-root select,.admin-root textarea{font:inherit;color:inherit}.admin-root button,.admin-root input[type=button],.admin-root input[type=submit],.admin-root input[type=reset],.admin-root input[type=date],.admin-root select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:10px}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-header h1{margin:0;font-size:28px}.admin-header p{margin:8px 0 0;color:#666}.admin-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:12px}.admin-tab-panel{margin-top:20px}.admin-card{border:1px solid #e5e5e5;background:#fff;border-radius:14px;padding:14px}.admin-card h2{margin:0 0 10px;font-size:18px}.admin-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-settings{margin-top:12px}.admin-settings-actions{display:flex;gap:8px}.admin-settings-message{margin:10px 0 0;font-size:12px;font-weight:700}.admin-settings-message.error{color:#b1002b}.admin-settings-message.success{color:#0a6d24}.admin-inline-error{margin:4px 0 0;font-size:13px;font-weight:700;color:#b1002b}.admin-tabs{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.admin-tab{border:1px solid #d8d8d8;background:#fff;border-radius:10px;padding:10px 12px;font-size:13px;font-weight:700;cursor:pointer}.admin-tab.active{border-color:#c4002f;color:#c4002f;background:#fff4f7}.admin-h2-gap{margin-top:20px!important}.admin-error{margin-top:12px;border-color:#ffccd9;background:#fff3f7;color:#b1002b}.admin-notice{margin-top:12px;border-color:#d6efdb;background:#f4fff6;color:#0a6d24}.admin-form{display:grid;gap:10px}.admin-fieldset{border:0;margin:0;padding:0;min-width:0;display:grid;gap:10px}.admin-fieldset:disabled{opacity:.6}.admin-row{display:grid;gap:8px}.admin-row.two{grid-template-columns:1fr 1fr}.admin-row.three{grid-template-columns:1fr 1fr 1fr auto}.admin-row.four{grid-template-columns:1fr 1fr 1fr 120px auto}.admin-row.tag,.admin-row.tag-add{grid-template-columns:1fr auto}.admin-label{display:block;margin-bottom:6px;font-weight:600}.admin-form label{display:grid;gap:6px;font-weight:600;font-size:13px;min-width:0}.admin-input{width:100%;border:1px solid #ddd;border-radius:10px;background:#fff;padding:10px 12px;font-size:13px;box-sizing:border-box;min-width:0}.admin-input-prominent{font-size:12px;font-weight:400}.admin-input[type=date]{width:100%;max-width:100%;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-min-logical-width:0}.admin-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin-type-btn{border:1px solid #d8d8d8;border-radius:10px;background:#fff;height:40px;font-size:13px;font-weight:700;cursor:pointer}.admin-type-btn.active{border-color:#c4002f;color:#c4002f;background:#fff4f7}.admin-subtitle{margin-top:4px;font-size:12px;color:#666;font-weight:700}.admin-section{border:1px solid #ececec;border-radius:12px;background:#fafafa;padding:10px;display:grid;gap:10px}.admin-section h3{margin:0;font-size:14px}.tag-options{display:flex;flex-wrap:wrap;gap:6px}.tag-option{border:1px solid #d9d9d9;background:#fff;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:700;cursor:pointer}.tag-option.active{border-color:#c4002f;color:#c4002f;background:#fff5f8}.selected-tags{display:flex;flex-wrap:wrap;gap:6px}.selected-tag{border:1px solid #e2e2e2;background:#fff;border-radius:999px;padding:5px 9px;font-size:10px;cursor:pointer}.admin-toggle{display:flex!important;align-items:center;gap:8px;font-size:13px;font-weight:700}.admin-btn{border:1px solid #ddd;border-radius:10px;background:#fff;padding:8px 10px;font-size:12px;cursor:pointer}.admin-btn-sm{padding:5px 9px;font-size:12px;line-height:1.2}.admin-btn.primary{border-color:#c4002f;background:#c4002f;color:#fff;font-weight:700}.admin-btn.ghost{background:#fafafa}.admin-btn.danger{border-color:#ffccd9;color:#b1002b;background:#fff4f8}.admin-list{margin:0;padding-left:18px;display:grid;gap:8px}.admin-record-list{display:grid;gap:10px;margin-top:12px}.admin-record-item{border:1px solid #ebebeb;border-radius:10px;padding:12px 14px;display:flex;justify-content:space-between;gap:14px;align-items:center;background:#fff}.admin-record-main{display:grid;gap:6px;min-width:0}.admin-record-date{font-size:14px;line-height:1.2}.admin-record-meta{font-size:13px;color:#555;line-height:1.35;word-break:break-word}.admin-record-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-record-tags{display:flex;flex-wrap:wrap;gap:6px}.admin-record-tags.inline{display:inline-flex}.admin-record-tag{border:1px solid #ddd;border-radius:999px;background:#fff;padding:3px 8px;font-size:10px;color:#444}.admin-root .tag-option,.admin-root .selected-tag,.admin-root .admin-record-tag{font-size:13px!important}.admin-record-thumb-link{display:inline-block;width:fit-content}.admin-record-thumb{display:block;width:92px;height:58px;border-radius:8px;border:1px solid #e5e5e5;object-fit:cover;background:#f0f0f0}.record-delete-list .admin-record-item{align-items:flex-start}.record-delete-list .admin-record-main{flex:1}.admin-record-delete-btn{margin-left:auto;white-space:nowrap}.admin-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000085;display:grid;place-items:center;padding:20px}.admin-modal-content{width:min(92vw,720px);max-height:84vh;overflow:auto;border:1px solid #e5e5e5;border-radius:14px;background:#fff;padding:14px}@media (max-width: 980px){.admin-grid,.admin-row.two,.admin-row.three,.admin-row.four{grid-template-columns:1fr}.admin-record-item{flex-direction:column;align-items:flex-start}.record-delete-list .admin-record-item{flex-direction:row;align-items:flex-start}.admin-tabs{grid-template-columns:1fr}}@media (hover: none) and (pointer: coarse){.admin-input,.admin-input-prominent,.admin-root input[type=date],.admin-root input[type=number],.admin-root input[type=text],.admin-root input[type=password],.admin-root textarea,.admin-root select{font-size:16px!important}}body.presentation-mode{margin:0;overflow:hidden;background:#000;color:#fff}.presentation-root{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;--camera-filter: none;--camera-svg-filter: none;overflow:hidden}.presentation-stage{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:min(100vw,calc(100vh * 16 / 9));height:min(100vh,56.25vw);background:#000;overflow:hidden;container-type:inline-size}.presentation-camera{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;background:#000;filter:var(--camera-filter);-webkit-filter:var(--camera-filter);transition:filter .18s ease;transform:translateZ(0);backface-visibility:hidden}.presentation-root.effect-glitch .presentation-camera,.presentation-root.effect-warp .presentation-camera{filter:var(--camera-filter) var(--camera-svg-filter);-webkit-filter:var(--camera-filter) var(--camera-svg-filter)}.presentation-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#00000047,#00000029 40%,#0000003d);pointer-events:none}.presentation-fx-defs{position:absolute;width:0;height:0;opacity:0}.presentation-fx-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;opacity:0}.fx-scanlines{background-image:repeating-linear-gradient(to bottom,#ffffff0f,#ffffff0f,#0000 2px,#0000 4px);background-size:100% 4px}.fx-noise{background-image:radial-gradient(circle at 10% 20%,rgba(255,255,255,.06) 0 1px,transparent 1px),radial-gradient(circle at 80% 60%,rgba(255,255,255,.06) 0 1px,transparent 1px),radial-gradient(circle at 30% 90%,rgba(255,255,255,.05) 0 1px,transparent 1px);background-size:180px 120px,150px 140px,160px 110px}.presentation-overlay{position:absolute;z-index:3;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.82),0 0 2px rgba(0,0,0,.85)}.presentation-center-photo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;width:clamp(320px,44cqi,740px);max-height:min(68vh,900px);border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.32);background:#00000073;box-shadow:0 18px 44px #0000008c}.presentation-center-photo img{width:100%;height:100%;max-height:min(68vh,900px);object-fit:contain;display:block;background:#111}.presentation-overlay.left-top{left:max(14px,env(safe-area-inset-left));top:max(14px,env(safe-area-inset-top));transform:translateY(-40px);display:grid;justify-items:center;gap:6px}.presentation-overlay.left-top img{width:clamp(114px,12.8cqi,228px);height:auto}.presentation-character-btn{border:0;background:transparent;padding:0;margin:0;cursor:pointer}.left-main{margin:-40px 0 0;font-size:clamp(14px,1.6cqi,30px);font-weight:900;color:#ffb22e;text-align:center;line-height:1.08}.left-date{margin:-2px 0 0;font-size:clamp(10px,1.04cqi,18px);font-weight:800;text-align:center}.presentation-overlay.top-strip{left:clamp(146px,17cqi,310px);right:min(37ch,calc(100cqi - 28px));top:max(18px,env(safe-area-inset-top));z-index:5}.presentation-thumb-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;align-items:start}.presentation-thumb{width:100%;aspect-ratio:1 / 1;border-radius:999px;object-fit:cover;border:1px solid rgba(255,255,255,.34);box-shadow:0 8px 20px #00000047;background:#ffffff14}.presentation-overlay.right-top{right:max(14px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));z-index:6;max-width:min(36ch,calc(100cqi - 28px))}.presentation-metrics{--summary-date-col: 4.6ch;--summary-amount-col: 10ch;--summary-gap: 1.2em;width:100%;display:grid;gap:8px;min-width:0}.presentation-summary-block{width:100%;display:grid;gap:8px}.balance-main{margin:0;font-size:clamp(26px,4.1cqi,68px);line-height:1;font-weight:900;letter-spacing:-.02em;width:100%;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.presentation-summary-list,.presentation-detail-list{display:grid;gap:6px;width:100%;min-width:0}.today-item{margin:0;font-size:clamp(15px,2.25cqi,34px);line-height:1.12;font-weight:800;text-align:right}.today-item.day-summary{display:grid;grid-template-columns:var(--summary-date-col) minmax(0,1fr);align-items:baseline;gap:var(--summary-gap);font-size:clamp(17px,2.45cqi,38px);width:100%;min-width:0}.day-summary-date{font-size:.72em;opacity:.78;justify-self:start;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.day-summary-value{font-size:1em;justify-self:end;text-align:right;width:var(--summary-amount-col);white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.today-item.detail-item{display:grid;grid-template-columns:minmax(0,1fr) var(--summary-amount-col);align-items:baseline;gap:1.2em;font-size:clamp(12px,1.52cqi,24px);width:100%;min-width:0}.detail-content{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5em;min-width:0;overflow:hidden}.detail-meta{display:inline-flex;align-items:center;gap:.34em;min-width:0;white-space:nowrap;flex:0 0 auto}.detail-tag-pill{display:inline-flex;align-items:center;min-height:1.45em;padding:0 .48em;border-radius:999px;background:#ffffff2e;border:1px solid rgba(255,255,255,.24);font-size:.62em;font-weight:800;line-height:1}.detail-text{display:block;font-size:.84em;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-amount{font-size:.92em;width:var(--summary-amount-col);justify-self:end;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.balance-divider{margin:2px 0;font-size:clamp(17px,2.5cqi,39px);font-weight:900;line-height:1}.presentation-status{position:absolute;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:4;min-width:min(92vw,420px);border:1px solid rgba(255,255,255,.2);border-radius:14px;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:12px 14px;display:grid;gap:8px}.presentation-status p{margin:0;font-size:14px;font-weight:600}.presentation-overlay.left-bottom{left:max(8px,env(safe-area-inset-left));bottom:max(18px,calc(env(safe-area-inset-bottom) + 18px));z-index:6;width:clamp(260px,29cqi,520px)}.presentation-tag-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;justify-items:start}.presentation-tag-card{display:grid;gap:8px;padding:10px 12px;border-radius:18px;background:#0000006b;border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.presentation-tag-title{margin:0;font-size:clamp(12px,1.1cqi,17px);font-weight:800;color:#fff3d6}.presentation-tag-chart{width:clamp(84px,10cqi,150px);aspect-ratio:1 / 1;justify-self:center}.presentation-tag-legend{display:grid;gap:4px}.presentation-tag-legend-item{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;font-size:clamp(10px,.82cqi,13px)}.presentation-tag-chip{width:8px;height:8px;border-radius:999px;box-shadow:0 0 0 1px #ffffff1f}.presentation-tag-legend-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.presentation-tag-legend-value{color:#ffffffd6}.presentation-tag-empty{margin:0;font-size:12px;opacity:.76}.presentation-manip-grid{display:grid;grid-template-columns:repeat(2,58px);gap:6px}.presentation-manip-card{width:58px;border:1px solid rgba(255,255,255,.35);border-radius:10px;background:#00000080;color:#fff;cursor:pointer;padding:4px;display:grid;gap:3px;justify-items:stretch}.presentation-manip-card.active{border-color:#ffb22ef2;background:#ffb22e38}.presentation-manip-preview{width:100%;height:auto;aspect-ratio:1 / 1;border-radius:6px;border:0;object-fit:cover;display:block;transform:scaleX(-1);background:#0e0e0e;clip-path:inset(0 round 6px)}.presentation-manip-label{font-size:10px;font-weight:800;line-height:1;text-align:center}.presentation-settings-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;background:#00000080;display:grid;place-items:center;padding:14px}.presentation-settings-modal-content{position:relative;width:min(92vw,520px)}.presentation-settings-close{position:absolute;right:8px;top:8px;z-index:1;width:30px;height:30px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:#00000073;color:#fff;font-size:20px;line-height:1;cursor:pointer}.presentation-settings-panel{border:1px solid rgba(255,255,255,.2);border-radius:12px;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:26px 10px 10px;display:grid;gap:8px;min-width:168px}.presentation-settings-panel label{display:grid;gap:5px;font-size:12px;font-weight:700}.presentation-date-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.presentation-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.presentation-date-field{min-width:0}.presentation-today-btn{min-height:36px;white-space:nowrap}.presentation-settings-panel input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.45);border-radius:8px;background:#ffffff14;color:#fff;padding:6px 8px;font-size:12px}.presentation-effect-picker{display:grid;gap:6px}.presentation-effect-group{display:grid;gap:4px}.presentation-effect-title{margin:0;font-size:12px;font-weight:700}.presentation-effect-subtitle{margin:0;font-size:11px;font-weight:700;opacity:.9}.presentation-effect-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.presentation-effect-option{border:1px solid rgba(255,255,255,.28);border-radius:8px;background:#ffffff14;color:#fff;padding:5px 6px;display:grid;justify-items:center;gap:4px;cursor:pointer}.presentation-effect-option.active{border-color:#ffb22ee6;background:#ffb22e2e}.presentation-effect-preview-video{width:100%;height:40px;border-radius:6px;border:1px solid rgba(255,255,255,.3);background:#0e0e0e;object-fit:cover;display:block;transform:scaleX(-1)}.presentation-effect-preview-video.effect-vivid{filter:saturate(1.32) contrast(1.12) brightness(1.03)}.presentation-effect-preview-video.effect-mono{filter:grayscale(1) contrast(1.18) brightness(1.02)}.presentation-effect-preview-video.effect-retro{filter:sepia(.34) saturate(1.2) contrast(1.06) hue-rotate(-6deg)}.presentation-effect-preview-video.effect-party{filter:saturate(1.4) contrast(1.2) brightness(1.04) hue-rotate(10deg)}.presentation-effect-preview-video.effect-cinema{filter:contrast(1.16) saturate(.9) brightness(.92)}.presentation-effect-preview-video.effect-warm{filter:saturate(1.16) sepia(.22) hue-rotate(-6deg) brightness(1.03)}.presentation-effect-preview-video.effect-cool{filter:saturate(1.08) hue-rotate(12deg) contrast(1.08) brightness(.99)}.presentation-effect-preview-video.effect-dream{filter:saturate(1.24) brightness(1.1) contrast(.94) blur(.4px)}.presentation-effect-preview-video.effect-vhs{filter:contrast(1.08) saturate(1.1) brightness(.98)}.presentation-effect-preview-video.effect-glitch{filter:contrast(1.15) saturate(1.25)}.presentation-effect-preview-video.effect-warp{filter:saturate(1.15) contrast(1.08)}.presentation-manip-preview.effect-glitch{filter:contrast(1.15) saturate(1.25)}.presentation-manip-preview.effect-warp{filter:saturate(1.15) contrast(1.08)}.presentation-effect-label{font-size:11px;font-weight:700;line-height:1}.presentation-btn{border:1px solid rgba(255,255,255,.4);border-radius:10px;background:#ffffff24;color:#fff;padding:8px 10px;font-size:13px;font-weight:700;cursor:pointer}.presentation-btn.ghost{background:#0000004d}.presentation-recording-controls{display:grid;gap:6px}.presentation-recording-error{margin:0;font-size:11px;color:#ff9a9a;line-height:1.3}.presentation-root.effect-normal{--camera-filter: none;--camera-svg-filter: none}.presentation-root.effect-vivid{--camera-filter: saturate(1.32) contrast(1.12) brightness(1.03);--camera-svg-filter: none}.presentation-root.effect-mono{--camera-filter: grayscale(1) contrast(1.18) brightness(1.02);--camera-svg-filter: none}.presentation-root.effect-retro{--camera-filter: sepia(.34) saturate(1.2) contrast(1.06) hue-rotate(-6deg);--camera-svg-filter: none}.presentation-root.effect-party{--camera-filter: saturate(1.4) contrast(1.2) brightness(1.04);--camera-svg-filter: none}.presentation-root.effect-cinema{--camera-filter: contrast(1.16) saturate(.9) brightness(.92);--camera-svg-filter: none}.presentation-root.effect-warm{--camera-filter: saturate(1.16) sepia(.22) hue-rotate(-6deg) brightness(1.03);--camera-svg-filter: none}.presentation-root.effect-cool{--camera-filter: saturate(1.08) hue-rotate(12deg) contrast(1.08) brightness(.99);--camera-svg-filter: none}.presentation-root.effect-dream{--camera-filter: saturate(1.24) brightness(1.1) contrast(.94) blur(.6px);--camera-svg-filter: none}.presentation-root.effect-vhs{--camera-filter: contrast(1.08) saturate(1.1) brightness(.98);--camera-svg-filter: none}.presentation-root.effect-glitch{--camera-filter: contrast(1.15) saturate(1.25);--camera-svg-filter: url(#presentation-glitch-filter)}.presentation-root.effect-warp{--camera-filter: saturate(1.15) contrast(1.08);--camera-svg-filter: url(#presentation-warp-filter)}.presentation-root.effect-party .presentation-camera{animation:presentation-party-hue 2.8s linear infinite}.presentation-root.effect-glitch .presentation-camera{animation:presentation-glitch-jump .26s steps(2) infinite}.presentation-root.effect-vhs .fx-scanlines{opacity:.26}.presentation-root.effect-vhs .fx-noise{opacity:.11;animation:presentation-noise-drift 1.4s steps(4) infinite}.presentation-root.effect-cinema .presentation-shade{background:linear-gradient(to bottom,#00000094,#0000000a 34%,#0000009e)}.presentation-root.effect-dream .fx-noise{opacity:.08}.presentation-root.effect-party .fx-noise{opacity:.1;animation:presentation-noise-drift .9s steps(3) infinite}.presentation-root.effect-glitch .fx-noise{opacity:.16;animation:presentation-noise-drift .5s steps(2) infinite}.presentation-root.effect-glitch .fx-scanlines{opacity:.1}.presentation-root.effect-warp .fx-noise{opacity:.08}@keyframes presentation-party-hue{0%{filter:saturate(1.25) contrast(1.1) hue-rotate(0deg)}25%{filter:saturate(1.45) contrast(1.16) hue-rotate(10deg)}50%{filter:saturate(1.3) contrast(1.18) hue-rotate(-12deg)}75%{filter:saturate(1.48) contrast(1.16) hue-rotate(8deg)}to{filter:saturate(1.25) contrast(1.1) hue-rotate(0deg)}}@keyframes presentation-noise-drift{0%{transform:translateZ(0)}25%{transform:translate3d(-2px,1px,0)}50%{transform:translate3d(1px,-1px,0)}75%{transform:translate3d(2px,1px,0)}to{transform:translateZ(0)}}@keyframes presentation-glitch-jump{0%{transform:translateZ(0) scaleX(1)}20%{transform:translate3d(-2px,1px,0) scaleX(1.002)}40%{transform:translate3d(3px,-1px,0) scaleX(.998)}60%{transform:translate3d(-1px,1px,0) scaleX(1.001)}to{transform:translateZ(0) scaleX(1)}}@media (max-width: 768px){.presentation-overlay.right-top{max-width:min(32ch,calc(100cqi - 28px))}.presentation-metrics{width:100%}.presentation-overlay.left-top img{width:min(36vw,168px);min-width:102px}.left-main{font-size:clamp(12px,3.2vw,18px)}.left-date{font-size:clamp(10px,2.5vw,14px)}.presentation-overlay.top-strip{left:min(38vw,154px);right:min(32ch,calc(100cqi - 28px));top:max(12px,env(safe-area-inset-top))}.presentation-thumb-grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}.today-item.day-summary{font-size:clamp(14px,3.2vw,20px)}.today-item.detail-item{font-size:clamp(10px,2.7vw,16px);grid-template-columns:minmax(0,1fr) var(--summary-amount-col)}.detail-content{gap:.38em}.detail-meta{gap:.28em}.detail-tag-pill{padding:0 .4em}.day-summary-value,.detail-amount{width:var(--summary-amount-col)}.balance-main{font-size:clamp(26px,6.8vw,41px)}.presentation-overlay.left-bottom{width:min(52vw,280px);left:max(8px,env(safe-area-inset-left));bottom:max(12px,calc(env(safe-area-inset-bottom) + 12px))}.presentation-tag-summary{grid-template-columns:1fr}.presentation-tag-chart{width:min(28vw,110px)}.presentation-effect-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.presentation-manip-grid{grid-template-columns:repeat(2,52px)}.presentation-manip-card{width:52px}}
