@font-face{font-family:Pindou Klee;src:url(/fonts/klee-one/klee-one-semibold-subset.woff2) format("woff2");font-style:normal;font-weight:600;font-display:swap;unicode-range:U+53D8,U+559C,U+56FE,U+5B9D,U+6210,U+628A,U+62FC,U+6B22,U+7247,U+7684,U+7EB8,U+8C46}:root{font-family:PingFang SC,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;color:#38251e;background:#fffaf6;font-synthesis:none;text-rendering:optimizeLegibility;--rose: #ef674b;--rose-dark: #a94f38;--rose-soft: #fff0e9;--rose-wash: #fffaf6;--ink: #38251e;--muted: #806d63;--line: #ead8cc;--line-strong: #d9b7a6;--panel: #fffdfa;--panel-muted: #f8eee8;--success: #477458;--danger: #a9473c;--display-font: "Pindou Klee", "Kaiti SC", "STKaiti", "KaiTi", "FangSong", serif;--shadow-soft: 0 12px 30px rgba(111, 72, 47, .08);--shadow-action: 0 8px 18px rgba(214, 91, 66, .2)}*{box-sizing:border-box}html{min-width:320px;background:var(--rose-wash)}body{margin:0;min-width:320px;min-height:100dvh;background:var(--rose-wash)}button,input,textarea,select{font:inherit}button,a,label{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}button:active,a:active{transform:scale(.985)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,iframe:focus-visible{outline:3px solid rgba(239,103,75,.28);outline-offset:3px}.app-shell{min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.app-shell--focus{height:100dvh;padding:0;overflow:hidden}.app-shell--focus .main-content{height:100%}.main-content{min-width:0}.site-header{width:min(680px,100%);height:64px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;margin:0 auto;padding:8px 16px;border-bottom:1px solid rgba(188,169,136,.5);background:#fbf6e8f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{min-height:44px;display:inline-flex;align-items:center;gap:10px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--rose-soft);color:var(--rose-dark)}.brand strong{color:var(--ink);font-family:var(--display-font);font-size:21px;font-weight:600;letter-spacing:.06em}.account-chip,.bean-pill{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--rose-dark);font-size:12px;font-weight:800}.account-chip strong{color:var(--ink);font-size:16px}.phone-page{width:min(680px,100%);margin:0 auto;padding:22px 16px 36px}.page-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-heading{margin-bottom:18px}.page-heading h1,.section-heading h2{margin:0;color:var(--ink);letter-spacing:-.02em}.page-heading h1{font-size:27px;line-height:1.2}.section-heading h2{font-size:18px}.page-heading p,.section-heading p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.bottom-nav{position:fixed;z-index:30;left:50%;bottom:0;width:min(680px,100%);min-height:70px;display:grid;grid-template-columns:repeat(3,1fr);padding:7px 8px max(7px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffdf7f5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform:translate(-50%)}.bottom-nav a{min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:12px;color:#6f6252;font-size:11px;font-weight:750}.bottom-nav a.active{background:var(--rose-soft);color:var(--rose-dark)}.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;border:1px solid transparent;border-radius:12px;color:var(--ink);font-weight:800;white-space:nowrap}.button:disabled{cursor:not-allowed;opacity:.55}.button--primary{border-color:var(--rose);background:var(--rose);color:#fff;box-shadow:var(--shadow-action)}.button--quiet{border-color:var(--line);background:var(--panel);color:var(--rose-dark)}.button--wide{width:100%}.home-page{min-height:calc(100dvh - 136px - env(safe-area-inset-bottom));display:grid;align-content:center;gap:22px;padding-top:clamp(28px,7vh,66px);padding-bottom:38px}.home-intro{text-align:center}.home-intro h1{margin:0;font-family:var(--display-font);font-size:clamp(33px,8vw,46px);font-weight:600;line-height:1.18;letter-spacing:-.02em}.home-intro p{max-width:450px;margin:12px auto 0;color:var(--muted);font-size:14px;line-height:1.7}.home-upload{min-height:300px;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;overflow:hidden;padding:34px 22px;border:2px dashed var(--rose-dark);border-radius:18px;background:var(--panel);box-shadow:0 18px 42px #5d42251f;text-align:center;cursor:pointer}.home-upload:before{content:"";position:absolute;z-index:-1;inset:14px;opacity:.62;pointer-events:none;background-image:linear-gradient(rgba(118,169,139,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(118,169,139,.11) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(circle at center,black 35%,transparent 80%);mask-image:radial-gradient(circle at center,black 35%,transparent 80%)}.home-upload input,.gateway-drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.home-upload:focus-within{outline:4px solid rgba(115,81,45,.32);outline-offset:4px;border-style:solid}.upload-pixel{width:78px;height:68px;display:grid;place-items:center;margin-bottom:5px;border:2px solid var(--rose-dark);border-radius:14px;background:var(--rose-soft);color:var(--rose-dark);box-shadow:0 10px 24px #73512d21}.home-upload strong{font-size:19px}.home-upload p{margin:0;color:var(--muted);font-size:13px}.cost-tag{margin-top:8px;padding:7px 10px;border-radius:9px;background:#fff4c6;color:var(--rose-dark);font-size:11px;font-weight:850}.home-note{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;align-items:center;gap:7px;padding:0 5px;color:var(--muted)}.home-note span{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--rose-soft);color:var(--rose-dark);font-size:10px;font-weight:900}.home-note p{margin:0;font-size:11px;font-weight:750}.soft-empty{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:28px;border-radius:16px;background:var(--panel);color:var(--muted);text-align:center}.soft-empty>svg{color:var(--rose-dark)}.soft-empty strong{color:var(--ink)}.soft-empty p{margin:0;font-size:12px}.focus-page,.studio-page{width:min(760px,100%);height:100dvh;margin:0 auto;overflow:hidden;background:var(--rose-wash)}.focus-header{height:58px;display:grid;grid-template-columns:92px 1fr 92px;align-items:center;padding:7px 11px;border-bottom:1px solid var(--line);background:#fffdf7f7}.focus-header>button{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--rose-dark)}.focus-header>strong{text-align:center;font-size:17px}.focus-header>div{display:flex;justify-content:flex-end}.header-save{min-height:40px;display:inline-flex;align-items:center;gap:5px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--rose-soft);color:var(--rose-dark);font-size:11px;font-weight:850}.studio-page{display:grid;grid-template-rows:58px minmax(0,1fr)}.studio-page iframe{width:100%;height:100%;border:0;background:var(--rose-wash)}.upload-gateway{display:grid;grid-template-rows:58px 1fr}.gateway-drop{width:calc(100% - 32px);max-width:520px;min-height:290px;align-self:center;justify-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border:2px dashed var(--rose-dark);border-radius:18px;background:var(--panel);color:var(--rose-dark);cursor:pointer}.gateway-drop strong{margin-top:5px;color:var(--ink);font-size:17px}.gateway-drop p{margin:0;color:var(--muted);font-size:12px}.crop-page{display:block;overflow-y:auto;padding-bottom:max(18px,env(safe-area-inset-bottom))}.crop-loading{min-height:calc(100dvh - 58px);display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted)}.crop-guidance{margin:0;padding:11px 16px;color:var(--muted);text-align:center;font-size:12px}.crop-stage{position:relative;width:min(calc(100vw - 32px),580px);aspect-ratio:1;margin:0 auto;overflow:hidden;border:2px solid var(--rose-dark);border-radius:14px;background:#241b12;box-shadow:var(--shadow-soft)}.crop-stage canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.crop-stage canvas:active{cursor:grabbing}.crop-handle{position:absolute;width:22px;height:22px;border:3px solid var(--rose-dark);border-radius:50%;background:#ffd860;box-shadow:0 4px 10px #0000002e;transform:translate(-50%,-50%);pointer-events:none}.crop-ratios{display:grid;grid-template-columns:repeat(6,minmax(54px,1fr));gap:7px;margin:12px 16px 0;overflow-x:auto;padding-bottom:2px}.crop-ratios button,.crop-tools button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--muted);font-size:12px;font-weight:800}.crop-ratios button.is-active{border-color:var(--rose-dark);background:var(--rose-soft);color:var(--rose-dark)}.crop-zoom{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;margin:10px 16px 0;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--muted);font-size:12px;font-weight:800}.crop-zoom input{width:100%;accent-color:var(--rose-dark)}.crop-zoom output{min-width:42px;color:var(--rose-dark);text-align:right}.crop-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:9px 16px 0}.crop-tools button{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--rose-dark)}.crop-error{margin:9px 16px 0;padding:10px 12px;border:1px solid var(--danger);border-radius:10px;background:#fff0ec;color:#84352d;font-size:12px}.crop-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:10px 16px 0}.crop-actions label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.confirm-backdrop{position:fixed;z-index:90;inset:0;display:grid;align-items:end;justify-items:center;background:#3024157a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.ai-confirm{position:relative;width:min(600px,100%);padding:25px 22px max(22px,env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:var(--panel);box-shadow:0 -18px 55px #402c1933}.ai-confirm-close{position:absolute;top:15px;right:15px;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--muted)}.ai-confirm-example{width:54px;height:54px;display:grid;place-items:center;margin-bottom:14px;border-radius:15px;background:var(--rose-soft);color:var(--rose-dark)}.ai-confirm h2{margin:0 48px 17px 0;font-size:20px}.ai-confirm>p{margin:0 0 8px;color:var(--muted);font-size:12px;font-weight:800}.ai-confirm ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}.ai-confirm li{padding-left:24px;color:var(--ink);font-size:13px;line-height:1.5}.ai-confirm li:before{content:"✓";margin-left:-24px;margin-right:10px;color:var(--success);font-weight:900}.ai-confirm-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:9px;margin-top:24px}.ai-progress-page{display:grid;grid-template-rows:58px 1fr}.ai-progress-card{width:min(520px,calc(100% - 32px));align-self:center;justify-self:center;display:grid;justify-items:center;padding:34px 25px;border-radius:18px;background:var(--panel);text-align:center;box-shadow:var(--shadow-soft)}.ai-orbit,.progress-error{width:64px;height:64px;display:grid;place-items:center;border-radius:18px;color:var(--rose-dark);background:var(--rose-soft)}.progress-error{color:var(--danger);background:#fee8e3}.ai-progress-card h2{margin:18px 0 7px;font-size:19px}.ai-progress-card p{margin:0;color:var(--muted);font-size:12px}.ai-progress-card small{max-width:350px;margin-top:14px;color:var(--muted);font-size:11px;line-height:1.6}.ai-progress-card .button{width:min(300px,100%);margin-top:12px}.pipeline-steps{width:min(320px,100%);display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0 2px;padding:0;list-style:none}.pipeline-steps li{display:grid;justify-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:800}.pipeline-steps li>span{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--panel)}.pipeline-steps li.is-active,.pipeline-steps li.is-done{color:var(--rose-dark)}.pipeline-steps li.is-active>span{border-color:var(--rose-dark);background:var(--rose);color:var(--ink);box-shadow:0 0 0 4px #edc84f33}.pipeline-steps li.is-done>span{background:var(--rose-soft)}.progress-track{width:min(330px,100%);height:7px;margin-top:20px;overflow:hidden;border-radius:99px;background:#eee3ce}.progress-track span{width:42%;height:100%;display:block;border-radius:inherit;background:var(--rose-dark);animation:progress-scan 1.7s ease-in-out infinite alternate}@keyframes progress-scan{to{transform:translate(138%)}}.patterns-page{padding-top:28px}.round-add{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:var(--rose);color:var(--ink);box-shadow:var(--shadow-action)}.pattern-grid{display:grid;gap:14px}.pattern-card{min-width:0;display:grid;grid-template-columns:132px minmax(0,1fr) 82px;align-items:center;gap:15px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 12px 28px #563e230f}.pattern-card--pending{border-style:dashed}.pattern-preview{width:132px;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;border-radius:12px;background:var(--panel-muted);color:var(--rose-dark)}.pattern-preview img{width:100%;height:100%;object-fit:contain;background:var(--panel-muted)}.pattern-copy{min-width:0}.pattern-title{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.pattern-title strong{min-width:0;overflow:hidden;color:var(--ink);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.pattern-title span{flex:0 0 auto;padding:4px 7px;border-radius:8px;background:var(--rose-soft);color:var(--rose-dark);font-size:10px;font-weight:800}.pattern-copy p{margin:9px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.pattern-actions{display:grid;gap:8px}.pattern-action{min-height:44px;display:grid;place-items:center;padding:8px;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--rose-dark);font-size:12px;font-weight:850}.pattern-action--primary{border-color:#caa63a;background:var(--rose);color:var(--ink);box-shadow:0 7px 16px #73512d24}.pattern-load-more,.page-load-more{width:100%;margin:16px 0 4px}.profile-page{padding-top:28px}.profile-hero{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 12px 30px #563e230f}.profile-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}.profile-identity{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}.avatar{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--rose-soft);color:var(--rose-dark)}.avatar svg{width:29px;height:29px}.profile-identity h1{margin:0;overflow:hidden;font-size:19px;text-overflow:ellipsis;white-space:nowrap}.profile-identity p{margin:5px 0 0;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.profile-balance{min-width:104px;display:grid;justify-items:end;text-align:right}.profile-balance>span{color:var(--muted);font-size:11px;font-weight:800}.profile-balance>strong{color:var(--ink);font-size:31px;line-height:1.08}.profile-balance>p{margin:3px 0 0;color:var(--muted);font-size:10px}.profile-quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:17px;padding-top:13px;border-top:1px solid var(--line)}.profile-quick-action{min-width:0;min-height:46px;display:grid;place-items:center;padding:6px 4px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--rose-dark);font-size:12px;font-weight:850;text-align:center}.profile-quick-action:last-child{border-right:0}.profile-quick-action--disabled{gap:1px;color:var(--muted);cursor:not-allowed}.profile-quick-action--disabled small{font-size:9px;font-weight:650}.profile-checkin{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:18px;border:1px solid #d7b852;border-radius:16px;background:#fff3bd;box-shadow:0 13px 28px #73512d1a}.checkin-copy>span{display:inline-flex;align-items:center;gap:6px;color:var(--rose-dark);font-size:12px;font-weight:850}.checkin-copy h2{margin:7px 0 4px;font-size:20px}.checkin-copy p{margin:0;color:var(--muted);font-size:11px}.profile-checkin>button{min-width:98px;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:9px 12px;border:1px solid var(--rose-dark);border-radius:11px;background:var(--rose-dark);color:#fffdf7;font-size:12px;font-weight:850}.profile-checkin>button:disabled{border-color:var(--line-strong);background:#fffdf7a8;color:var(--muted)}.profile-earn{margin-top:26px}.profile-earn .section-heading{margin-bottom:10px}.task-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.task-list>div{min-height:72px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid var(--line)}.task-list>div:last-child{border-bottom:0}.task-list>div>span:first-child{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--rose-soft);color:var(--rose-dark)}.task-list>div>span:first-child svg{width:19px}.task-list strong{font-size:14px}.task-list p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.task-status{color:var(--muted);font-size:10px;font-weight:750;white-space:nowrap}.profile-details{margin-top:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent}.profile-details summary{min-height:48px;display:flex;align-items:center;padding:12px 2px;color:var(--ink);font-size:13px;font-weight:800;cursor:pointer}.profile-details form{display:grid;gap:11px;padding:4px 2px 14px}.profile-details label,.login-page form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.profile-details input,.login-page input{width:100%;min-height:44px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font-size:14px}.profile-action-link{min-height:70px;display:grid;grid-template-columns:44px minmax(0,1fr) 24px;align-items:center;gap:12px;padding:11px 2px}.profile-action-link>span:nth-child(2){display:grid;gap:4px}.profile-action-link strong{font-size:14px}.profile-action-link small{color:var(--muted);font-size:11px}.profile-action-link>svg{width:20px;color:var(--muted)}.profile-action-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--rose-soft);color:var(--rose-dark)}.logout-link{width:100%;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:18px;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--muted);font-size:12px;font-weight:800}.admin-link{display:inline-flex;align-items:center;gap:6px;margin:16px 0 0 12px;color:var(--rose-dark);font-size:11px;font-weight:800}.profile-subpage{display:block;overflow-y:auto;padding-bottom:max(24px,env(safe-area-inset-bottom))}.profile-subpage .focus-header,.save-page .focus-header{position:sticky;top:0;z-index:10}.profile-subpage>.soft-empty,.save-page-state{width:calc(100% - 32px);margin:20px auto}.ledger-list{padding:0 13px 13px}.ledger-list>div{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.ledger-list strong{color:var(--danger)}.ledger-list strong.positive{color:var(--success)}.ledger-list time{grid-column:1 / -1;color:var(--muted);font-size:10px}.ledger-list--page{width:calc(100% - 32px);margin:18px auto 0;padding:2px 14px;border-radius:14px;background:var(--panel)}.ledger-list--page>div{min-height:68px;align-content:center;padding:12px 2px;font-size:14px}.ledger-list--page time{font-size:11px}.profile-subpage .page-load-more{width:calc(100% - 32px);margin:16px}.feedback-form-page{width:calc(100% - 32px);max-width:560px;display:grid;gap:18px;margin:18px auto;padding:20px;border-radius:16px;background:var(--panel);box-shadow:var(--shadow-soft)}.feedback-page-copy{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start}.feedback-page-copy>svg{width:44px;height:44px;padding:10px;border-radius:12px;background:var(--rose-soft);color:var(--rose-dark)}.feedback-page-copy h1{margin:0;font-size:19px}.feedback-page-copy p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.feedback-receipt{display:flex;align-items:center;gap:10px;padding:12px;border-radius:10px;background:#edf6ef;color:#2f6540}.feedback-receipt>span{display:grid;gap:3px}.feedback-receipt small{font-size:11px}.feedback-form-page>label{display:grid;gap:7px;color:var(--ink);font-size:13px;font-weight:850}.feedback-form-page textarea,.feedback-admin-detail textarea{width:100%;min-height:150px;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:14px;line-height:1.6}.feedback-form-page>small{color:var(--muted);font-size:11px;line-height:1.6}.feedback-images{display:flex;flex-wrap:wrap;gap:8px}.feedback-images>span,.feedback-add{width:84px;height:84px;position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--panel-muted)}.feedback-images img{width:100%;height:100%;object-fit:cover}.feedback-images>span button{position:absolute;top:3px;right:3px;width:44px;height:44px;display:grid;justify-items:end;align-items:start;padding:6px;border:0;background:transparent;color:#fff}.feedback-images>span button svg{padding:3px;border-radius:50%;background:#39242ed1;box-sizing:content-box}.feedback-add{gap:3px;align-content:center;color:var(--rose-dark)!important;cursor:pointer}.feedback-add span{font-size:11px}.feedback-add input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.login-page{padding-top:54px;text-align:center}.login-mark{width:68px;height:68px;display:grid;place-items:center;margin:0 auto;border-radius:18px;background:var(--rose-soft);color:var(--rose-dark);box-shadow:var(--shadow-soft)}.login-page h1{margin:18px 0 5px;font-size:25px}.login-page>p{margin:0;color:var(--muted);font-size:12px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:28px;padding:4px;border-radius:13px;background:#eee5d5}.segmented button{min-height:42px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:12px;font-weight:800}.segmented button.is-active{background:var(--panel);color:var(--rose-dark);box-shadow:0 5px 14px #563e2314}.login-page form{display:grid;gap:12px;margin-top:16px;text-align:left}.save-page{display:block;overflow-y:auto;padding-bottom:max(16px,env(safe-area-inset-bottom))}.version-picker{margin:14px 16px 0;padding:14px;border-radius:14px;background:var(--panel)}.version-picker>div:first-child{display:grid;gap:3px;margin-bottom:10px}.version-picker>div:first-child strong{font-size:14px}.version-picker>div:first-child span{color:var(--muted);font-size:11px}.version-options{display:grid;gap:8px}.version-options button{min-height:72px;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:10px;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);text-align:left}.version-options button.is-active{border-color:var(--rose-dark);background:var(--rose-soft)}.version-options img,.version-options button>svg{width:58px;height:58px;object-fit:contain;border-radius:8px;background:var(--panel-muted)}.version-options button>span{min-width:0;display:grid;gap:5px}.version-options strong{font-size:13px}.version-options small{color:var(--muted);font-size:11px;line-height:1.45}.save-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px}.save-tabs button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--muted);font-size:12px;font-weight:800}.save-tabs button.is-active{border-color:var(--rose-dark);background:var(--rose-soft);color:var(--rose-dark)}.save-preview{min-height:clamp(320px,55vh,560px);display:grid;place-items:center;margin:0 16px;padding:14px;overflow:hidden;border-radius:14px;background:var(--panel)}.save-preview img{width:100%;height:100%;max-height:530px;border-radius:8px;object-fit:contain;transition:transform .2s ease}.save-preview img.is-mirror{transform:scaleX(-1)}.save-preview-state{max-width:290px;display:grid;justify-items:center;gap:10px;color:var(--muted);text-align:center}.save-preview-state strong{color:var(--ink);font-size:14px}.save-preview-state span:not(.spinner){font-size:12px;line-height:1.5}.save-preview-state button{min-height:44px;display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--rose-dark);font-weight:800}.save-preview-state--error{padding:15px;border-radius:14px;background:#fff0ec}.save-mirror-choice{min-height:48px;display:flex;align-items:center;gap:9px;margin:10px 16px 0;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font-size:13px;font-weight:800}.save-mirror-choice input{width:22px;height:22px;accent-color:var(--rose-dark)}.save-download{width:calc(100% - 32px);min-height:48px;margin:12px 16px 8px}.save-tile-download{display:grid;gap:6px;margin:0 16px 12px}.save-tile-download button{min-height:48px}.save-tile-download p{margin:0;color:var(--muted);font-size:11px;line-height:1.5;text-align:center}.save-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:0 16px 16px}.save-secondary a{min-height:44px;display:grid;place-items:center;padding:9px 5px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--rose-dark);text-align:center;font-size:12px;font-weight:800}.ticket-result{display:grid;gap:8px;margin-top:16px;padding:13px;border-radius:12px;background:var(--rose-soft)}.ticket-result code,.ticket-result a{overflow-wrap:anywhere;font-size:10px}.admin-tools{margin-bottom:14px}.admin-tools a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--rose-dark)}.admin-tools span{display:grid;gap:3px}.admin-tools strong{color:var(--ink);font-size:12px}.admin-tools small{color:var(--muted);font-size:10px}.back-link{min-height:44px;display:inline-flex;align-items:center;gap:4px;margin-bottom:8px;color:var(--rose-dark);font-size:11px;font-weight:800}.feedback-filters{display:grid;grid-template-columns:130px 1fr auto;gap:8px;margin-bottom:12px}.feedback-filters select,.feedback-filters input,.feedback-admin-detail select{min-width:0;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink)}.feedback-admin-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:12px;align-items:start}.feedback-admin-list{display:grid;gap:7px}.feedback-admin-list>button{width:100%;min-height:60px;display:grid;gap:6px;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);text-align:left}.feedback-admin-list>button.is-active{border-color:var(--rose-dark);background:var(--rose-soft)}.feedback-admin-list>button>span{display:flex;justify-content:space-between;gap:8px}.feedback-admin-list strong{font-size:11px}.feedback-admin-list time{color:var(--muted);font-size:9px}.feedback-admin-list p{margin:0;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.feedback-admin-list small{color:var(--muted);font-size:9px}.feedback-admin-list b,.feedback-admin-detail header>b{color:var(--rose-dark)}.feedback-admin-list b[data-status=resolved],.feedback-admin-detail b[data-status=resolved]{color:var(--success)}.feedback-admin-list b[data-status=closed],.feedback-admin-detail b[data-status=closed]{color:var(--muted)}.feedback-admin-detail{min-height:280px;padding:14px;border-radius:14px;background:var(--panel)}.feedback-admin-detail>header{display:flex;align-items:start;justify-content:space-between;gap:12px}.feedback-admin-detail>header span{display:grid;gap:3px}.feedback-admin-detail>header strong{font-size:13px}.feedback-admin-detail>header small{color:var(--muted);font-size:9px;overflow-wrap:anywhere}.feedback-original{margin:14px 0;white-space:pre-wrap;font-size:11px;line-height:1.65}.feedback-admin-images{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.feedback-admin-images a{display:grid;gap:4px;color:var(--muted);font-size:9px}.feedback-admin-images img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--panel-muted)}.feedback-context{display:grid;gap:6px;margin:14px 0}.feedback-context div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:10px}.feedback-context dt{color:var(--muted);font-weight:800}.feedback-context dd{margin:0;overflow-wrap:anywhere}.feedback-history{display:grid;gap:6px;margin:14px 0;padding:10px;border-radius:11px;background:var(--panel-muted)}.feedback-history>strong{font-size:10px}.feedback-history p{display:grid;gap:2px;margin:0;font-size:9px}.feedback-history time{color:var(--muted);font-size:8px}.feedback-admin-detail form{display:grid;gap:10px}.feedback-admin-detail form label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:800}.feedback-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;color:var(--muted);font-size:10px}.feedback-pagination button{min-height:44px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink)}.live-notice{position:fixed;z-index:100;left:50%;bottom:84px;max-width:min(520px,calc(100% - 24px));padding:11px 14px;border-radius:12px;background:var(--ink);color:#fff;box-shadow:0 12px 30px #4d341f38;transform:translate(-50%);font-size:12px;font-weight:750}.app-shell--focus .live-notice{bottom:18px}.boot-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--rose-dark);background:var(--rose-wash)}.spinner{width:17px;height:17px;display:inline-block;border:2px solid rgba(115,81,45,.18);border-top-color:var(--rose-dark);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:760px){.site-header,.bottom-nav{width:min(760px,100%);padding-inline:28px}.phone-page{width:min(760px,100%);padding-inline:64px}.home-upload{min-height:320px}.pattern-preview{width:148px}.pattern-card{grid-template-columns:148px minmax(0,1fr) 88px}.admin-feedback-page{width:min(1040px,100%);padding-inline:28px}}@media(max-width:520px){.pattern-card{grid-template-columns:112px minmax(0,1fr);grid-template-areas:"preview copy" "preview actions";align-items:start;gap:10px 13px}.pattern-preview{grid-area:preview;width:112px}.pattern-copy{grid-area:copy;align-self:center}.pattern-actions{grid-area:actions;grid-template-columns:repeat(2,minmax(0,1fr))}.pattern-card--pending .pattern-actions{grid-template-columns:1fr}.pattern-title{align-items:flex-start;flex-direction:column;gap:5px}.pattern-title strong{width:100%;font-size:14px}.profile-checkin{align-items:flex-start}.feedback-filters{grid-template-columns:1fr auto}.feedback-filters select{grid-column:1 / -1}.feedback-admin-layout{grid-template-columns:1fr}}@media(max-width:430px){.home-page{align-content:start;padding-top:30px}.home-upload{min-height:280px}.home-note{grid-template-columns:auto 1fr;width:max-content;margin:0 auto}.crop-ratios{grid-template-columns:repeat(6,60px)}.profile-summary{align-items:start}.profile-balance{min-width:92px}.profile-quick-action{font-size:11px}.task-list>div{grid-template-columns:38px minmax(0,1fr)}.task-status{grid-column:2;justify-self:start}.save-preview{min-height:330px}}@media(max-width:360px){.focus-header{grid-template-columns:76px 1fr 76px}.pattern-card{grid-template-columns:96px minmax(0,1fr)}.pattern-preview{width:96px}.profile-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-quick-action:nth-child(2){border-right:0}.profile-quick-action:nth-child(-n+2){border-bottom:1px solid var(--line)}.save-secondary{grid-template-columns:1fr}}.studio-page{--rose: #ef674b;--rose-dark: #a94f38;--rose-soft: #fff0e9;--rose-wash: #fffaf6;--ink: #38251e;--muted: #806d63;--line: #ead8cc;--line-strong: #d9b7a6;width:min(430px,100%);background:#fffaf6;color:var(--ink)}.studio-page .focus-header{border-bottom-color:#ead8cc;background:#fffdfafa}.studio-page .focus-header>button{color:#a94f38}.studio-page .header-save{border-color:#d9b7a6;background:#fff0e9;color:#8f4938}.studio-page iframe{background:#fffaf6}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-shell--reference{--rose: #ef674b;--rose-dark: #a94f38;--rose-soft: #fff0e9;--rose-wash: #fffaf6;--ink: #38251e;--muted: #806d63;--line: #ead8cc;--line-strong: #d9b7a6;--panel: #fffdfa;--panel-muted: #f8eee8;min-height:100dvh;background:#fffaf6;color:var(--ink)}.app-shell--reference .site-header,.app-shell--reference .bottom-nav,.app-shell--reference .phone-page{width:min(430px,100%)}.app-shell--reference .site-header{height:72px;padding:10px 14px;border-color:#ead8cc;background:#fffaf6f7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-shell--reference .brand{gap:9px}.app-shell--reference .brand-mark{width:38px;height:38px;overflow:hidden;border-radius:50%;background:#ef674b}.app-shell--reference .brand-mark img{width:100%;height:100%;object-fit:cover}.app-shell--reference .brand strong{font-family:var(--display-font);font-size:21px;letter-spacing:.08em}.app-shell--reference .account-chip{min-width:104px;min-height:38px;padding:6px 11px;border-color:#e4cfc2;border-radius:18px;background:#fffdfa;color:#8a5b46}.app-shell--reference .account-chip img{width:20px;height:20px;border-radius:50%}.app-shell--reference .account-chip strong{font-size:16px}.app-shell--reference .bottom-nav{min-height:74px;padding:8px 10px max(8px,env(safe-area-inset-bottom));border-color:#ead8cc;background:#fffdfafa;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-shell--reference .bottom-nav a{min-height:56px;gap:3px;margin:0 7px;border-radius:12px;color:#64554d;font-size:11px}.app-shell--reference .bottom-nav a.active{background:#ef674b;color:#fff;box-shadow:0 8px 18px #d65b4238}.app-shell--reference .phone-page{padding:12px 10px 28px}.app-shell--reference .home-page{min-height:auto;display:grid;align-content:start;gap:10px;padding-top:10px;padding-bottom:22px}.app-shell--reference .home-intro{min-height:154px;display:grid;grid-template-columns:minmax(0,1fr) 128px;align-items:center;gap:8px;padding:15px 11px 14px 18px;overflow:hidden;border:1px solid #ead8cc;border-radius:10px;background:#fffaf6;text-align:left;box-shadow:0 5px 16px #7349350d}.app-shell--reference .home-intro h1{margin:0;font-family:var(--display-font);font-size:clamp(21px,5.7vw,25px);font-weight:600;line-height:1.45;letter-spacing:.01em}.app-shell--reference .home-intro p{margin:10px 0 0;color:#7f6b60;font-size:11px;line-height:1.75}.app-shell--reference .home-intro img{width:128px;height:136px;object-fit:cover;border-radius:8px;mix-blend-mode:multiply}.app-shell--reference .home-upload{min-height:210px;gap:8px;padding:20px 16px;border:1.5px dashed #e3a18c;border-radius:11px;background:#fffdfa;box-shadow:0 5px 18px #7349350f}.app-shell--reference .home-upload:before{content:none}.app-shell--reference .upload-pixel{width:64px;height:60px;margin-bottom:4px;border:0;border-radius:13px;background:#ef674b;color:#fff;box-shadow:0 8px 18px #d65b4238}.app-shell--reference .home-upload strong{font-size:16px}.app-shell--reference .home-upload p{color:#6f625b;font-size:11px}.app-shell--reference .cost-tag{margin-top:3px;padding:6px 14px;border-radius:14px;background:#fff0e8;color:#8f4d39;font-size:11px}.app-shell--reference .home-flow{padding:12px;border:1px solid #ead8cc;border-radius:10px;background:#fffaf6}.app-shell--reference .home-flow h2{margin:0 0 9px;font-size:14px}.app-shell--reference .home-flow ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.app-shell--reference .home-flow li{min-height:50px;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;padding:5px 9px;border:1px solid #ecddd4;border-radius:8px;background:#fffdfa;box-shadow:0 3px 10px #7349350a}.app-shell--reference .home-flow li>b{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#ef674b;color:#fff;font-size:14px}.app-shell--reference .home-flow li>span{min-width:0;display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:8px}.app-shell--reference .home-flow li svg{grid-row:1 / 3;width:21px;color:#9a6a52}.app-shell--reference .home-flow li strong{font-size:12px}.app-shell--reference .home-flow li small{color:#6f5d54;font-size:9px;line-height:1.45}.app-shell--reference .patterns-page{padding-top:20px}.app-shell--reference .page-heading{align-items:flex-start;margin-bottom:16px;padding:0 5px}.app-shell--reference .page-heading h1{display:flex;align-items:center;gap:4px;font-family:var(--display-font);font-size:25px;font-weight:600}.app-shell--reference .page-heading h1 svg{width:18px;color:#ef9d85}.app-shell--reference .page-heading p{margin-top:7px;font-size:11px}.app-shell--reference .round-add{width:58px;height:auto;display:flex;flex-direction:column;gap:2px;padding:0;border-radius:0;background:transparent;color:#6a5449;box-shadow:none;font-size:10px}.app-shell--reference .round-add svg{width:46px;height:46px;padding:10px;border-radius:9px;background:#ef674b;color:#fff;box-shadow:0 7px 15px #d65b4230}.app-shell--reference .pattern-grid{gap:11px}.app-shell--reference .pattern-card{grid-template-columns:104px minmax(0,1fr);grid-template-areas:"preview copy" "preview actions";align-items:start;gap:8px 13px;padding:12px;border-color:#ead8cc;border-radius:14px;background:#fffdfa;box-shadow:0 7px 18px #67433114}.app-shell--reference .pattern-card--pending{border-style:solid}.app-shell--reference .pattern-preview{grid-area:preview;width:104px;min-height:132px;aspect-ratio:4 / 5;border-radius:8px;background:#f5ebe5}.app-shell--reference .pattern-copy{grid-area:copy;align-self:center}.app-shell--reference .pattern-title{align-items:flex-start;flex-direction:column;gap:7px}.app-shell--reference .pattern-title strong{width:100%;font-size:15px}.app-shell--reference .pattern-title span{padding:5px 8px;border-radius:10px;background:#fff0e8;color:#d45d42}.app-shell--reference .pattern-copy p{margin-top:10px;font-size:10px}.app-shell--reference .pattern-actions{grid-area:actions;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.app-shell--reference .pattern-card--pending .pattern-actions{grid-template-columns:1fr}.app-shell--reference .pattern-action{min-height:39px;border-color:#e27b62;border-radius:8px;color:#d2583d}.app-shell--reference .pattern-action--primary{border-color:#ef674b;background:#ef674b;color:#fff;box-shadow:none}.app-shell--reference .soft-empty{border:1px solid #ead8cc;background:#fffdfa}.app-shell--reference .button--primary{border-color:#ef674b;background:#ef674b;color:#fff;box-shadow:none}.app-shell--reference .profile-page{padding-top:10px}.app-shell--reference .profile-hero{padding:20px 13px 10px;border:0;border-radius:14px;background:#ed6549;color:#fff;box-shadow:0 9px 20px #c74d3433}.app-shell--reference .profile-summary{gap:8px}.app-shell--reference .profile-identity{gap:10px}.app-shell--reference .avatar{width:58px;height:58px;border:3px solid #f8d8ca;border-radius:50%;background:#fff9f2;color:#845c49}.app-shell--reference .avatar svg{width:34px;height:34px}.app-shell--reference .profile-identity h1{color:#fff;font-size:18px}.app-shell--reference .profile-identity p{max-width:145px;color:#ffe7dd;font-size:10px}.app-shell--reference .profile-balance{min-width:96px}.app-shell--reference .profile-balance>span,.app-shell--reference .profile-balance>p{color:#ffe7dd}.app-shell--reference .profile-balance>strong{max-width:132px;overflow:hidden;color:#fff;font-size:clamp(26px,8vw,36px);text-overflow:ellipsis}.app-shell--reference .profile-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr));margin:18px -3px -2px;padding:12px 0 4px;overflow:hidden;border:0;border-radius:10px;background:#dc583f}.app-shell--reference .profile-quick-action{min-height:57px;gap:5px;border-color:#ffece37a;color:#fff;font-size:12px}.app-shell--reference .profile-quick-action svg{width:21px;height:21px}.app-shell--reference .profile-checkin{min-height:118px;position:relative;align-items:flex-start;gap:8px;margin-top:11px;padding:15px 13px;overflow:hidden;border-color:#ecd8b1;border-radius:13px;background:#fff8e8;box-shadow:0 6px 16px #6f482f12}.app-shell--reference .checkin-copy{position:relative;z-index:2}.app-shell--reference .checkin-copy>span{color:#8d5f45}.app-shell--reference .checkin-copy h2{margin:7px 0 4px;font-family:var(--display-font);font-size:19px;font-weight:600}.app-shell--reference .checkin-copy p{color:#6f5c50}.app-shell--reference .profile-checkin>img{width:150px;height:58px;position:absolute;right:2px;bottom:0;object-fit:cover;mix-blend-mode:multiply}.app-shell--reference .profile-checkin>button{min-width:88px;min-height:38px;position:relative;z-index:2;margin-left:auto;padding:7px 10px;border-color:#dfcdbd;border-radius:17px;background:#fffdfa;color:#91654e;box-shadow:0 3px 9px #6f482f14}.app-shell--reference .profile-checkin>button:disabled{border-color:#dfcdbd;background:#fffdfa;color:#91654e;opacity:1}.app-shell--reference .profile-earn{margin-top:11px;padding:9px 12px 7px;border:1px solid #ead8cc;border-radius:12px;background:#fffdfa}.app-shell--reference .profile-earn .section-heading{margin-bottom:4px}.app-shell--reference .profile-earn .section-heading h2{font-family:var(--display-font);font-size:17px;font-weight:600}.app-shell--reference .task-list{border:0}.app-shell--reference .task-list>div{min-height:54px;grid-template-columns:38px minmax(0,1fr) 18px;gap:9px;padding:5px 1px;border-color:#f0e4dc}.app-shell--reference .task-list>div>span:first-child{background:#fff2d8;color:#a87346}.app-shell--reference .task-list strong{font-size:12px}.app-shell--reference .task-list p{margin-top:2px;overflow:hidden;font-size:9px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.app-shell--reference .task-list small{color:#715f56;font-size:8px}.app-shell--reference .task-list>div>svg{width:16px;color:#a99b92}.app-shell--reference .profile-action-link{min-height:58px;margin-top:9px;padding:7px 12px;border:1px solid #ead8cc;border-radius:11px;background:#fffdfa}.app-shell--reference .profile-action-icon{width:34px;height:34px;border-radius:9px;background:#fff2d8;color:#9d6d47}.app-shell--reference .profile-action-link strong{font-size:12px}.app-shell--reference .profile-action-link small{font-size:9px}.app-shell--reference .logout-link{min-height:40px;margin-top:9px;border-color:#ead8cc;border-radius:10px;background:#fffdfa;color:#8f6a57}@media(max-width:380px){.app-shell--reference .bottom-nav a{margin-inline:3px}.app-shell--reference .home-intro{grid-template-columns:minmax(0,1fr) 112px;padding-left:14px}.app-shell--reference .home-intro img{width:112px;height:126px}.app-shell--reference .home-intro h1{font-size:20px}.app-shell--reference .pattern-card{grid-template-columns:92px minmax(0,1fr);gap:8px 10px}.app-shell--reference .pattern-preview{width:92px;min-height:118px}.app-shell--reference .profile-identity p{max-width:112px}.app-shell--reference .profile-balance{min-width:78px}.app-shell--reference .profile-checkin>img{width:128px}}.app-shell--subpage,.app-shell--admin{--rose: #ef674b;--rose-dark: #a94f38;--rose-soft: #fff0e9;--rose-wash: #fffaf6;--ink: #38251e;--muted: #806d63;--line: #ead8cc;--line-strong: #d9b7a6;--panel: #fffdfa;--panel-muted: #f8eee8;background:#fffaf6;color:var(--ink)}.app-shell--subpage .focus-page{width:min(430px,100%)}.app-shell--subpage .focus-header,.app-shell--admin .focus-header{height:60px;grid-template-columns:64px minmax(0,1fr) 64px;padding:8px 10px;border-color:#ead8cc;background:#fffdfafa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-shell--subpage .focus-header>button,.app-shell--admin .focus-header>button{color:#a94f38}.app-shell--subpage .focus-header>strong,.app-shell--admin .focus-header>strong{overflow:hidden;color:#38251e;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.app-shell--subpage .button--primary,.app-shell--admin .button--primary{border-color:#ef674b;background:#ef674b;color:#fff;box-shadow:0 7px 16px #d65b422e}.app-shell--subpage .button--quiet,.app-shell--admin .button--quiet{border-color:#d9b7a6;background:#fffdfa;color:#a94f38;box-shadow:none}.app-shell--subpage input,.app-shell--subpage textarea,.app-shell--subpage select,.app-shell--admin input,.app-shell--admin textarea,.app-shell--admin select{border-color:#d9b7a6;background:#fffdfa;color:#38251e}.app-shell--subpage input::placeholder,.app-shell--subpage textarea::placeholder,.app-shell--admin input::placeholder,.app-shell--admin textarea::placeholder{color:#9b887e}.app-shell--subpage .upload-gateway,.app-shell--subpage .ai-progress-page{grid-template-rows:60px minmax(0,1fr)}.app-shell--subpage .gateway-drop{width:calc(100% - 32px);min-height:288px;border:1.5px dashed #e3a18c;border-radius:14px;background:#fffdfa;color:#d35f45;box-shadow:0 6px 18px #7349350f}.app-shell--subpage .gateway-drop strong{color:#38251e}.app-shell--subpage .gateway-drop p{color:#806d63}.app-shell--subpage .gateway-drop:focus-within{outline:3px solid rgba(239,103,75,.24);outline-offset:3px;border-style:solid}.app-shell--subpage .crop-guidance{padding:12px 16px;color:#806d63;line-height:1.6}.app-shell--subpage .crop-stage{border-color:#b97660;border-radius:12px;box-shadow:0 8px 22px #5837271a}.app-shell--subpage .crop-handle{border-color:#a94f38;background:#ef674b}.app-shell--subpage .crop-ratios button,.app-shell--subpage .crop-tools button,.app-shell--subpage .crop-zoom{border-color:#d9b7a6;background:#fffdfa;color:#806d63}.app-shell--subpage .crop-ratios button.is-active{border-color:#d7654a;background:#fff0e9;color:#a94f38}.app-shell--subpage .crop-zoom input{accent-color:#ef674b}.app-shell--subpage .crop-zoom output,.app-shell--subpage .crop-tools button{color:#a94f38}.app-shell--subpage .crop-error{border-color:#d76d5a;background:#fff0ec;color:#8b3d32}.app-shell--subpage .ai-confirm{width:min(430px,100%);background:#fffdfa;box-shadow:0 -16px 44px #452a1f2e}.app-shell--subpage .ai-confirm-close{border-color:#ead8cc;background:#fffdfa}.app-shell--subpage .ai-confirm-example{background:#fff0e9;color:#d35f45}.app-shell--subpage .ai-progress-card{border:1px solid #ead8cc;background:#fffdfa;box-shadow:0 8px 24px #67433114}.app-shell--subpage .ai-orbit{background:#fff0e9;color:#d35f45}.app-shell--subpage .pipeline-steps li.is-active>span{border-color:#ef674b;background:#ef674b;color:#fff;box-shadow:0 0 0 4px #ef674b1f}.app-shell--subpage .pipeline-steps li.is-done>span{border-color:#e7b8aa;background:#fff0e9;color:#a94f38}.app-shell--subpage .progress-track{background:#f3e5de}.app-shell--subpage .progress-track span{background:#ef674b}.app-shell--subpage .profile-subpage,.app-shell--subpage .save-page{background:#fffaf6}.app-shell--subpage .ledger-list--page,.app-shell--subpage .feedback-form-page,.app-shell--subpage .version-picker,.app-shell--subpage .save-preview,.app-shell--subpage .save-mirror-choice,.app-shell--subpage .soft-empty{border:1px solid #ead8cc;background:#fffdfa;box-shadow:0 5px 16px #7349350d}.app-shell--subpage .ledger-list--page{margin-top:14px;padding-inline:14px}.app-shell--subpage .ledger-list--page>div{border-color:#f0e4dc}.app-shell--subpage .feedback-form-page{gap:16px;margin-top:14px;padding:18px;border-radius:14px}.app-shell--subpage .feedback-page-copy>svg{background:#fff0e9;color:#d35f45}.app-shell--subpage .feedback-form-page textarea{border-color:#d9b7a6;background:#fffdfa}.app-shell--subpage .feedback-images>span,.app-shell--subpage .feedback-add{border-color:#d9b7a6;background:#fff8f3}.app-shell--subpage .feedback-add{color:#a94f38!important}.app-shell--subpage .feedback-receipt{border:1px solid #cfe3d4}.login-focus-page{display:grid;grid-template-rows:60px minmax(0,1fr)}.login-focus-page .login-page{width:calc(100% - 32px);align-self:start;justify-self:center;margin-top:clamp(28px,8vh,72px);padding:30px 20px 22px;border:1px solid #ead8cc;border-radius:16px;background:#fffdfa;box-shadow:0 8px 24px #67433114;text-align:center}.login-focus-page .login-mark{background:#fff0e9;color:#d35f45;box-shadow:none}.login-focus-page .login-page h1{margin-top:16px;color:#38251e;font-size:23px}.login-focus-page .segmented{margin-top:24px;border:1px solid #ead8cc;background:#f8eee8}.login-focus-page .segmented button{color:#806d63}.login-focus-page .segmented button.is-active{background:#fffdfa;color:#d35f45;box-shadow:0 3px 9px #67433114}.login-focus-page .login-page form label{color:#6f5d54}.login-focus-page .login-page input{border-color:#d9b7a6;background:#fffdfa}.app-shell--subpage .version-picker{margin-top:12px}.app-shell--subpage .version-options button,.app-shell--subpage .save-tabs button,.app-shell--subpage .save-preview-state button,.app-shell--subpage .save-secondary a{border-color:#d9b7a6;background:#fffdfa;color:#a94f38}.app-shell--subpage .version-options button.is-active,.app-shell--subpage .save-tabs button.is-active{border-color:#d7654a;background:#fff0e9;color:#a94f38}.app-shell--subpage .version-options img,.app-shell--subpage .version-options button>svg{background:#f8eee8}.app-shell--subpage .save-preview{box-shadow:none}.app-shell--subpage .save-mirror-choice input{accent-color:#ef674b}.app-shell--subpage .save-secondary a{box-shadow:none}.app-shell--admin .admin-page,.app-shell--admin .admin-feedback-page,.app-shell--admin .admin-competitor-page{width:min(1120px,100%);display:grid;grid-template-rows:60px minmax(0,1fr);background:#fffaf6}.app-shell--admin .focus-header{position:relative;z-index:20}.app-shell--admin .admin-page>.focus-header{grid-template-columns:120px minmax(0,1fr) 120px}.admin-logout{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:0 10px;border:1px solid #d9b7a6;border-radius:9px;background:#fffdfa;color:#a94f38;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.admin-page-content,.admin-feedback-content,.admin-competitor-content{min-height:0;overflow-y:auto;padding:20px 24px max(28px,env(safe-area-inset-bottom))}.admin-page-content{width:min(680px,100%);justify-self:center}.admin-intro{margin-bottom:16px;padding:0 2px}.admin-intro h1{margin:0;color:#38251e;font-size:22px;line-height:1.3}.admin-intro p{margin:6px 0 0;color:#806d63;font-size:12px}.app-shell--admin .admin-tools a,.app-shell--admin .ticket-result,.app-shell--admin .feedback-admin-list>button,.app-shell--admin .feedback-admin-detail,.app-shell--admin .soft-empty{border:1px solid #ead8cc;background:#fffdfa;box-shadow:0 5px 16px #7349350d}.app-shell--admin .admin-tools a{min-height:72px;padding:14px;color:#a94f38}.app-shell--admin .admin-tools a>svg:first-child{width:38px;height:38px;padding:9px;border-radius:10px;background:#fff0e9;color:#d35f45}.app-shell--admin .admin-tools strong{color:#38251e;font-size:14px}.app-shell--admin .admin-tools small{color:#806d63;font-size:11px}.app-shell--admin .admin-page-content>.button{width:100%}.app-shell--admin .ticket-result{background:#fff8f3}.app-shell--admin .ticket-result code{color:#38251e;font-size:13px;font-weight:800}.app-shell--admin .ticket-result a{color:#a94f38;font-size:11px}.app-shell--admin .feedback-filters{margin-bottom:14px}.app-shell--admin .feedback-filters select,.app-shell--admin .feedback-filters input,.app-shell--admin .feedback-admin-detail select,.app-shell--admin .feedback-admin-detail textarea{border-color:#d9b7a6;background:#fffdfa}.app-shell--admin .feedback-admin-layout{gap:14px}.app-shell--admin .feedback-admin-list{gap:9px}.app-shell--admin .feedback-admin-list>button{min-height:76px;padding:13px}.app-shell--admin .feedback-admin-list>button.is-active{border-color:#d7654a;background:#fff0e9}.app-shell--admin .feedback-admin-list strong{font-size:12px}.app-shell--admin .feedback-admin-list time,.app-shell--admin .feedback-admin-list small{font-size:10px}.app-shell--admin .feedback-admin-list p{font-size:11px}.app-shell--admin .feedback-admin-detail{min-height:360px;padding:18px}.app-shell--admin .feedback-admin-detail>header strong{font-size:14px}.app-shell--admin .feedback-admin-detail>header small{font-size:10px}.app-shell--admin .feedback-original{font-size:12px}.app-shell--admin .feedback-context div{font-size:11px}.app-shell--admin .feedback-history{background:#f8eee8}.app-shell--admin .feedback-pagination button{border-color:#d9b7a6;background:#fffdfa;color:#a94f38}.app-shell--admin .feedback-pagination button:disabled{color:#a9988f;opacity:.55}.admin-competitor-content{display:grid;align-content:start}.competitor-upload-form{display:grid;gap:14px;margin-bottom:30px;padding:18px;border:1px solid #ead8cc;border-radius:16px;background:#fffdfa;box-shadow:0 8px 24px #7349350f}.competitor-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.competitor-upload-field{min-width:0;display:grid;gap:9px}.competitor-upload-field>header{display:grid;gap:3px}.competitor-upload-field>header strong{color:#38251e;font-size:14px}.competitor-upload-field>header span{color:#806d63;font-size:11px;line-height:1.5}.competitor-dropzone{min-height:270px;position:relative;display:grid;place-items:center;align-content:center;gap:7px;overflow:hidden;padding:18px;border:1.5px dashed #d9b7a6;border-radius:14px;background:#fff8f3;color:#a94f38;text-align:center;cursor:pointer;transition:border-color .18s ease-out,background-color .18s ease-out,box-shadow .18s ease-out}.competitor-dropzone:hover,.competitor-dropzone.is-dragging{border-color:#d7654a;background:#fff0e9;box-shadow:0 9px 22px #73493517}.competitor-dropzone:focus-within{outline:3px solid rgba(169,79,56,.25);outline-offset:3px}.competitor-dropzone input{position:absolute;z-index:3;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.competitor-dropzone>strong{color:#38251e;font-size:14px}.competitor-dropzone>span{color:#806d63;font-size:11px}.competitor-dropzone>small{color:#9a887d;font-size:10px}.competitor-dropzone.has-image{align-content:stretch;padding:10px;background:#f8eee8}.competitor-dropzone img{width:100%;height:224px;object-fit:contain;border-radius:10px;background:#fffdfa}.competitor-dropzone .competitor-replace{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#a94f38;font-weight:800}.competitor-file-meta{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px}.competitor-file-meta>span{min-width:0;display:grid;gap:2px}.competitor-file-meta strong{overflow:hidden;color:#38251e;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.competitor-file-meta small{color:#806d63;font-size:10px}.competitor-file-meta button{min-height:44px;display:inline-flex;align-items:center;gap:5px;padding:0 10px;border:1px solid #d9b7a6;border-radius:10px;background:#fffdfa;color:#a94f38;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.competitor-history>header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:12px}.competitor-history h2{margin:0;color:#38251e;font-size:18px}.competitor-history header p{margin:4px 0 0;color:#806d63;font-size:11px}.competitor-pair-list{display:grid;gap:14px}.competitor-pair{padding:16px;border:1px solid #ead8cc;border-radius:16px;background:#fffdfa;box-shadow:0 5px 16px #7349350d}.competitor-pair>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.competitor-pair>header strong{color:#38251e;font-size:12px}.competitor-pair>header small{overflow:hidden;color:#9a887d;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.competitor-pair-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.competitor-pair-images>section{min-width:0;display:grid;gap:8px}.competitor-pair-images>section>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.competitor-pair-images span{color:#38251e;font-size:11px;font-weight:800}.competitor-pair-images small{color:#806d63;font-size:9px}.competitor-pair-images>section>a{display:block;border-radius:12px;background:#f8eee8}.competitor-pair-images img{width:100%;height:260px;display:block;object-fit:contain;border-radius:12px}.competitor-image-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.competitor-image-actions a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #d9b7a6;border-radius:10px;background:#fffdfa;color:#a94f38;font-size:11px;font-weight:800}.app-shell--admin .admin-direct-page{width:min(620px,100%);background:#fffaf6}.app-shell--admin .upload-gateway.admin-direct-page{display:grid;grid-template-rows:60px auto minmax(0,1fr);overflow-y:auto}.admin-direct-intro{padding:24px 18px 4px}.admin-direct-intro h1{margin:0;color:#38251e;font-size:22px;line-height:1.35}.admin-direct-intro p{margin:8px 0 0;color:#806d63;font-size:12px;line-height:1.65}.app-shell--admin .gateway-drop{width:calc(100% - 36px);min-height:300px;margin:18px;border:1.5px dashed #e3a18c;border-radius:14px;background:#fffdfa;color:#d35f45;box-shadow:0 6px 18px #7349350f}.app-shell--admin .gateway-drop strong{color:#38251e}.app-shell--admin .gateway-drop p{color:#806d63}.app-shell--admin .crop-page.admin-direct-page{overflow-y:auto}.app-shell--admin .crop-guidance{padding:12px 16px;color:#806d63;line-height:1.6}.app-shell--admin .crop-stage{border-color:#b97660;border-radius:12px;box-shadow:0 8px 22px #5837271a}.app-shell--admin .crop-handle{border-color:#a94f38;background:#ef674b}.app-shell--admin .crop-ratios button,.app-shell--admin .crop-tools button,.app-shell--admin .crop-zoom{border-color:#d9b7a6;background:#fffdfa;color:#806d63}.app-shell--admin .crop-ratios button.is-active{border-color:#d7654a;background:#fff0e9;color:#a94f38}.app-shell--admin .crop-zoom input{accent-color:#ef674b}.app-shell--admin .studio-page{width:min(1120px,100%);background:#fffaf6}.app-shell--admin .admin-direct-works{width:min(1120px,100%);overflow-y:auto;padding:0 24px 32px;background:#fffaf6}.app-shell--admin .admin-direct-works>.focus-header{margin-inline:-24px}.app-shell--admin .admin-direct-works .page-heading{margin-top:22px}.app-shell--admin .admin-direct-works .pattern-card,.app-shell--admin .admin-direct-save .version-picker,.app-shell--admin .admin-direct-save .save-preview,.app-shell--admin .admin-direct-save .save-mirror-choice{border:1px solid #ead8cc;background:#fffdfa;box-shadow:0 5px 16px #7349350d}.app-shell--admin .admin-direct-save{width:min(760px,100%);background:#fffaf6}.app-shell--admin .admin-direct-save .version-options button,.app-shell--admin .admin-direct-save .save-tabs button,.app-shell--admin .admin-direct-save .save-secondary a{border-color:#d9b7a6;background:#fffdfa;color:#a94f38}.app-shell--admin .admin-direct-save .version-options button.is-active,.app-shell--admin .admin-direct-save .save-tabs button.is-active{border-color:#d7654a;background:#fff0e9;color:#a94f38}@media(max-width:760px){.admin-page-content,.admin-feedback-content,.admin-competitor-content{padding:16px 16px max(24px,env(safe-area-inset-bottom))}.app-shell--admin .feedback-admin-layout{grid-template-columns:1fr}.app-shell--admin .feedback-admin-detail{min-height:300px}.competitor-upload-grid,.competitor-pair-images{grid-template-columns:1fr}.competitor-dropzone{min-height:240px}.competitor-pair-images img{height:min(360px,72vw)}.app-shell--admin .admin-direct-works{padding-inline:16px}.app-shell--admin .admin-direct-works>.focus-header{margin-inline:-16px}}@media(max-width:430px){.app-shell--subpage .crop-stage{width:calc(100vw - 24px)}.app-shell--subpage .crop-ratios,.app-shell--subpage .crop-zoom,.app-shell--subpage .crop-tools{margin-inline:12px}.app-shell--subpage .crop-ratios{grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible}.app-shell--subpage .crop-ratios button{min-width:0;padding-inline:2px}.app-shell--subpage .crop-actions{padding-inline:12px}.app-shell--admin .feedback-filters{grid-template-columns:1fr auto}.app-shell--admin .feedback-filters select{grid-column:1 / -1}.app-shell--admin .crop-stage{width:calc(100vw - 24px)}.app-shell--admin .crop-ratios,.app-shell--admin .crop-zoom,.app-shell--admin .crop-tools{margin-inline:12px}.app-shell--admin .crop-ratios{grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible}.app-shell--admin .crop-ratios button{min-width:0;padding-inline:2px}.app-shell--admin .crop-actions{padding-inline:12px}}@media(max-width:360px){.app-shell--subpage .focus-header,.app-shell--admin .focus-header{grid-template-columns:56px minmax(0,1fr) 56px}.login-focus-page .login-page{width:calc(100% - 24px);padding-inline:16px}.app-shell--subpage .save-secondary{grid-template-columns:1fr}}
