@font-face{font-family:DouyinSans;src:url("douyin.fbecfacdfac33982.ttf");font-weight:100 900;font-style:normal;font-display:swap;}
:root{--bg:#f5f6f8;--surface:#fff;--soft:#edf0f5;--text:#22252b;--muted:#626b7b;--faint:#687281;--line:#e6e9ef;--brand:#3866df;--brand-soft:#edf2ff;--danger:#ba3d40;--radius:16px;--gutter:20px;--text-scale:1;}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:DouyinSans,'Noto Sans SC',sans-serif;line-height:1.5;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.48;cursor:default}a{color:var(--brand);text-decoration:none}svg{width:22px;height:22px;flex-shrink:0}img{max-width:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1{font-size:calc(26px * var(--text-scale));line-height:1.3;letter-spacing:-.7px;font-weight:700}h2{font-size:var(--font-section);font-weight:700}h3{font-size:var(--font-label);font-weight:700}small,.caption{font-size:var(--font-sm);line-height:1.45;color:var(--muted)}strong{font-weight:700}.muted{color:var(--muted)}.grow{flex:1;min-width:0}.row,.between{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.stack{display:grid;gap:16px}.wrap{flex-wrap:wrap}.hidden,[hidden]{display:none!important}
#app{height:100dvh;display:flex;flex-direction:column;position:relative;width:100%;margin:auto;overflow:hidden}#screen{position:relative;flex:1;min-height:0;overflow:hidden}.page{position:absolute;inset:0;overflow:auto;overflow-anchor:none;overscroll-behavior-y:contain;padding:20px var(--gutter) 28px;scrollbar-width:none;}.page::-webkit-scrollbar,.sheet-body::-webkit-scrollbar{display:none}.page-header{display:flex;align-items:center;gap:12px;margin-bottom:24px;min-height:44px}.page-header h1{flex:1}.back-head{position:sticky;top:-20px;margin:-20px calc(-1 * var(--gutter)) 20px;padding:12px var(--gutter);display:flex;gap:10px;align-items:center;min-height:64px;background:var(--bg);z-index:5}.back-head h2{flex:1}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:50%}.icon-button:active{background:var(--soft)}.avatar-button{width:40px;height:40px;padding:0;border-radius:50%;overflow:hidden;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center}.avatar-button img{width:100%;height:100%}.avatar-button.large{width:84px;height:84px;font-size:calc(28px * var(--text-scale))}.today-head{display:flex;gap:10px;margin-bottom:22px}.today-head h1{font-size:calc(25px * var(--text-scale))}.today-head .caption{white-space:nowrap}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}.section-head h2{font-size:calc(16px * var(--text-scale))}.section-head .text-action{font-size:var(--font-sm);color:var(--brand)}
.surface{background:var(--surface);border-radius:var(--radius);padding:16px}.menu-group{border-radius:var(--radius);overflow:hidden;background:var(--surface)}.menu-row{display:flex;gap:14px;align-items:center;width:100%;min-height:60px;padding:14px 16px;text-align:left}.menu-row+.menu-row{border-top:1px solid var(--line)}.menu-row>.menu-icon{color:var(--muted);width:20px}.menu-row small{display:block;margin-top:2px}.menu-row .value{font-size:var(--font-sm);color:var(--muted)}.primary,.secondary,.danger-button{min-height:46px;padding:11px 18px;border-radius:var(--corner-12);font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary{background:var(--brand);color:#fff}.danger-button{background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.full{width:100%}.text-action{color:var(--brand);min-height:44px;padding:8px}.help-text{font-size:var(--font-sm);color:var(--muted);margin-top:8px;line-height:1.65}.empty{padding:36px 16px;text-align:center;color:var(--muted);display:grid;justify-items:center;gap:12px}.empty svg{width:28px;height:28px;color:var(--faint)}.empty .primary{margin-top:4px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:var(--corner-6);background:var(--soft);font-size:var(--font-xs);white-space:nowrap;color:var(--muted)}.state-ring{display:inline-block;width:7px;height:7px;aspect-ratio:1;flex-shrink:0;border:1.5px solid currentColor;border-radius:50%;vertical-align:middle}.status-label{display:inline-flex;align-items:center;gap:5px;color:var(--brand);font-size:var(--font-xs)}
.shoot-list{background:var(--surface);border-radius:var(--radius);overflow:hidden}.shoot-cell{display:grid;grid-template-columns:65px minmax(0,1fr) 62px;gap:10px;padding:14px 12px;position:relative;min-height:112px;align-items:stretch}.shoot-cell+.shoot-cell{border-top:1px solid var(--line)}.shoot-meta{text-align:left;border-right:1px solid var(--line);padding-right:10px;display:flex;flex-direction:column;gap:7px;align-items:flex-start;justify-content:center}.shoot-meta .date{font-size:var(--font-body);font-weight:700;white-space:nowrap}.shoot-meta .date small{display:block;font-size:var(--font-xs);font-weight:400}.shoot-content{display:flex;flex-direction:column;gap:7px;text-align:left;padding:0;justify-content:center;min-width:0}.shoot-content .person-title{font-size:var(--font-body);line-height:1.5;overflow-wrap:anywhere}.shoot-content .role{color:var(--muted);font-size:var(--font-sm);margin-left:5px;font-weight:400}.shoot-content .subline{display:flex;align-items:center;justify-content:space-between;gap:6px}.shoot-content .time{font-size:var(--font-xs);color:var(--muted);white-space:nowrap;margin-left:auto}.shoot-content .note{font-size:var(--font-xs);color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.row-action{align-self:stretch;padding:8px 5px;min-height:48px;font-size:var(--font-xs);font-weight:700;color:var(--brand);background:var(--brand-soft);border-radius:var(--corner-10);white-space:normal}.row-action.complete{color:var(--muted);background:var(--soft)}.reminder-group{padding:4px 0;background:var(--surface);border-radius:var(--radius)}.reminder-row{display:flex;gap:14px;align-items:center;padding:13px 16px}.reminder-row+.reminder-row{border-top:1px solid var(--line)}.day-label{font-size:var(--font-sm);width:5em;color:var(--brand);flex-shrink:0}.reminder-row .caption{margin-top:3px}.workflow-filters,.segmented{display:flex;align-items:center;gap:4px;background:var(--soft);border-radius:var(--corner-12);padding:4px}.workflow-filters{margin:16px 0}.segmented button,.workflow-filters button{flex:1;min-height:40px;border-radius:var(--corner-9);padding:8px 4px;font-size:var(--font-sm);white-space:nowrap}.segmented button.active,.workflow-filters button.active{background:var(--surface);color:var(--brand);font-weight:700}.filter-reset{display:block;margin-left:auto;color:var(--muted);font-size:var(--font-sm);min-height:40px}.filter-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.chip{min-height:38px;padding:8px 13px;white-space:nowrap;border-radius:var(--corner-9);background:var(--surface);color:var(--muted);font-size:var(--font-sm)}.chip.active{background:var(--brand-soft);color:var(--brand)}
#dock{display:flex;align-items:stretch;padding:6px 6px max(6px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);z-index:8;}#dock button{display:grid;justify-items:center;align-content:center;min-height:58px;}#dock .dock-symbol{width:24px;height:24px;position:relative;display:grid;place-items:center}#dock .nav-line{position:absolute;width:18px;border-radius:2px;background:currentColor;}#dock button.active span:last-child{font-weight:700}.editor-open #dock,.keyboard-open #dock{display:none}
#toast-area{position:absolute;top:8px;left:var(--gutter);right:var(--gutter);z-index:70;pointer-events:none;display:flex;justify-content:center}.aqua-notice{border-radius:999px;padding:11px 16px;display:flex;align-items:center;gap:9px;max-width:100%;color:var(--text);background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(20px) saturate(1.25);-webkit-backdrop-filter:blur(20px) saturate(1.25);border:1px solid color-mix(in srgb,var(--surface) 80%,var(--line));box-shadow:0 6px 22px #172b4d0b;font-size:var(--font-sm)}.aqua-notice svg{width:17px;height:17px;color:var(--brand)}.aqua-notice.error svg{color:var(--danger)}
.modal-overlay{position:absolute;inset:0;background:#151b2a35;display:flex;align-items:flex-end;z-index:50}.sheet{background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid color-mix(in srgb,var(--surface) 90%,transparent);border-bottom:0;width:100%;max-height:85%;display:flex;flex-direction:column;padding:8px 20px 20px;box-shadow:0 -10px 45px #162d4c0b}.sheet.half{height:55%;min-height:260px}.sheet-handle{width:32px;height:4px;background:var(--line);border-radius:3px;margin:2px auto 10px;flex-shrink:0;touch-action:none}.sheet-heading{display:flex;align-items:center;gap:12px;flex-shrink:0}.sheet-heading h2{flex:1}.sheet-body{min-height:0;overflow:auto;overscroll-behavior:contain}.sheet .search-field{margin-bottom:16px}.sheet .menu-group{background:transparent}.sheet .menu-row{padding-left:0;padding-right:0}.sheet-footer{display:flex;margin-top:18px}.sheet-footer>*{flex:1}.confirmation{padding:8px 0 6px;line-height:1.8;color:var(--muted)}.glass{background:linear-gradient(140deg,color-mix(in srgb,var(--surface) 88%,transparent),color-mix(in srgb,var(--brand-soft) 74%,transparent));backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.form{display:grid;gap:20px}.field{display:grid;gap:8px}.field>span,.field>label{font-size:var(--font-sm);color:var(--muted)}input,textarea{width:100%;border:1px solid transparent;background:var(--surface);border-radius:var(--corner-12);padding:12px 14px;min-height:46px;outline:none;min-width:0}input:focus,textarea:focus{border-color:color-mix(in srgb,var(--brand) 40%,transparent)}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--brand)}textarea{resize:none;line-height:1.65}.search-field{display:flex;align-items:center;gap:10px;background:var(--surface);border-radius:var(--corner-13);padding:0 13px;min-height:48px}.search-field svg{color:var(--muted);width:20px}.search-field input{background:transparent;padding:12px 0;border:0}.large-search{width:100%;min-height:52px;background:var(--surface);border-radius:var(--corner-13);display:flex;align-items:center;text-align:left;padding:12px 16px;gap:12px;color:var(--muted);margin-bottom:16px}.compact-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.picker-button{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;min-height:48px;border-radius:var(--corner-12);width:100%;background:var(--surface);gap:10px}.picker-button svg{width:18px;color:var(--muted)}.person-block{display:grid;padding:16px;background:var(--surface);border-radius:var(--radius)}.person-block input{background:var(--bg)}.person-options{display:flex;gap:8px}.person-options .mode-card{flex:1;background:var(--bg);border:1px solid transparent;border-radius:var(--corner-10);padding:10px;min-height:44px}.person-options .mode-card.active{background:var(--brand-soft);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 25%,transparent)}.person-options .icon-button{background:var(--bg);border-radius:var(--corner-10)}.numeric-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.numeric-fields label{font-size:var(--font-xs);color:var(--muted)}.numeric-fields input{padding:10px 8px;text-align:left;margin-top:6px;font-size:var(--font-ui)}.note-launch{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:14px;background:var(--surface);border-radius:var(--corner-12);text-align:left}.note-launch .caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-editor{border:0;background:transparent;min-height:65dvh;padding:0;font-size:calc(16px * var(--text-scale));line-height:1.9}.note-editor:focus{outline:none;border:0}.form-error{color:var(--danger);font-size:var(--font-sm);min-height:18px}.save-footer{display:flex;gap:10px;margin-top:4px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.photo-tile{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--corner-10);background:var(--soft)}.photo-tile img{width:100%;height:100%;display:block}.photo-tile .remove-photo{position:absolute;top:3px;right:3px;width:28px;height:28px;border-radius:50%;background:#1822339c;color:#fff;display:grid;place-items:center}.remove-photo svg{width:15px}.album-add{aspect-ratio:1;border:1px dashed var(--line);border-radius:var(--corner-10);display:grid;justify-items:center;align-content:center;gap:6px;color:var(--muted);font-size:var(--font-sm);background:var(--surface)}.album-add svg{width:24px}.photo-caption{font-size:var(--font-sm);color:var(--muted);margin-top:10px}
.wheel-wrap{display:flex;justify-content:center;position:relative;gap:14px;height:220px;padding:0 12px}.wheel-wrap::before{content:'';position:absolute;left:0;right:0;top:88px;height:44px;border-radius:var(--corner-12);border:1px solid color-mix(in srgb,var(--brand) 10%,transparent);background:color-mix(in srgb,var(--surface) 60%,transparent);pointer-events:none}.wheel-column{flex:1;overflow-y:auto;scroll-snap-type:y mandatory;padding:88px 0;scrollbar-width:none;mask-image:linear-gradient(transparent,#000 32%,#000 68%,transparent);position:relative;z-index:1;overscroll-behavior:contain}.wheel-column::-webkit-scrollbar{display:none}.wheel-item{height:44px;min-height:44px;scroll-snap-align:center;text-align:center;font-size:calc(18px * var(--text-scale));color:var(--muted);display:grid;place-items:center;width:100%;padding:0}.wheel-item.selected{color:var(--text);font-weight:700}.wheel-unit{color:var(--muted);font-size:var(--font-sm);margin-left:4px}
.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px}.calendar-head h1{font-size:calc(23px * var(--text-scale))}.calendar-scales{margin-bottom:18px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays{font-size:var(--font-sm);color:var(--muted);text-align:center;margin-bottom:10px}.calendar-grid{row-gap:8px;touch-action:pan-y}.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;padding:4px 0;position:relative;border-radius:50%;font-size:calc(21px * var(--text-scale))}.calendar-day .day-number{display:grid;place-items:center;min-width:36px;height:36px;aspect-ratio:1;border-radius:50%;font-size:calc(21px * var(--text-scale))}.calendar-day.active .day-number{background:var(--brand-soft);border:1.5px solid var(--brand);color:var(--brand);width:36px;height:36px}.calendar-day.today:not(.active) .day-number{border:1.5px solid var(--brand);color:var(--brand)}.calendar-day.other{color:var(--faint);opacity:.55}.calendar-day small{font-size:var(--font-xs);max-width:100%;overflow:hidden;white-space:nowrap}.calendar-day .event-mark{width:5px;height:5px;aspect-ratio:1;border:1.2px solid var(--brand);border-radius:50%;margin-top:3px}.calendar-agenda{margin-top:20px}.month-controls{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:12px}.year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.year-month{padding:20px 8px;background:var(--surface);border-radius:var(--corner-12);text-align:center}.agenda-group{margin-top:20px}.event-flow{display:grid;gap:16px}.event-card{width:100%;min-height:180px;border-radius:var(--corner-18);background:var(--surface);padding:24px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:16px;border:1px solid var(--line);position:relative;overflow:hidden}.event-card h2{font-size:calc(23px * var(--text-scale));line-height:1.45;max-width:85%}.event-card .event-number{position:absolute;right:22px;top:22px;color:var(--faint);font-size:var(--font-sm)}.event-card svg{position:absolute;right:24px;bottom:25px;color:var(--brand)}.event-card:first-child{background:linear-gradient(125deg,var(--surface),var(--brand-soft));border-color:transparent}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.metric{padding:16px 10px;background:var(--surface);border-radius:var(--corner-14);text-align:center}.metric strong{display:block;font-size:calc(25px * var(--text-scale));margin-bottom:4px}.metric small{font-size:var(--font-xs)}.money-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.money-summary .surface strong{display:block;font-size:calc(22px * var(--text-scale));margin-top:5px}.progress{height:4px;background:var(--soft);border-radius:4px;overflow:hidden;margin-top:12px}.progress span{display:block;height:100%;background:var(--brand)}.detail-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;border-top:1px solid var(--line);margin-top:28px;padding-top:16px}.detail-actions button{display:grid;justify-items:center;gap:6px;padding:10px 2px;font-size:var(--font-xs);color:var(--muted);min-height:52px}.detail-actions svg{width:20px}.detail-actions .danger{color:var(--danger)}
.inspiration-categories{display:flex;align-items:center;gap:8px;margin-bottom:20px}.category-name{font-size:calc(25px * var(--text-scale));line-height:1.4;text-align:left;display:flex;align-items:center;gap:8px;min-height:44px}.category-name svg{width:16px;color:var(--muted)}.inspiration-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.idea-card{background:var(--surface);border-radius:var(--corner-14);overflow:hidden;text-align:left;padding:0}.idea-card .idea-cover{width:100%;aspect-ratio:4/5;background:var(--soft);display:grid;place-items:center}.idea-cover img{width:100%;height:100%}.idea-card .idea-note{padding:12px;font-size:var(--font-sm);line-height:1.7;overflow-wrap:anywhere}.idea-note small{display:block;margin-top:8px;font-size:var(--font-xs)}.idea-gallery{display:grid;gap:12px}.idea-gallery img{width:100%;border-radius:var(--corner-14)}.profile-hero{gap:16px;padding:16px 0 20px}.profile-hero h1{font-size:calc(25px * var(--text-scale))}.profile-hero small{display:block;margin-top:5px}.profile-content{display:grid;justify-items:center;gap:14px;padding:16px 0 30px}.profile-content h1{font-size:calc(23px * var(--text-scale))}.account-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}.switch-row{display:flex;align-items:center;gap:12px;width:100%;padding:16px;min-height:64px}.switch-row+.switch-row{border-top:1px solid var(--line)}.switch-row small{display:block;margin-top:3px}.switch-toggle{position:relative;width:42px;height:24px;flex-shrink:0}.switch-toggle input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.switch-toggle span{position:absolute;inset:0;background:var(--line);border-radius:var(--corner-14);pointer-events:none;transition:background .2s}.switch-toggle span::after{content:'';position:absolute;width:18px;height:18px;top:3px;left:3px;border-radius:50%;background:#fff;transition:transform .25s cubic-bezier(.2,.8,.2,1)}.switch-toggle input:checked+span{background:var(--brand)}.switch-toggle input:checked+span::after{transform:translateX(18px)}.auth-brand{display:flex;align-items:center;gap:10px;margin:24px 0 32px}.auth-brand img{width:40px;height:40px;border-radius:var(--corner-10)}.auth-title{margin-bottom:24px}.password-field{display:flex;align-items:center;background:var(--surface);border-radius:var(--corner-12)}.password-field input{background:transparent;border-radius:var(--corner-12) 0 0 var(--corner-12)}.password-field .icon-button{border-radius:0 var(--corner-12) var(--corner-12) 0}.code-row{display:flex;gap:10px}.code-row input{flex:1}.code-row button{font-size:var(--font-sm);white-space:nowrap}.auth-links{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:12px}.faq{background:var(--surface);border-radius:var(--corner-14);overflow:hidden}.faq details{padding:0 16px}.faq details+details{border-top:1px solid var(--line)}.faq summary{font-size:var(--font-ui);cursor:pointer;display:flex;align-items:center;min-height:44px;padding:12px 16px;margin-inline:-16px}.faq p{margin-top:0;padding-bottom:15px;font-size:var(--font-sm);color:var(--muted);line-height:1.8}.feedback-card{margin-top:12px}.feedback-reply{border-left:2px solid var(--brand);padding-left:12px;margin-top:14px;font-size:var(--font-sm)}.privacy-copy{font-size:var(--font-sm);color:var(--muted);line-height:1.9;margin:24px 0 10px}.donation{text-align:center;padding:28px 0}.donation>img{width:80px;height:80px;border-radius:var(--corner-22);margin-bottom:20px}.donation h1{font-size:calc(23px * var(--text-scale))}.donation p{margin-top:16px;font-size:var(--font-ui);line-height:1.9;color:var(--muted)}.qr-placeholder{display:grid;place-items:center;aspect-ratio:1;max-width:240px;margin:32px auto 20px;border:1px solid var(--line);background:var(--surface);border-radius:var(--corner-16);color:var(--muted);font-size:var(--font-sm)}.document-content{font-size:var(--font-body);line-height:1.9;overflow-wrap:anywhere}.document-content p{white-space:pre-wrap;margin-bottom:18px}.document-content img{width:100%;border-radius:var(--corner-12);margin-bottom:18px}.skeleton{background:linear-gradient(100deg,var(--soft) 25%,var(--surface) 45%,var(--soft) 65%);background-size:200% 100%;border-radius:var(--corner-12);height:70px;margin-bottom:12px;animation:loading-shimmer 1.8s linear infinite}.skeleton.small{height:22px;width:65%}@keyframes loading-shimmer{to{background-position:-200% 0}}.sync-status{font-size:var(--font-xs);color:var(--muted);padding-top:8px}.abstract-photo{height:100%;width:100%;display:grid;place-items:center;color:var(--muted);background:linear-gradient(160deg,#e6eaf1,#d6dce7)}
body[data-theme=dark]{--bg:#16191f;--surface:#22262e;--soft:#2d323c;--text:#f2f3f6;--muted:#adb6c5;--faint:#8992a3;--line:#343a45;--brand:#8daeff;--brand-soft:#2c3a58;color-scheme:dark}.solid .sheet,.solid .aqua-notice{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface)}.system-reduce *{animation-duration:.001ms!important;transition-duration:.001ms!important}.preview-shell{display:none}.is-preview #app{display:none}.is-preview .preview-shell{display:flex;align-items:center;justify-content:center;gap:64px;height:100dvh;}.preview-copy{width:290px;display:grid;gap:20px}.preview-brand{display:flex;align-items:center;gap:12px}.preview-brand img{width:44px;height:44px;border-radius:var(--corner-12)}.preview-copy h1{font-size:calc(32px * var(--text-scale))}.preview-copy label{font-size:var(--font-ui)}.preview-copy select{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--corner-12);padding:12px}.preview-copy .btn{display:block;text-align:center;min-height:44px;padding:12px;background:var(--surface);border-radius:var(--corner-12)}.preview-links{display:flex;gap:4px;flex-wrap:wrap}.preview-links button{font-size:var(--font-sm);min-height:36px;padding:6px}.phone-holder{border:5px solid #1d222b;border-radius:32px;overflow:hidden;background:var(--bg);box-shadow:0 20px 55px #17223c15}.phone-holder iframe{display:block;border:0}.is-preview .preview-shell.landscape{flex-direction:column;gap:16px}.landscape .preview-copy{width:auto;display:flex;align-items:center;gap:14px}.landscape .preview-copy h1,.landscape .preview-links,.landscape .preview-copy label{display:none}.landscape .preview-copy select{width:170px}
@media(max-width:350px){:root{--gutter:16px}.today-head{gap:6px}.today-head h1{font-size:calc(22px * var(--text-scale))}.today-head .caption{font-size:var(--font-xs)}.shoot-cell{grid-template-columns:57px minmax(0,1fr) 54px;gap:8px;padding:12px 10px}.shoot-content .person-title{font-size:var(--font-ui)}.shoot-content .time{font-size:var(--font-xs)}.numeric-fields{gap:6px}.numeric-fields input{padding:10px 5px}.page-header{margin-bottom:20px}.event-card h2{font-size:calc(21px * var(--text-scale))}}
@media(min-width:600px){:root{--gutter:32px}.page{padding-top:28px}.page>*{max-width:780px;margin-left:auto;margin-right:auto}.page>.back-head{max-width:none;margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter))}.inspiration-grid{grid-template-columns:repeat(3,1fr)}.event-flow{grid-template-columns:1fr 1fr}.calendar-grid{row-gap:12px}.calendar-day{min-height:76px}#dock button{max-width:160px}.form{max-width:640px}}
@media(max-height:450px) and (orientation:landscape){.page{padding-top:12px}.page-header,.today-head{margin-bottom:12px}.back-head{top:-12px;margin-top:-12px;min-height:52px}.sheet{max-height:96%}.wheel-wrap{height:176px}.wheel-column{padding:66px 0}.wheel-wrap::before{top:66px}.calendar-grid{row-gap:0}.calendar-day{min-height:50px}.calendar-day .day-number{height:30px;min-width:30px;font-size:calc(18px * var(--text-scale))}#dock button{min-height:48px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
#app{padding-top:var(--safe-top,env(safe-area-inset-top,0px));padding-bottom:var(--safe-bottom,env(safe-area-inset-bottom,0px))}#toast-area{top:calc(var(--safe-top,env(safe-area-inset-top,0px)) + 12px)}.profile-content .avatar-button{cursor:pointer}
.shoot-meta{justify-content:flex-start;gap:5px}.shoot-meta .cooperation-text{font-size:var(--font-xs);color:var(--muted);line-height:1.5;margin-top:auto;padding-top:5px;overflow-wrap:anywhere}.row-action{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;padding:12px 4px}.row-action-icon{margin-top:auto;margin-bottom:auto;display:grid;place-items:center}.row-action-icon svg{width:19px;height:19px}.ribbon-burst{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3}.ribbon-burst i{position:absolute;right:45px;top:15%;width:5px;height:14px;border-radius:1px}
.event-card{background:linear-gradient(125deg,var(--surface),var(--brand-soft));border-color:transparent;isolation:isolate}.event-card::before,.event-card::after{content:'';position:absolute;width:160px;height:160px;border:28px solid color-mix(in srgb,var(--brand) 9%,transparent);border-radius:50%;right:-57px;top:-45px;z-index:-1}.event-card::after{width:105px;height:105px;border-width:1px;border-color:color-mix(in srgb,var(--brand) 16%,transparent);right:-31px;top:-19px}.event-card h2{overflow-wrap:anywhere}
.numeric-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.shot-quantity{display:grid;gap:9px}.shot-options,.duration-options,.category-options{display:flex;gap:6px}.shot-options button,.duration-options button,.category-options button{flex:1;min-height:42px;border:1px solid transparent;background:var(--bg);border-radius:var(--corner-10);font-size:var(--font-sm);padding:8px 4px;transition:background .18s,color .18s}.shot-options button:last-child{font-size:var(--font-title);line-height:1}.shot-options button.active,.duration-options button.active,.category-options button.active{background:var(--brand-soft);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 24%,transparent)}.duration-options{margin-top:-12px}.duration-options button,.category-options button{background:var(--surface)}.calendar-head h1{flex:1;}.calendar-head>.icon-button{width:32px;margin-left:-6px}
.wheel-wrap{--wheel-pad:88px;flex-shrink:0}.wheel-column{height:220px;max-height:220px;min-width:0;flex:1 1 0;touch-action:none;scroll-snap-type:none;padding:var(--wheel-pad) 0;user-select:none;-webkit-user-select:none;-webkit-overflow-scrolling:touch;overflow-anchor:none;cursor:grab}.wheel-column[data-dragging]{cursor:grabbing}.wheel-item{display:flex;align-items:center;justify-content:center;line-height:44px;touch-action:none;flex-shrink:0;border-radius:0;scroll-snap-align:none}.wheel-labels{display:flex;gap:14px;padding:0 12px;margin-bottom:8px;color:var(--muted);font-size:var(--font-xs);text-align:center}.wheel-labels span{flex:1}.wheel-wrap::before{top:var(--wheel-pad);z-index:0}
.stage-slider{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:4px;background:var(--soft);border-radius:var(--corner-12);touch-action:pan-y;user-select:none;-webkit-user-select:none}.stage-slider button{z-index:1;padding:10px 0;min-height:42px;font-size:var(--font-sm);touch-action:pan-y;border-radius:var(--corner-9);white-space:nowrap}.stage-slider button.active{color:var(--brand);font-weight:700}.stage-thumb{position:absolute;inset:4px auto 4px 4px;width:calc((100% - 8px)/4);border-radius:var(--corner-9);background:var(--surface);transform:translateX(calc(var(--stage-index)*100%));transition:transform .3s cubic-bezier(.18,.8,.2,1)}.photos-only{grid-template-columns:repeat(2,minmax(0,1fr))}
.payment-list{display:grid;gap:10px}.payment-person{background:var(--surface);border-radius:var(--corner-14);padding:14px;min-width:0}.payment-person-head{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;padding:0;min-height:34px}.payment-person-head strong{font-size:var(--font-label);overflow-wrap:anywhere}.payment-role{display:block;font-size:var(--font-xs);color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.payment-person-head small{font-size:var(--font-xs);white-space:nowrap;margin-top:2px}.payment-context{display:flex;gap:8px;color:var(--muted);font-size:var(--font-xs);line-height:1.5;overflow-wrap:anywhere;margin:6px 0 12px}.payment-context span:first-child{flex-shrink:0}.payment-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.payment-control{border:1px solid var(--line);background:var(--bg);border-radius:var(--corner-10);min-height:56px;gap:6px;padding:10px 12px;font-size:var(--font-xs);transition:color .22s,background .22s,border-color .22s}.payment-control strong{font-size:var(--font-body)}.payment-control.received{color:#16754f;background:#edf8f1;border-color:#d2ebdd}.payment-control.cancel-armed{border-color:var(--danger)}.collection-types{margin-bottom:16px}.collection-totals{margin:8px 0 16px}.income-label{display:flex;align-items:center;gap:4px}.help-button{padding:0;position:relative;width:40px;height:40px;min-height:40px;flex:none;display:inline-grid;place-items:center;border:0;border-radius:50%;font-size:var(--font-xs);color:var(--muted)}.help-button::before{content:"";position:absolute;width:16px;height:16px;border:1px solid currentColor;border-radius:50%;pointer-events:none}.gear-story{display:grid;gap:24px;padding-top:18px}.gear-story h1{text-align:center;font-size:var(--font-title);overflow-wrap:anywhere}.gear-symbol{display:grid;place-items:center;width:84px;height:84px;border-radius:var(--corner-24);background:var(--brand-soft);color:var(--brand);margin:auto}.gear-symbol svg{width:40px;height:40px}.gear-story .money-summary{width:100%}
.aqua-notice{min-height:42px;border-radius:var(--corner-24);max-width:min(100%,420px);padding:11px 14px;background:color-mix(in srgb,var(--surface) 91%,transparent)}.aqua-notice span{line-height:1.5}.aqua-notice svg{flex-shrink:0}.aqua-notice .notice-dot{width:6px;height:6px;background:var(--brand);border-radius:50%;flex-shrink:0}
body[data-theme=dark] .payment-control.received{color:#83d3ac;background:#203b2d;border-color:#355e47}
@media(max-width:350px){.payment-person{padding:12px}.payment-control{padding:10px 8px;gap:4px;font-size:var(--font-xs)}.payment-control strong{font-size:var(--font-sm)}.category-options button{font-size:var(--font-xs)}.shoot-meta .cooperation-text{font-size:var(--font-xs)}.stage-slider button{font-size:var(--font-xs)}}
@media(max-height:450px) and (orientation:landscape){.wheel-wrap{--wheel-pad:66px}.wheel-column{height:176px;max-height:176px}.wheel-labels{margin-bottom:3px}.sheet:has(.wheel-wrap){max-height:98%;padding-bottom:10px}.sheet:has(.wheel-wrap) .sheet-heading{margin-bottom:3px}.sheet:has(.wheel-wrap) .sheet-footer{margin-top:8px}}

/* Shared compact, foldable and tablet templates. Width changes never rebuild a page. */
.page{contain:layout paint}.sheet-exit{background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid color-mix(in srgb,var(--surface) 90%,transparent);border-bottom:0;border-radius:var(--corner-26) var(--corner-26) 0 0;width:100%;max-height:85%;display:flex;flex-direction:column;padding:8px 20px 20px}.sheet-exit.half{height:55%;min-height:260px}
.sheet,.aqua-notice{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.sheet .glass{backdrop-filter:none;-webkit-backdrop-filter:none}.sheet .sheet-body{isolation:isolate}
.sponsor-code{width:min(100%,280px);margin:28px auto 20px}.sponsor-code img{width:100%;height:auto;border-radius:var(--corner-14)!important;margin:0!important}.list-more{grid-column:1/-1;width:100%;padding:16px;color:var(--muted);font-size:var(--font-sm);min-height:52px}.motion-ghost{overflow:hidden;transform-origin:50% 50%}
.shoot-cell,.payment-person,.event-order,.idea-card{content-visibility:visible;contain-intrinsic-size:none}.person-options .mode-card,.shot-options button,.chip,.category-options button,.event-day,.metric,.day-options button{transition:background-color .38s ease,color .38s ease,border-color .38s ease}.stage-thumb{transition:transform .46s cubic-bezier(.2,.75,.2,1)}
@media(min-width:600px){.sheet-exit{width:min(100%,560px);margin:0 auto}.sheet-exit.half{min-height:430px;max-height:80%}}
.home-layout>section,.editor-layout>section,.convention-layout>section,.detail-layout>section,.finance-layout>section{min-width:0}
.editor-layout,.editor-main,.editor-side{display:grid;gap:20px}.editor-side{align-content:start}.editor-main .duration-options{margin-top:-10px}
.editor-main .segmented{margin-bottom:0}.scene-context{font-size:var(--font-section);font-weight:700;overflow-wrap:anywhere}
.day-options{display:flex;gap:8px;flex-wrap:wrap}.day-options button{min-width:88px;flex:1;min-height:62px;background:var(--surface);border:1px solid var(--line);border-radius:var(--corner-12);padding:8px 12px}
.day-options small{display:block;margin-top:2px}.day-options button.active{color:var(--brand);background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 24%,transparent)}
.detail-summary h1{font-size:calc(23px * var(--text-scale));margin:18px 0 8px;overflow-wrap:anywhere}.detail-summary>.caption{margin-top:5px}.detail-people{margin:20px 0 14px;border-top:1px solid var(--line)}
.detail-person{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.detail-person>div{min-width:0}.detail-person p,.detail-person strong{overflow-wrap:anywhere}.detail-quantity{flex-shrink:0;text-align:right;font-size:var(--font-sm)}.detail-quantity>span{display:block;color:var(--muted);margin-bottom:4px}
.stage-slider{grid-template-columns:repeat(3,minmax(0,1fr))}.stage-thumb{width:calc((100% - 8px)/3)}
.ribbon-canvas{z-index:4}
.convention-summary{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px;margin:18px 0 8px}.event-income>strong{display:block;font-size:calc(27px * var(--text-scale));margin:8px 0 15px;overflow-wrap:anywhere}.event-stat-line{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:var(--font-xs);color:var(--muted)}.event-stat-line b{font-size:var(--font-sm);color:var(--text);margin-left:5px}.event-received>strong,.event-received>div>strong{display:block;font-size:var(--font-number);margin-top:3px}.event-received>div{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.event-received>div>strong{font-size:var(--font-section)}.event-date-range{overflow-wrap:anywhere}
.event-days{display:flex;gap:8px;overflow:auto;scrollbar-width:none;padding:2px 0;overscroll-behavior-x:contain}.event-day{min-width:94px;flex-shrink:0;text-align:left;padding:11px 13px;min-height:65px;background:var(--surface);border-radius:var(--corner-12);border:1px solid transparent}.event-day small{display:block;font-size:var(--font-xs);margin-top:4px}.event-day.active{border-color:color-mix(in srgb,var(--brand) 35%,transparent);background:var(--brand-soft);color:var(--brand)}.past-days{margin-bottom:10px}.past-days>.caption{display:block;margin-bottom:5px}.past-days .event-day:not(.active){background:var(--soft);color:var(--muted)}.event-order{display:flex;align-items:center;padding-left:14px}.event-order+.event-order{border-top:1px solid var(--line)}.event-order .menu-row{min-width:0;padding-left:10px}.event-order .menu-icon{display:none}.order-number{font-size:var(--font-xs);color:var(--faint);width:20px;flex-shrink:0}.brand-text{color:var(--brand)}.day-pagination{display:flex;justify-content:space-between;margin-top:10px}
.receipt-links{display:flex;gap:12px}.receipt-links:empty{display:none}.receipt-links button{font-size:var(--font-xs);padding:4px 0;min-height:36px;display:flex;align-items:center;gap:5px}.receipt-links svg{width:14px;height:14px}.receipt-total{display:flex;align-items:center;justify-content:space-between;gap:12px}.receipt-total span{font-size:calc(22px * var(--text-scale));color:var(--brand);white-space:nowrap}.receipt-form{gap:14px}.receipt-form .photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.receipt-form .album-add{min-height:78px}.stat-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;font-size:var(--font-ui)}.stat-row+.stat-row{border-top:1px solid var(--line)}.stat-list{padding-top:3px;padding-bottom:3px}.category-row{display:flex;align-items:center}.category-row+.category-row{border-top:1px solid var(--line)}.category-row .menu-row{flex:1;min-width:0}.category-row>.icon-button{color:var(--muted);margin-right:6px}
.profile-footer-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}.profile-footer-cards>button{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px;padding:14px 16px;border-radius:var(--corner-12);background:var(--surface);text-align:left;min-height:70px}.profile-footer-cards small{grid-column:1}.profile-footer-cards svg{grid-column:2;grid-row:1 / 3;width:15px;color:var(--faint)}.version-number{font-size:calc(36px * var(--text-scale));margin:10px 0}
.is-preview .preview-shell{gap:36px;padding:24px;flex-direction:row}.preview-copy{width:220px;flex-shrink:0;gap:18px}.preview-copy h1{font-size:calc(28px * var(--text-scale))}.phone-holder{border-width:4px}.preview-copy select{font-size:var(--font-sm)}.preview-copy label{margin-bottom:-8px}
@media(min-width:600px){.detail-layout,.finance-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;max-width:1120px}.home-layout .section-head:first-child,.convention-layout .section-head:first-child,.finance-layout .section-head:first-child{margin-top:0}.home-layout .shoot-cell{grid-template-columns:54px minmax(0,1fr) 54px;gap:8px;padding:14px 10px}.home-layout .shoot-content .time{font-size:var(--font-xs)}.page>.today-head,.page>.page-header{max-width:1120px}.convention-summary{max-width:1120px}.inspiration-grid{max-width:1120px;grid-template-columns:repeat(3,minmax(0,1fr))}.detail-layout:has(section:nth-child(2):empty){grid-template-columns:minmax(0,640px);justify-content:center}.sheet{width:min(100%,560px);margin:0 auto}.sheet.half{min-height:430px;max-height:80%}.receipt-form{max-width:100%}.convention-layout .metrics{gap:6px}.convention-layout .metric{padding:16px 6px}.convention-layout .metric small{font-size:var(--font-xs)}}
@media(min-width:760px){.shoot-form{max-width:1120px}.inspiration-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.event-flow{max-width:1120px}.page[data-page=projects]>[data-region=projects],.page[data-page=sessions]>[data-region=projects]{max-width:1120px}.page[data-page=projects] .shoot-cell,.page[data-page=sessions] .shoot-cell{background:var(--surface);border-radius:var(--corner-12);border-top:0;margin-bottom:10px}.payment-list{grid-template-columns:repeat(2,minmax(0,1fr))}.convention-layout .payment-list{grid-template-columns:1fr}}
@media(min-width:1000px){:root{--gutter:36px}#dock{position:absolute;top:var(--safe-top,env(safe-area-inset-top,0px));bottom:var(--safe-bottom,env(safe-area-inset-bottom,0px));left:0;width:92px;height:auto;flex-direction:column;justify-content:center;border-top:0;border-right:1px solid var(--line);padding:24px 6px;gap:12px}#dock button{flex:0 0 auto;width:100%;min-height:78px}.editor-open #screen{margin-left:0}body:not(.editor-open) #screen{margin-left:92px}.page>*{max-width:1120px}.page>.form:not(.shoot-form){max-width:640px}.page[data-page=auth]{display:flex;flex-direction:column;justify-content:center}.page[data-page=auth]>*{width:min(100%,420px);margin-left:auto;margin-right:auto}.home-layout{grid-template-columns:1.1fr 1fr;gap:32px}.calendar-day{min-height:78px}.calendar-agenda{max-width:960px}.event-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-actions{max-width:740px}.page[data-page=my] .menu-group{max-width:740px}.profile-footer-cards{max-width:740px}.page[data-page=my] .section-head,.profile-hero{max-width:740px}}
@media(max-width:350px){.convention-summary{gap:8px;grid-template-columns:1.45fr 1fr}.convention-summary .surface{padding:12px}.event-income>strong{font-size:var(--font-title)}.event-stat-line{gap:6px;font-size:var(--font-xs)}.event-received>strong{font-size:calc(18px * var(--text-scale))}.detail-quantity{font-size:var(--font-xs)}.detail-person{gap:8px}.receipt-total span{font-size:calc(19px * var(--text-scale))}}
@media(max-height:450px) and (orientation:landscape){.sheet.half{min-height:0;height:90%;max-height:96%}.editor-side{position:static}.page[data-page=auth]{justify-content:flex-start}}

/* Pull-to-refresh uses one translated content layer; no full-page reload. */
#refresh-indicator{position:absolute;top:calc(var(--safe-top,env(safe-area-inset-top,0px)) + 10px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;min-height:42px;padding:9px 16px;z-index:40;pointer-events:none;opacity:0;border:1px solid color-mix(in srgb,var(--surface) 80%,transparent);border-radius:var(--corner-24);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 3px 16px #1925420a;font-size:var(--font-sm);white-space:nowrap}.refresh-symbol{display:grid;place-items:center;color:var(--brand)}.refresh-symbol svg{width:18px;height:18px}#refresh-indicator[data-loading=true] .refresh-symbol{animation:refresh-turn 1.15s linear infinite}@keyframes refresh-turn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#refresh-indicator[data-loading=true] .refresh-symbol{animation:none}}

/* The browser uses a real Pad workspace, rather than a scaled handset frame. */
@media(min-width:600px){body[data-surface=pad]{--gutter:28px}.my-layout,.settings-layout,.collections-layout{max-width:1120px}body[data-surface=pad] .my-layout,body[data-surface=pad] .settings-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}body[data-surface=pad] .my-layout .section-head,body[data-surface=pad] .settings-layout .section-head{margin-top:0}body[data-surface=pad] .profile-footer-cards{max-width:1120px;margin-top:24px}body[data-surface=pad] .page[data-page=my] .profile-hero{max-width:1120px}body[data-surface=pad] .page[data-page=my] .menu-group{max-width:100%}body[data-surface=pad] .calendar-day{min-height:72px}body[data-surface=pad] .sheet.half{width:min(88%,640px)}body[data-surface=pad] .collections-layout .section-head:first-child{margin-top:0}}
@media(min-width:1000px){body[data-surface=pad]{--gutter:32px}body[data-surface=pad] .collections-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:28px}body[data-surface=pad] .collections-layout .payment-list{grid-template-columns:1fr}body[data-surface=pad] #refresh-indicator{left:calc(50% + 46px)}body[data-surface=pad] .home-layout{gap:28px}}

/* Keep the collection action reachable while optional evidence scrolls. */
.sheet:has(.receipt-form) .sheet-body{overflow:hidden;display:flex;flex-direction:column}.sheet .receipt-form{min-height:0;overflow:auto;padding:0 2px;overscroll-behavior:contain;scrollbar-width:none}.sheet .receipt-form::-webkit-scrollbar{display:none}.receipt-form>button[type=submit]{position:sticky;bottom:0;flex-shrink:0;z-index:2;box-shadow:0 -8px 0 var(--surface);margin-top:4px}

input:not([type=checkbox]):not([type=radio]):focus,input:not([type=checkbox]):not([type=radio]):focus-visible,textarea:focus,textarea:focus-visible{outline:none;box-shadow:none;border-color:transparent;caret-color:var(--brand)}

/* Checklist and pinned inspiration reuse the existing surfaces, sheets and motion. */
.reminder-title{display:flex;align-items:center;gap:10px;min-width:0}
.memo-entry{min-height:40px;text-decoration:underline;text-underline-offset:5px;font-size:calc(13px * var(--text-scale));color:var(--muted);padding:8px 0;white-space:nowrap}
.memo-reminder{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}
.memo-reminder strong,.memo-reminder small{display:block}.memo-reminder small{margin-top:4px;color:var(--muted);font-size:calc(12px * var(--text-scale))}
.memo-reminder>.memo-reminder-icon{width:24px;height:24px;color:var(--brand);flex:none}
.memo-filters{display:flex;gap:6px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:none}.memo-filters .chip{flex:none}
.memo-progress{display:flex;justify-content:space-between;gap:8px;margin:4px 0 10px;color:var(--muted);font-size:calc(13px * var(--text-scale))}
.memo-row{display:flex;align-items:center;min-height:64px;gap:4px;padding:6px 10px;border-bottom:1px solid var(--line)}
.memo-row:last-child{border-bottom:0}.memo-check{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:50%}
.memo-check>span{display:grid;place-items:center;width:24px;height:24px;border:1.5px solid var(--muted);border-radius:50%;transition:background .24s ease,border-color .24s ease,transform .38s var(--selection-spring)}
.memo-check[aria-checked=true]>span{background:var(--brand);border-color:var(--brand);color:var(--on-brand);transform:scale(1.04)}
.memo-check svg{width:16px;height:16px}.memo-content{flex:1;min-width:0;text-align:left;padding:8px 4px;border-radius:var(--r-sm)}
.memo-content strong{font-size:calc(14px * var(--text-scale));white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.memo-content small{display:block;color:var(--muted);font-size:calc(12px * var(--text-scale));margin-top:4px}.memo-row[data-checked=true] .memo-content strong{text-decoration:line-through;color:var(--muted)}
.memo-editor textarea{min-height:150px;resize:vertical;font-size:max(16px,calc(16px * var(--text-scale)))}.memo-category-field{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px;border-radius:var(--radius);background:var(--surface);gap:12px}
.memo-category-list .menu-row{min-height:52px}.memo-category-list .grow{min-width:0;overflow-wrap:anywhere}
.idea-pin{display:inline-flex;align-items:center;gap:3px;font-size:max(11px,calc(11px * var(--text-scale)));color:var(--brand);margin-right:6px}.idea-pin svg{width:12px;height:12px}
.idea-card{-webkit-touch-callout:none;user-select:none}.idea-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.memo-check>span{transition:none}}

/* One grid and one touch model for the additional workflows. */
body[data-palette=morandi]{--brand:#526f62;--brand-soft:#e5eee7;--bg:#f1f4f0}
body[data-palette=moon]{--brand:#4c6886;--brand-soft:#e8eef5;--bg:#f5f6f8}
body[data-palette=black]{--brand:#bdc9da;--brand-soft:#2a323d;--bg:#111317;--surface:#1d2026;--soft:#272b33;--line:#323740}
body[data-theme=dark][data-palette=morandi]{--brand:#a6c7b3;--brand-soft:#263a30;--bg:#151a17}
body[data-theme=dark][data-palette=moon]{--brand:#a4bedc;--brand-soft:#293748;--bg:#151922}
body[data-theme=dark] .primary{color:#111722}
.empty-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px;margin:0 0 18px}.empty-actions button{font-size:var(--font-sm);padding:12px 8px}.empty-actions svg{width:18px;height:18px}
.session-head{gap:8px}.session-head h1{font-size:calc(23px * var(--text-scale));overflow-wrap:anywhere}.session-head .icon-button{margin-left:auto}.session-filter{display:flex;justify-content:space-between;gap:14px;margin-bottom:10px}.session-filter .chips{gap:4px;overflow:visible}.session-filter .chip{font-size:var(--font-sm);padding:8px 9px;min-width:0}.session-filter .cooperation-filter{margin-left:auto}
.modal-overlay.centered{align-items:center;justify-content:center;padding:20px}.sheet.center,.sheet-exit.center{max-height:80%;width:min(100%,420px);border-radius:var(--corner-20);padding:14px 18px 20px;border-bottom:1px solid var(--line)}.sheet.center .sheet-handle,.sheet-exit.center .sheet-handle{display:none}.creation-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.creation-choices button{background:var(--soft);border-radius:var(--corner-12);min-height:96px;display:grid;justify-items:center;align-content:center;gap:12px}.creation-choices svg{width:24px;height:24px;color:var(--brand)}.creation-choices strong{font-size:var(--font-body)}
.creation-choices.two{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}.creation-choices.two strong{font-size:var(--font-sm)}.inspiration-heading{margin-bottom:18px}.inspiration-heading .category-name{font-size:var(--font-body);min-height:40px;display:flex;align-items:center;gap:8px}#screen{touch-action:pan-y}
.editor-kind{font-size:var(--font-sm);color:var(--brand);display:flex;gap:8px;align-items:center}.duration-preview:empty{display:none}.shot-options button:last-child{font-size:var(--font-xs)}.row-action.deliver{background:var(--soft);color:color-mix(in srgb,var(--brand) 85%,var(--text))}.row-action.deliver svg{transform:rotate(-15deg)}.row-action.deliver.complete{color:var(--muted)}
.event-days,.day-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:8px}.event-day,.day-options button{min-width:0;width:100%;flex:initial;padding:10px 8px}.event-day strong{font-size:var(--font-sm)}.event-day small,.day-options small{font-size:var(--font-xs)}.day-timeline .event-days{padding:0}
.event-days:has(>.event-day:only-child),.day-options:has(>button:only-child){grid-template-columns:1fr}.event-days:has(>.event-day:nth-child(2):last-child),.day-options:has(>button:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.price-tabs{margin-bottom:10px}.price-grid{display:grid;gap:14px}.rate-row{display:grid;gap:14px}.rate-row h2{font-size:var(--font-label)}.rate-row .numeric-fields input,.rate-row>label input{background:var(--bg)}.rate-row>label{font-size:var(--font-sm);color:var(--muted)}.rate-row>label input{margin-top:7px}.rate-enable{color:var(--muted);font-size:var(--font-sm)}.rate-enable input{margin:0}.palette-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 22px}.palette-choice{display:grid;gap:10px;justify-items:center;padding:16px 4px;background:var(--surface);border-radius:var(--corner-12);border:1px solid transparent;font-size:var(--font-sm)}.palette-choice.active{border-color:var(--brand)}.palette-choice i{display:block;width:32px;height:32px;border-radius:50%;background:var(--swatch);border:1px solid #8190a329}
.nav-edit-list{background:var(--surface);border-radius:var(--corner-12);overflow:hidden;margin:18px 0}.nav-edit-row{display:flex;align-items:center;gap:10px;min-height:58px;padding:8px 12px}.nav-edit-row+.nav-edit-row{border-top:1px solid var(--line)}.nav-edit-row>.icon-button{width:36px;height:42px}.nav-edit-row>svg{width:20px;color:var(--muted)}.nav-available{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nav-available svg{width:20px}
.code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.payment-code{display:grid;gap:14px;padding:14px}.payment-code h2{font-size:var(--font-label)}.code-cover,.code-placeholder{aspect-ratio:1;width:100%;background:var(--soft);border-radius:var(--corner-10);display:grid;place-items:center;overflow:hidden;padding:0}.code-cover img{width:100%;height:100%;object-fit:contain;background:#fff}.payment-code .secondary{padding:10px 4px;font-size:var(--font-xs)}.qr-display{margin:20px auto;max-width:360px}.qr-display img{display:block;max-height:55dvh;width:100%;object-fit:contain;background:#fff;border-radius:var(--corner-12)}
.directory-thumb{width:48px;height:48px;border-radius:var(--corner-9);overflow:hidden;background:var(--soft);flex-shrink:0}.directory-thumb img{height:100%;width:100%}.directory-row .grow small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.entity-pictures{margin-bottom:20px}
.monthly-grid{display:grid;gap:14px;margin-top:12px}.monthly-grid h2{font-size:var(--font-body)}.monthly-chart{margin-top:20px}.chart-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;height:152px;margin-bottom:10px}.chart-month{display:grid;grid-template-rows:124px 20px;min-width:0;padding:0;}.chart-month small{font-size:var(--font-xs)}.chart-column{height:124px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--line)}.chart-column i{width:min(100%,18px);background:var(--brand);border-radius:4px 4px 0 0;min-height:1px}.expense-chart .chart-column i{background:var(--muted);opacity:.65}.monthly-chart>p{text-align:right}.monthly-grid .surface{min-width:0}
.import-requirement{margin:16px 0}.import-actions{display:grid;grid-template-columns:1fr;gap:12px;margin:20px 0}.import-preview-list{margin:12px 0}.import-preview-list small{display:block;margin-top:4px}.import-preview-list+button{margin-top:16px}.stat-row span{min-width:0;overflow-wrap:anywhere}
.upgrade-overlay{position:absolute;inset:0;background:var(--bg);z-index:65;display:flex;flex-direction:column;align-items:center;overflow:auto;padding:calc(var(--safe-top,env(safe-area-inset-top,0px)) + 40px) var(--gutter) calc(var(--safe-bottom,env(safe-area-inset-bottom,0px)) + 24px)}.upgrade-panel{display:flex;flex-direction:column;align-items:center;width:min(100%,480px);flex:1;gap:14px}.upgrade-symbol{display:grid;place-items:center;width:88px;height:88px;border-radius:var(--corner-26);background:var(--brand-soft);color:var(--brand);margin:20px 0}.upgrade-symbol svg{width:38px;height:38px}.upgrade-panel h1{font-size:calc(29px * var(--text-scale))}.upgrade-version{font-size:calc(19px * var(--text-scale));color:var(--brand)}.upgrade-notes{width:100%;margin-top:20px;flex:1;white-space:pre-wrap}.upgrade-actions{display:grid;gap:12px;width:100%;margin-top:28px}.upgrade-actions p:empty{display:none}
body[data-compact=true] .shoot-cell{padding-top:10px;padding-bottom:10px;min-height:100px}body[data-compact=true] .menu-row{min-height:54px;padding-top:10px;padding-bottom:10px}body[data-compact=true] .section-head{margin-top:var(--section-gap);margin-bottom:var(--heading-gap)}
.page{touch-action:pan-y}.page[data-dragging]{will-change:transform;box-shadow:0 0 24px #101b3310}.page.swipe-preview{pointer-events:none;content-visibility:visible}.page.swipe-preview .shoot-cell{content-visibility:visible}.page.swipe-preview .back-head{position:relative}.page.swipe-preview .motion-ghost{display:none}
@media(max-width:350px){.session-head h1{font-size:calc(21px * var(--text-scale))}.session-filter{gap:8px}.session-filter .chip{font-size:var(--font-xs);padding:8px 6px}.empty-actions button{font-size:var(--font-xs)}.empty-actions svg{width:16px}.code-grid{gap:8px}.payment-code{padding:10px}.event-day strong{font-size:var(--font-xs)}#dock button{font-size:var(--font-xs)}}
@media(min-width:600px){.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page[data-page=quick-prices]>.form{max-width:960px}.page[data-page=quick-prices]>.price-tabs{max-width:960px}.monthly-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1120px}.code-grid{max-width:720px}.import-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.empty-actions button{padding:12px}.session-filter .chip{padding:8px 14px}.session-filter{max-width:1120px}}
@media(max-height:450px){.upgrade-overlay{padding-top:18px}.upgrade-symbol{width:52px;height:52px;margin:0}.upgrade-panel{gap:8px}.upgrade-panel h1{font-size:calc(23px * var(--text-scale))}.upgrade-notes{margin-top:4px}.upgrade-actions{margin-top:12px}.creation-choices button{min-height:74px}}

.image-viewer{position:absolute;inset:0;z-index:150;background:#101214;color:white;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom);overflow:hidden}.image-viewer header{display:flex;align-items:center;gap:12px;height:60px}.image-stage{flex:1;display:grid;place-items:center;}.image-stage img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;transform-origin:center}.image-viewer>p{text-align:center;min-height:24px;font-size:var(--font-ui)}.conflict-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.conflict-options button{white-space:normal;overflow-wrap:anywhere;text-align:left}.conflict-options small{display:block;font-size:var(--font-sm);opacity:.7;margin-top:6px}.conflict-options .active{border-color:var(--brand);background:var(--brand-soft)}img[data-photo]{cursor:zoom-in}

.today-calendar{display:flex;align-items:baseline;gap:10px;min-height:48px;text-align:left;padding:0;flex-wrap:wrap}.today-calendar h1{margin:0}.today-calendar .caption{white-space:nowrap}.today-head{gap:8px}.shoot-cell{cursor:pointer}.ribbon-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.shoot-cell[data-completing]{overflow:hidden;pointer-events:none}.onsite-entry{white-space:nowrap;display:flex;gap:4px;align-items:center;padding:4px 6px;font-size:var(--font-sm)}.onsite-entry svg{width:15px;height:15px}.back-head:has(.onsite-entry) h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.onsite-date{display:flex;flex-direction:column;gap:8px;padding:12px 0 20px}.onsite-date span,.billing-caption{font-size:var(--font-sm);color:var(--muted)}.billing-caption{margin:8px 0 16px}.post-deadline{display:flex;align-items:center;justify-content:space-between;min-height:48px;font-size:var(--font-ui);margin-bottom:20px}.post-count-options{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}.post-count-options button{grid-column:span 3;min-height:42px}.post-count-options button:nth-child(-n+3){grid-column:span 4}.compact-money{margin-bottom:14px}.collection-date-filter{display:flex;align-items:center;gap:8px;margin:4px 0 18px;min-height:44px;padding:6px 12px;border-radius:var(--corner-10);background:var(--surface);font-size:var(--font-sm)}.collection-date-filter svg{width:17px;height:17px}.collection-date-filter span{flex:1;text-align:left}.collection-date-shortcuts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.payment-person{padding:12px}.payment-buttons{gap:8px}.payment-control{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:44px;padding:8px 10px;border-radius:var(--corner-9)}.payment-control span{font-size:var(--font-xs)}.payment-control strong{font-size:var(--font-ui);white-space:nowrap}.payment-context{margin:5px 0 8px}.receipt-links{margin-top:5px}.chart-bars{display:flex;overflow-x:auto;overflow-y:hidden;min-height:190px;padding:28px 4px 8px;align-items:end;gap:8px}.chart-month{flex:1 0 64px;min-width:64px;display:flex;flex-direction:column;align-items:center;gap:8px}.chart-column{width:20px;position:relative;overflow:visible!important}.chart-amount{position:absolute;left:50%;transform:translate(-50%,-5px);font-size:var(--font-xs);line-height:1.25;white-space:nowrap;color:var(--text);font-variant-numeric:tabular-nums}.stat-explanation{color:var(--muted);font-size:var(--font-sm);line-height:1.7;margin-top:16px}.stat-explanation p+p{margin-top:6px}.billing-setting{margin:20px 0 12px}.tour-overlay{position:absolute;inset:0;z-index:90;overflow:hidden}.tour-hole{position:absolute;border-radius:var(--corner-12);box-shadow:0 0 0 2000px #101626aa;pointer-events:none;border:1px solid #fff6}.tour-card{position:absolute;left:var(--gutter);right:var(--gutter);max-width:460px;margin:auto;background:var(--surface);padding:18px;border-radius:var(--corner-16);box-shadow:0 6px 40px #10162620}.tour-card small{font-size:var(--font-xs);color:var(--brand)}.tour-card h2{font-size:var(--font-section);margin:8px 0}.tour-card p{font-size:var(--font-ui);color:var(--muted);line-height:1.7;margin-bottom:16px}.tour-card .primary{min-height:40px;padding:8px 16px}.launch-overlay{background:var(--bg);padding:0;overflow:hidden}.launch-panel{width:100%;max-width:760px;margin:auto;display:flex;flex-direction:column;height:100%;padding:28px max(var(--gutter),20px) max(20px,env(safe-area-inset-bottom));box-sizing:border-box}.launch-panel header{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px;color:var(--muted);font-size:var(--font-xs)}.launch-kind{display:flex;align-items:center;gap:8px;color:var(--brand);font-size:var(--font-ui)}.launch-kind svg{height:20px;width:20px}.launch-panel h1{font-size:calc(28px * var(--text-scale));line-height:1.4;margin:0 0 16px;overflow-wrap:anywhere}.launch-version{font-size:calc(19px * var(--text-scale));margin-bottom:20px;color:var(--brand)}.launch-content{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding-bottom:16px;scrollbar-width:thin}.launch-content p{white-space:pre-wrap;font-size:var(--font-body);line-height:1.8}.launch-content figure{margin:16px 0}.launch-content img{width:100%;height:auto;border-radius:var(--corner-10)}.launch-content figcaption{color:var(--muted);font-size:var(--font-sm)}.launch-panel footer{padding-top:16px;border-top:1px solid var(--line);display:grid;gap:10px;background:var(--bg)}.launch-panel footer .help-text:empty{display:none}.launch-panel footer button{min-height:48px}@media(max-width:360px){.today-calendar{gap:4px}.today-calendar h1{font-size:calc(22px * var(--text-scale))}.today-calendar .caption{font-size:var(--font-xs)}.onsite-entry{font-size:var(--font-xs)}.onsite-entry svg{display:none}.payment-control{padding:8px 6px}.payment-control strong{font-size:var(--font-sm)}}@media(min-width:700px){.launch-panel{padding-top:40px}.launch-panel h1{font-size:calc(34px * var(--text-scale))}.chart-month{flex-basis:64px;min-width:64px}} 

.session-loading{min-height:80dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:30px;text-align:center}.session-loading>img{width:72px;height:72px;object-fit:contain;border-radius:var(--corner-18)}.session-loading>span,.session-loading>p{color:var(--muted);font-size:var(--font-ui);max-width:360px;line-height:1.8}.cloud-entry{margin-top:18px}.space-summary{padding:22px 0}.space-summary h1{font-size:calc(30px * var(--text-scale))}.space-summary progress{width:100%;height:7px;margin:16px 0 12px;accent-color:var(--brand)}.space-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.space-asset{border-radius:var(--corner-12);background:var(--surface);padding:12px;min-width:0}.space-asset strong,.space-asset small{display:block;overflow-wrap:anywhere}.space-asset strong{font-size:var(--font-ui);line-height:1.6}.space-asset small{font-size:var(--font-xs);color:var(--muted);margin-top:5px}.asset-preview{width:100%;height:130px;background:var(--bg);padding:0;border:0;margin-bottom:10px;border-radius:var(--corner-7);overflow:hidden}.asset-preview img{width:100%;height:100%;object-fit:cover}.asset-check{gap:6px;font-size:var(--font-sm);margin-top:12px;min-height:36px}.asset-actions{display:flex;flex-wrap:wrap;gap:6px}.space-files{grid-template-columns:1fr}.space-files .space-asset{display:flex;gap:12px;align-items:center}.space-files .asset-actions{max-width:90px}.recovery-summary{margin-top:18px}.recovery-summary>.between{padding:10px 0;border-bottom:1px solid var(--line)}.recovery-summary .primary{margin-top:20px}.asset-state{position:absolute;bottom:3px;left:3px;right:3px;z-index:2;font-size:var(--font-xs);line-height:1.4;background:#fffE;color:#586775;padding:3px 5px;border-radius:4px;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sort-photo-grip{position:absolute;left:3px;top:3px;background:#fffD;border-radius:4px;width:26px;height:26px;display:grid;place-items:center;z-index:3;touch-action:none}.sortable-photo.sorting{opacity:.35}.sort-target{outline:3px solid var(--brand);outline-offset:2px}.idea-note{margin:8px 0 18px}.album-grid{display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr))}.album-grid.count-1{grid-template-columns:1fr}.album-grid.count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.album-grid button{padding:0;border:0;aspect-ratio:1;overflow:hidden;border-radius:var(--corner-5);background:var(--bg)}.album-grid img{width:100%;height:100%;object-fit:cover}.album-grid.count-1 button{aspect-ratio:auto;max-height:460px}.album-grid.count-1 img{height:auto;max-height:460px;object-fit:contain}.idea-created{margin:12px 0 24px}.idea-files{margin:20px 0}.idea-files h2{font-size:var(--font-label)}.file-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}.file-row>.grow{text-align:left;padding:5px 0;border:0;background:transparent}.file-row strong,.file-row small{display:block;overflow-wrap:anywhere}.file-row strong{font-size:var(--font-ui);font-weight:500;line-height:1.5}.file-row small{font-size:var(--font-xs);color:var(--muted);margin-top:5px}.viewer-thumbnails{display:flex;flex-shrink:0;gap:7px;overflow:auto;padding:10px 16px calc(14px + var(--safe-bottom,env(safe-area-inset-bottom,0px)));justify-content:center}.viewer-thumbnails button{padding:0;border:2px solid transparent;background:none;min-width:48px;width:48px;height:48px;border-radius:var(--corner-6);overflow:hidden}.viewer-thumbnails button[aria-pressed=true]{border-color:#fff}.viewer-thumbnails img{width:100%;height:100%;object-fit:cover}.crop-overlay{position:absolute;inset:0;z-index:100;display:flex;flex-direction:column;background:#11141b;color:white;padding-top:var(--safe-top,env(safe-area-inset-top,0px))}.crop-overlay>header{height:62px;display:flex;justify-content:space-between;align-items:center;padding:8px 16px;flex-shrink:0}.crop-overlay>header button{color:white;background:transparent}.crop-stage{position:relative;flex:1;display:flex;align-items:center;justify-content:center;margin:12px 20px;overflow:hidden;touch-action:none}.crop-stage>img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;pointer-events:none}.crop-frame{position:absolute;border:1px solid white;box-shadow:0 0 0 2000px #0007;touch-action:none;cursor:move}.crop-frame:before,.crop-frame:after{content:'';position:absolute;inset:33.33% 0;border-top:1px solid #fff6;border-bottom:1px solid #fff6;pointer-events:none}.crop-frame:after{inset:0 33.33%;border:0;border-left:1px solid #fff6;border-right:1px solid #fff6}.crop-corner{position:absolute;width:28px;height:28px;border:3px solid white;touch-action:none}.crop-corner[data-corner=nw]{left:-3px;top:-3px;border-right:0;border-bottom:0}.crop-corner[data-corner=ne]{right:-3px;top:-3px;border-left:0;border-bottom:0}.crop-corner[data-corner=sw]{left:-3px;bottom:-3px;border-right:0;border-top:0}.crop-corner[data-corner=se]{right:-3px;bottom:-3px;border-left:0;border-top:0}.crop-overlay>footer{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:18px 12px calc(18px + var(--safe-bottom,env(safe-area-inset-bottom,0px)))}.crop-overlay>footer button{border:1px solid #ffffff40;color:white;background:#ffffff0c;min-height:44px;padding:8px 16px;border-radius:var(--corner-9)}.crop-overlay>footer span{width:100%;text-align:center;font-size:var(--font-xs);color:#c4c6cf;padding-top:7px}.sheet.half{height:auto;min-height:0;max-height:calc(100% - var(--safe-top,env(safe-area-inset-top,0px)) - 24px)}.sheet{max-height:calc(100% - var(--safe-top,env(safe-area-inset-top,0px)) - 24px)}.sheet .sheet-body{max-height:calc(100dvh - var(--safe-top,env(safe-area-inset-top,0px)) - var(--safe-bottom,env(safe-area-inset-bottom,0px)) - 130px);padding-bottom:4px}.sheet .sheet-footer{position:sticky;bottom:0;background:var(--surface);padding-top:12px;margin-top:10px}.sheet:has([data-search-scope]) .sheet-body{min-height:180px}@media(min-width:700px){.space-assets:not(.space-files){grid-template-columns:repeat(3,minmax(0,1fr))}.space-files{grid-template-columns:repeat(2,minmax(0,1fr))}.crop-stage{max-width:1000px;width:calc(100% - 40px);align-self:center}.space-summary{max-width:650px}.album-grid{max-width:900px}.sheet.half{height:auto}}@media(prefers-reduced-motion:reduce){.sorting{transition:none}}

.sortable-photo{touch-action:none}.asset-preview img:not([src]){font-size:var(--font-xs);line-height:1.5}

.image-viewer{padding-top:var(--safe-top,env(safe-area-inset-top,0px));padding-bottom:0}.image-viewer header{flex-shrink:0}
.cloud-quota-warning{padding:16px;margin:0 0 16px}.cloud-quota-warning p{font-size:var(--font-sm);line-height:1.6;margin:8px 0}.cloud-quota-warning strong{color:var(--danger,#c6383e)}
/* A missing or loading image still exposes a usable preview target. */
.idea-gallery button{min-height:44px}

/* v0.9.1: scoped corrections using the existing spacing, colour and touch system. */
.shoot-form .time-fields{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);gap:8px;align-items:center}
.time-dash{text-align:center;color:var(--muted);font-size:var(--font-body);line-height:1}
.shoot-form .shoot-picker{min-width:0;gap:0}
.shoot-form .picker-button{min-height:46px;padding:10px 12px;gap:6px;font-size:var(--font-body)}
.shoot-form .picker-button svg{width:16px;flex-shrink:0}
.shoot-form .scene-date-field .day-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.shoot-form .scene-date-field .day-options button{min-width:0;padding:8px 4px;font-size:var(--font-ui)}
.onsite-date{flex-direction:row;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 10px;min-height:32px}
.onsite-date strong{font-size:var(--font-label)}.onsite-date span{font-size:var(--font-sm);white-space:nowrap}
.cloud-entry{margin:0 0 22px}
.idea-note.document-content{margin:8px 0 18px}
.file-row{flex-wrap:wrap;column-gap:8px;row-gap:2px}
.file-row>.grow{flex-basis:calc(100% - 90px);min-width:0}
.file-row>.icon-button{margin-left:auto}
.file-actions{display:flex;gap:16px;padding-left:30px;order:4;width:100%}
.file-actions button,.asset-actions .text-action{min-height:44px;padding:8px 0}
.space-files .asset-actions{max-width:none;gap:14px;flex-shrink:0}
.crop-stage>.crop-frame{opacity:1}.crop-closing{z-index:99}
.crop-overlay [data-action=crop-done]{width:44px;height:44px;padding:10px}
.crop-overlay [data-action=crop-done]:disabled{opacity:.35}
.image-stage{overflow:hidden;touch-action:none}
.image-stage>.viewer-leaving{position:absolute;inset:0;margin:auto;pointer-events:none}
.file-viewer{position:absolute;inset:0;z-index:100;background:var(--bg);display:flex;flex-direction:column;padding-top:var(--safe-top,env(safe-area-inset-top,0px));padding-bottom:var(--safe-bottom,env(safe-area-inset-bottom,0px))}
.file-viewer header{display:flex;align-items:center;gap:8px;min-height:58px;padding:6px 16px;background:var(--surface);flex-shrink:0}
.file-viewer header strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-body)}
.file-viewer iframe{flex:1;width:100%;min-height:0;border:0;background:#fff}
.file-compat{margin:auto;padding:28px;max-width:500px;line-height:1.8;text-align:center}
.file-compat p{color:var(--muted);font-size:var(--font-ui);margin:14px 0 24px}.file-compat .primary{display:inline-block}
@media(max-width:350px){.shoot-form .picker-button{font-size:var(--font-ui);padding:10px}.space-files .space-asset{flex-wrap:wrap}.space-files .asset-actions{padding-left:30px}}

/* Collections use the same type and spacing tokens as the rest of the app. */
.page[data-page="cloud-list"]:has(.managed-album) {
  padding:0 0 calc(92px + var(--safe-bottom,env(safe-area-inset-bottom,0px)));
}
.album-toolbar {
  display:flex;align-items:center;gap:14px;
  padding:14px 20px 6px;
}
.album-toolbar .icon-button,[data-album-delete] {
  width:48px;height:48px;border-radius:50%;
  background:color-mix(in srgb,var(--surface) 82%,transparent);
  border:1px solid color-mix(in srgb,var(--surface) 90%,var(--line));
  box-shadow:0 4px 16px #17233508;backdrop-filter:blur(12px);
}
.album-toolbar .icon-button svg {width:23px;height:23px}
.album-title {font-size:calc(27px * var(--text-scale));margin:18px 22px 0;line-height:1.35}
.album-selection-count {height:26px;margin:5px 22px 12px;font-size:var(--font-sm);color:var(--muted)}
.album-day>header {display:flex;justify-content:space-between;align-items:center;padding:16px 22px 12px}
.album-day h2 {font-size:var(--font-section);line-height:1.4}
.album-day>header small {color:var(--muted);font-size:var(--font-sm)}
.managed-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}
.managed-photo {position:relative;aspect-ratio:1;min-width:0;overflow:hidden;padding:0;border:0;border-radius:0;background:var(--soft)}
.managed-photo>img {width:100%;height:100%;object-fit:cover;display:block}
.selection-ring {position:absolute;right:9px;bottom:9px;width:23px;height:23px;border-radius:50%;border:2px solid #ffffffb3;background:#15212c30;display:grid;place-items:center}
.selection-ring svg {width:16px;height:16px;opacity:0;color:var(--on-brand,#fff)}
.managed-photo.selected .selection-ring {background:var(--brand);border-color:var(--surface)}
.managed-photo.selected .selection-ring svg {opacity:1}
.managed-photo.selected>img {transform:scale(.94);border-radius:4px}
.managed-photo>img {transition:transform .22s ease,border-radius .22s ease}
.managed-photo>small {position:absolute;left:4px;bottom:5px;max-width:70%;font-size:var(--font-xs);background:#121a28a3;color:white;border-radius:3px;padding:2px 4px}
.album-bottom {position:sticky;bottom:calc(-92px - var(--safe-bottom,env(safe-area-inset-bottom,0px)));display:flex;justify-content:flex-end;padding:18px 22px calc(18px + var(--safe-bottom,env(safe-area-inset-bottom,0px)));pointer-events:none;z-index:4}
.album-bottom [data-album-delete] {pointer-events:auto;width:58px;height:58px;color:var(--danger,#b44747)}
.album-bottom [data-album-delete]:disabled {color:var(--muted);opacity:.5}
.managed-album {min-height:55dvh}
.inspiration-editor {gap:22px}
.inspiration-editor>section>h2,.inspiration-editor .between h2 {font-size:var(--font-label);margin-bottom:10px}
.inspiration-editor .between>small {font-size:var(--font-sm);color:var(--muted)}
.inspiration-editor .photo-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.inspiration-editor .photo-tile,.inspiration-editor .album-add {border-radius:var(--corner-6)}
.inspiration-editor .photo-tile img {object-fit:cover}
.inspiration-editor .photo-grid>.photo-tile:nth-child(9n) {margin-bottom:4px}
.idea-note-input {min-height:144px;resize:vertical;background:var(--surface);line-height:1.8;padding:14px;border:1px solid var(--line);border-radius:var(--corner-10);width:100%}
.file-section-heading {display:flex;align-items:center;gap:8px;margin-bottom:8px}
.file-section-heading .icon-button {width:40px;height:40px}
.inspiration-editor .idea-files {margin:0}
.recovery-intro {margin-top:16px;padding:20px}
.recovery-intro h2 {font-size:calc(18px * var(--text-scale));margin:12px 0 8px}
.recovery-intro .caption {line-height:1.8;margin:8px 0 18px}
.recovery-symbol {width:42px;height:42px;border-radius:var(--corner-10);background:var(--soft);display:grid;place-items:center;color:var(--brand)}
.recovery-symbol svg {width:23px;height:23px}
/* A grid item's intrinsic height must never size the original-image viewport. */
.image-stage {flex:1 1 0;min-width:0;min-height:0;display:block;position:relative}
.image-stage>img {position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.crop-stage {flex:1 1 0;min-height:0}
.crop-stage>img {flex:none;max-width:none;max-height:none;width:1px;height:1px}
.viewer-thumbnails {justify-content:flex-start;min-height:76px}
.viewer-thumbnails>button:first-child {margin-left:auto}
.viewer-thumbnails>button:last-child {margin-right:auto}
body[data-palette="jade"] {--bg:#D8F3DC;--surface:#F4FBF5;--soft:#CBE8D2;--text:#1B4332;--muted:#466456;--brand:#1B4332;--brand-soft:#B7DEC4;--line:#1B43321A;--on-brand:#D8F3DC;--palette-accent:#40916C}
body[data-palette="latte"] {--bg:#F2E8CF;--surface:#FCF8EE;--soft:#E7DBC0;--text:#3E2C23;--muted:#6F5945;--brand:#3E2C23;--brand-soft:#E1D2B7;--line:#3E2C231A;--on-brand:#F2E8CF;--palette-accent:#A68A64}
body[data-palette="navy"] {--bg:#F1FAEE;--surface:#FEFFFC;--soft:#E1EEE8;--text:#1D3557;--muted:#4A6275;--brand:#1D3557;--brand-soft:#D6E6EB;--line:#1D35571A;--on-brand:#F1FAEE;--palette-accent:#457B9D}
body[data-theme="dark"][data-palette="jade"] {--bg:#102A20;--surface:#1B4332;--soft:#28553F;--text:#D8F3DC;--muted:#AFD5BA;--brand:#D8F3DC;--brand-soft:#28553F;--line:#D8F3DC26;--on-brand:#1B4332}
body[data-theme="dark"][data-palette="latte"] {--bg:#271D18;--surface:#3E2C23;--soft:#503C30;--text:#F2E8CF;--muted:#D1BA97;--brand:#F2E8CF;--brand-soft:#503C30;--line:#F2E8CF26;--on-brand:#3E2C23}
body[data-theme="dark"][data-palette="navy"] {--bg:#14253D;--surface:#1D3557;--soft:#29486B;--text:#F1FAEE;--muted:#BBCED9;--brand:#F1FAEE;--brand-soft:#29486B;--line:#F1FAEE26;--on-brand:#1D3557}
body:is([data-palette="jade"],[data-palette="latte"],[data-palette="navy"]) .primary {background:var(--brand);color:var(--on-brand)}
body:is([data-palette="jade"],[data-palette="latte"],[data-palette="navy"]) .toast {border-color:color-mix(in srgb,var(--palette-accent) 35%,transparent)}
@media(min-width:700px) {
  .managed-grid {grid-template-columns:repeat(6,minmax(0,1fr))}
  .album-title,.album-toolbar,.album-day>header {padding-left:28px;padding-right:28px}
  .album-title {margin-left:0}
  .inspiration-editor {max-width:820px;margin-left:auto;margin-right:auto}
}
@media(prefers-reduced-motion:reduce) {.managed-photo>img {transition:none}}

/* Shape changes only affect rectangles; avatars, rings and notices stay circular. */
:root {
  --corner-5:5px;--corner-6:6px;--corner-7:7px;--corner-9:9px;
  --corner-10:10px;--corner-12:12px;--corner-13:13px;--corner-14:14px;
  --corner-16:16px;--corner-18:18px;--corner-20:20px;--corner-22:22px;
  --corner-24:24px;--corner-26:26px;
  --section-gap:24px;--heading-gap:12px;--content-gap:16px;
}
body[data-corners="small"] {
  --radius:8px;
  --corner-5:4px;--corner-6:4px;--corner-7:4px;--corner-9:6px;
  --corner-10:6px;--corner-12:6px;--corner-13:6px;--corner-14:8px;
  --corner-16:8px;--corner-18:10px;--corner-20:12px;--corner-22:12px;
  --corner-24:12px;--corner-26:14px;
}
body[data-compact="true"] {--section-gap:20px;--heading-gap:10px}
.corner-options {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.corner-choice {
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;
  padding:14px;border:1px solid var(--line);border-radius:var(--corner-12);
  background:var(--surface);text-align:left;min-height:112px;font-size:var(--font-ui);
}
.corner-choice.active {border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.corner-choice>svg {width:18px;height:18px}
.corner-example {grid-column:1/-1;display:grid;gap:8px;padding:10px;background:var(--soft);border-radius:var(--corner-16)}
.corner-example i {display:block;height:10px;width:65%;background:var(--muted);opacity:.25;border-radius:4px}
.corner-example i:last-child {width:100%;height:18px;background:var(--brand);opacity:.15;border-radius:var(--corner-8)}
.corner-example[data-style="small"] {border-radius:var(--corner-8)}
.corner-example[data-style="small"] i:last-child {border-radius:4px}
.section-head:first-child {margin-top:0}
body[data-compact="true"] .section-head:first-child {margin-top:0}
.my-layout,.settings-layout {display:grid;row-gap:var(--section-gap)}
.my-layout>section,.settings-layout>section {min-width:0}
.page[data-page="conventions"] .event-flow+.menu-group {margin-top:var(--content-gap)}
.page[data-page="personalize"] .palette-grid {margin:0}
.form-error:empty {display:none}
.editor-main>.duration-preview,.editor-main>.billing-caption {margin:-12px 0 0}
.editor-side>.photo-caption {margin:-12px 0 0}
.editor-side>.save-footer {margin-top:0}
.inspiration-editor {gap:20px}
.inspiration-editor .between h2 {margin-bottom:0}
.inspiration-editor>section>.between {margin-bottom:10px}
.inspiration-editor .file-section-heading {margin-bottom:10px}
.inspiration-editor .file-section-heading h2 {margin:0}
.auth-back {display:flex;align-items:center;min-height:44px;margin:-8px 0 0 -8px}
.auth-back+.auth-brand {margin-top:12px}

/* Each setup step fits a normal phone; short screens retain a scroll fallback. */
.page[data-page="onboarding"]{padding:0!important;overflow:hidden}
.setup-slider-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;font-size:var(--font-body);border-bottom:1px solid var(--line)}
.setup-slider-row .switch-toggle{flex:none}
.option-field{border:0;padding:0;margin:0 0 20px;min-width:0}
.option-field legend{font-size:var(--font-ui);font-weight:600;margin-bottom:10px}
.option-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.option-value{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--corner-8,8px);min-width:0;height:46px;overflow:hidden}
.option-value input{min-width:0;width:100%;padding:8px;border:0;background:none;height:44px;font-size:var(--font-body)}
.option-value>span{font-size:var(--font-xs);color:var(--muted);white-space:nowrap}
.option-value button{display:grid;place-items:center;min-width:44px;min-height:44px;color:var(--muted);padding:0}
.option-value button svg{width:16px;height:16px}
.option-custom,.option-add{display:flex;align-items:center;justify-content:center;min-height:46px;background:var(--soft);border-radius:var(--corner-8,8px);font-size:var(--font-ui)}
.option-add{border:1px dashed var(--line)}
.rate-enable{display:flex;align-items:center;gap:8px}
.shot-options.post-count-options{display:flex;flex-wrap:wrap}
.shot-options.post-count-options button{flex:1;min-width:50px}

/* Use the same normal control height as the adjacent toolbar and form actions. */
.session-filter .chip,.chips .chip {min-height:44px;min-width:44px}
.workflow-filters button,.stage-filter button,.progress-filter button,.progress-tabs button {min-height:44px}
.page .text-action,.payment-person-head,.payment-control,.collection-date-filter {min-height:44px}
.avatar-button:not(.large) {width:44px;height:44px;padding:2px}
.photo-preview {display:block;width:100%;height:100%;padding:0;border-radius:inherit}
.photo-preview:focus-visible {outline:2px solid var(--brand);outline-offset:-3px}
.photo-tile .remove-photo {width:44px;height:44px;background:transparent}
.photo-tile .remove-photo::before {content:"";position:absolute;inset:8px;border-radius:50%;background:#1822339c;pointer-events:none}
.photo-tile .remove-photo svg {position:relative}

/* One content column per page. Children no longer each choose a different axis. */
#screen > .page {
  --page-content:1120px;
  container:page / inline-size;
  --page-top:20px;
  --page-inline:max(var(--gutter),calc((100% - var(--page-content)) / 2));
  padding:var(--page-top) var(--page-inline) 28px;
}
#screen > .page > * {
  max-width:100%;
  margin-left:0;
  margin-right:0;
  min-width:0;
}
#screen > .page > :is(.form,.shoot-form,.palette-grid,.my-layout,.settings-layout) {
  width:100%;
  max-width:none;
}
#screen > .page > .back-head {
  width:100%;
  max-width:none;
  top:calc(-1 * var(--page-top));
  margin:calc(-1 * var(--page-top)) 0 var(--section-gap);
  padding:10px 0;
  min-height:64px;
}
.page .back-head h2,.page .page-header h1 {
  min-width:0;
  overflow-wrap:anywhere;
}
.page .back-head > button {flex-shrink:0}
.page :is(.my-layout,.settings-layout) .section-head {max-width:none}
.page :is(.my-layout,.settings-layout) .menu-group {max-width:none}
.page .profile-hero {min-width:0}
.page :is(.profile-hero,.profile-content) :is(h1,small,p) {overflow-wrap:anywhere}
.page .cloud-entry {width:100%;margin-top:0;margin-bottom:var(--section-gap)}
.page .palette-grid {margin-top:0;margin-bottom:0}
.page .profile-content {padding-top:8px;padding-bottom:24px}
.page .profile-content > p {max-width:100%;overflow-wrap:anywhere}
.page .form :is(input,textarea,select),.page .form-row {min-width:0}
.page .form label {overflow-wrap:anywhere}
.page .section-head {min-height:24px}
.page .section-head > :first-child {min-width:0}
.page .detail-layout {display:grid;row-gap:var(--section-gap)}
.page .detail-layout > section:empty {display:none}

/* Reading/settings pages stay readable; operational pages keep the wider grid. */
#screen > .page:is([data-page="personalize"],[data-page="record-settings"],[data-page="quick-fill"],[data-page="quick-fill-editor"],[data-page="custom-rules"],[data-page="custom-services"],[data-page="custom-cooperations"],[data-page="settings"],
  [data-page="nav-settings"],[data-page="home-settings"],[data-page="reminder-settings"],
  [data-page="quick-options"],[data-page="quick-prices"],[data-page="quick-collect"],
  [data-page="order-import"],[data-page="order-export"],[data-page="migration"],
  [data-page="recovery"],[data-page="local-repair"],[data-page="drafts"],
  [data-page="snapshots"],[data-page="sync-conflict"],[data-page="cloud-space"],
  [data-page="feedback"],[data-page="my-feedback"],[data-page="inbox"],
  [data-page="documents"],[data-page="document"],[data-page="version"],
  [data-page="updates"],[data-page="sponsor"],[data-page="author"],
  [data-page="note"],[data-page="entity"],[data-page="entity-editor"],
  [data-page="expense-editor"]) {--page-content:760px}
#screen > .page[data-page="my"] {--page-content:1040px}
#screen > .page[data-page="profile"] {--page-content:560px}
#screen > .page[data-page="profile-editor"] {--page-content:640px}
#screen > .page[data-page="auth"] {--page-content:420px}
#screen > .page[data-page="auth"] > * {width:100%}
#screen > .page[data-page="auth"] > .auth-back {width:auto;align-self:flex-start}
#screen > .page[data-page="idea-editor"] {--page-content:820px}
#screen > .page[data-page="idea"] {--page-content:900px}

/* Gallery edges are intentionally flush on phones, bounded on wide displays. */
#screen > .page[data-page="cloud-list"] > :is(.album-title,.album-selection-count){padding-inline:22px}
@media(min-width:700px){#screen > .page[data-page="cloud-list"] > :is(.album-title,.album-selection-count){padding-inline:28px}}
#screen > .page[data-page="cloud-list"]:has(.managed-album) {
  padding:0 max(0px,calc((100% - 1120px) / 2)) calc(92px + var(--safe-bottom,0px));
}
#screen > .page[data-page="onboarding"] {padding:0}
#screen > .page[data-page="onboarding"] > .setup-v111 {
  max-width:640px;
  margin-inline:auto;
}
.page .managed-album {width:100%}
.page .album-footer {max-width:1120px}

@media(min-width:600px) {
  #screen > .page {--page-top:28px}
  .page[data-page="my"] .my-layout {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
  }
  .page[data-page="my"] .my-layout > section > .section-head:first-child {margin-top:0}
  /* A settings category is a single reading stream, rather than uneven columns. */
  #screen > .page .settings-layout {grid-template-columns:1fr;gap:var(--section-gap)}
}
@media(min-width:1000px) {
  #dock button {min-height:64px}
}
@media(max-width:599px) {
  .page .my-layout {grid-template-columns:1fr}
}
@media(max-height:450px) and (orientation:landscape) {
  #screen > .page {--page-top:12px}
  #screen > .page > .back-head {min-height:52px;padding-block:4px}
}

/* Task-based adaptive layout. Queries use the page's real content width and text size. */
#screen > .page :is(.home-layout,.convention-layout,.editor-layout){display:grid;grid-template-columns:minmax(0,1fr);gap:var(--section-gap);max-width:none}
#screen > .page .editor-side{position:static;align-self:start;min-width:0}
#screen > .page .editor-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}
#screen > .page .editor-actions .form-error{flex-basis:100%;margin:0}
#screen > .page .editor-actions :is(.primary,.danger-button){width:100%;margin:0}
#screen > .page .convention-layout > section{min-width:0}
#screen > .page .convention-layout > section > .section-head:first-child{margin-top:0}
#screen > .page .event-time-groups{display:grid;grid-template-columns:minmax(0,1fr)}
#screen > .page .calendar-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
#screen > .page :is(.calendar-main,.calendar-agenda){min-width:0}
#screen > .page .calendar-agenda > .section-head:first-child{margin-top:0}
#screen > .page:is([data-page="sessions"],[data-page="projects"]) .shoot-list{display:block;background:none;overflow:visible}
#screen > .page .home-more{margin-top:12px}
#screen > .page :is(.event-days,.scene-date-field .day-options):has(>button:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@container page (min-width:44em){
 #screen > .page :is(.event-days,.scene-date-field .day-options):has(>button:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
}
@container page (min-width:68em){
 #screen > .page .home-layout{grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:20px}
 #screen > .page .editor-layout{grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr);gap:20px}
 #screen > .page .editor-actions :is(.primary,.danger-button){width:auto;min-width:180px}
 #screen > .page .calendar-layout[data-calendar-scale="day"]{grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:20px}
 #screen > .page .calendar-layout[data-calendar-scale="day"] .calendar-agenda{padding-top:0}
}
@container page (min-width:70em){
 #screen > .page:is([data-page="sessions"],[data-page="projects"]) .shoot-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
}

/* Shared list/detail shell: one selected record, the same renderers at every size. */
#screen > .page:is([data-page="sessions"],[data-page="projects"],[data-page="inspiration"]){--page-content:1200px}
#screen > .page .adaptive-layout{--adaptive-wide:0;display:block;min-width:0}
#screen > .page .adaptive-master{min-width:0}
#screen > .page .adaptive-detail{display:none;min-width:0}
#screen > .page .adaptive-layout.has-selection .adaptive-master{display:none}
#screen > .page .adaptive-layout.has-selection .adaptive-detail{display:block}
#screen > .page .adaptive-detail .detail-layout{grid-template-columns:minmax(0,1fr);gap:12px;max-width:none}
#screen > .page .adaptive-detail .back-head{display:flex;align-items:center;gap:12px;min-height:56px;margin:0 0 12px}
#screen > .page .adaptive-detail :is(.detail-actions,.idea-gallery,.idea-note){max-width:100%;min-width:0}
#screen > .page .adaptive-selection-note{display:none}
#screen > .page .adaptive-placeholder{display:grid;place-content:center;min-height:240px;text-align:center;padding:24px;color:var(--muted)}
#screen > .page .adaptive-placeholder h2{font-size:var(--font-section);color:var(--text);margin:0 0 8px}
#screen > .page .adaptive-master .adaptive-selected{outline:1px solid var(--brand);outline-offset:-1px;background:var(--brand-soft)}
#screen > .page[data-page="inspiration"] .adaptive-master{max-width:760px;margin-inline:auto}
#screen > .page .appearance-layout{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
#screen > .page .appearance-preview-pane{min-width:0}
#screen > .page .appearance-settings-pane{min-width:0}
#screen > .page .appearance-settings-pane > .section-head:first-child{margin-top:0}
@media(min-width:1100px){#screen > .page[data-page="personalize"]{--page-content:1120px}}
@container page (min-width:68em){
 #screen > .page .adaptive-layout{--adaptive-wide:1;display:grid;grid-template-columns:minmax(320px,.95fr) minmax(0,1.55fr);gap:20px;height:max(220px,calc(100dvh - 56px - var(--safe-top,0px) - var(--safe-bottom,0px)))}
 #screen > .page .adaptive-layout :is(.adaptive-master,.adaptive-detail){display:block!important;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin;min-height:0;padding-bottom:16px}
 #screen > .page[data-page="inspiration"] .adaptive-master{max-width:none;margin:0}
 #screen > .page .adaptive-selection-note{display:block;margin:0 0 8px}
 #screen > .page .adaptive-detail{border-left:1px solid var(--line);padding-left:20px}
 #screen > .page .adaptive-master .page-header{align-items:center;min-height:56px}
 #screen > .page .adaptive-master .page-header h1{font-size:var(--font-section);overflow-wrap:anywhere}
 #screen > .page .adaptive-master .idea-thumbnails{max-width:42%}
 #screen > .page .adaptive-master .workflow-filters{width:100%}
 #screen > .page .adaptive-master .progress-pane{min-width:0}
 #screen > .page .adaptive-master .shoot-list{display:block}
 #screen > .page .adaptive-master .shoot-cell{grid-template-columns:54px minmax(0,1fr);padding:12px 10px;gap:10px}
 #screen > .page .adaptive-master .shoot-cell .row-action{display:none}
 #screen > .page .adaptive-master .shoot-cell .note{display:none}
 #screen > .page .adaptive-master .shoot-cell .shoot-content{padding:0;min-width:0}
 #screen > .page .adaptive-master .shoot-cell .person-title{overflow-wrap:anywhere}
 #screen > .page .adaptive-master .shoot-cell .role{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

 #screen > .page .appearance-layout{grid-template-columns:minmax(280px,.85fr) minmax(0,1.3fr);gap:20px;align-items:start}
 #screen > .page .appearance-preview-pane{position:sticky;top:70px}
}

.page .legal-footer {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;padding:12px 0 max(12px,env(safe-area-inset-bottom));width:100%}
.legal-footer > button {min-height:44px;text-align:center;justify-content:center;white-space:normal}
.auth-consent {border:0;padding:0;margin:4px 0 16px;min-width:0}
.auth-consent legend {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.auth-consent .consent-row {display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;min-height:44px}
.auth-consent .consent-row label {position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;cursor:pointer;font-size:var(--font-ui)}
.auth-consent .consent-row input {position:absolute;left:0;top:50%;transform:translateY(-50%);opacity:0;width:20px;height:20px;min-height:20px;padding:0;margin:0;cursor:pointer;z-index:1}
.auth-consent .consent-mark {display:grid;place-items:center;flex:none;width:20px;height:20px;border:1.5px solid var(--muted);border-radius:50%;background:var(--surface);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.auth-consent .consent-mark svg {width:17px;height:17px;overflow:visible}
.auth-consent .consent-mark path {stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:17;stroke-dashoffset:17;opacity:0;transition:stroke-dashoffset .24s ease,opacity .16s ease}
.auth-consent input:checked + .consent-mark {border-color:var(--brand);background:var(--brand);animation:consent-pop .3s cubic-bezier(.2,.8,.3,1)}
.auth-consent input:checked + .consent-mark path {stroke-dashoffset:0;opacity:1}
.auth-consent input:focus-visible + .consent-mark {outline:2px solid var(--brand);outline-offset:3px}
.auth-consent[data-motion="false"] .consent-mark,.auth-consent[data-motion="false"] .consent-mark path {animation:none;transition:none}
@keyframes consent-pop {0%{transform:scale(.88)}65%{transform:scale(1.1)}100%{transform:scale(1)}}
.auth-consent .consent-row .text-action {font-size:var(--font-ui);min-height:44px;padding:4px 0;white-space:normal}
.auth-consent :focus-visible,.legal-footer :focus-visible {outline:2px solid var(--brand);outline-offset:3px}
#screen > .page:is([data-page="legal-terms"],[data-page="legal-privacy"]) {--page-content:760px}
.legal-document {line-height:1.8;overflow-wrap:anywhere;user-select:text}
.legal-document h1 {font-size:calc(22px * var(--text-scale));line-height:1.4;margin:4px 0 20px}
.legal-document h2 {font-size:var(--font-section);line-height:1.5;margin:28px 0 12px}
.legal-document p {font-size:var(--font-label);line-height:1.8;margin:0 0 16px}

.wish-home-entry {display:flex;justify-content:flex-end;margin:0 0 12px}
.wish-home-entry button {display:inline-flex;align-items:center;gap:6px;font-size:var(--font-ui);min-height:36px;padding:6px 8px}
.wish-home-entry svg {width:16px;height:16px}
[data-action="inbox"] {position:relative}
.wish-unread {position:absolute;right:7px;top:6px;width:7px;height:7px;background:var(--danger,#bf4545);border-radius:50%;box-shadow:0 0 0 2px var(--bg);pointer-events:none}
.sheet.wish-sheet {height:min(50dvh,460px);max-height:calc(100dvh - 24px);min-height:300px;display:flex;flex-direction:column;will-change:transform,opacity}
.wish-sheet .sheet-body {flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:max(20px,env(safe-area-inset-bottom))}
.wish-form {display:flex;flex-direction:column;gap:14px;flex:1;min-height:0}
.wish-copy {font-size:var(--font-ui);color:var(--muted);margin:0;line-height:1.6}
.wish-input-label {position:relative;display:flex;flex:1;min-height:90px}
.wish-input-label > .sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wish-sheet textarea {resize:none;flex:1;width:100%;min-height:90px;margin:0;line-height:1.7;padding:12px;border:1px solid var(--line);border-radius:var(--corner-12);background:var(--soft);color:var(--text);font:inherit}
.wish-actions {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:auto;flex-shrink:0}
.wish-actions button {min-height:44px;white-space:normal}
.wish-result-copy {white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;margin:0 0 18px}
@media(max-height:560px){.sheet.wish-sheet {height:calc(100dvh - 18px);min-height:0}.wish-form {gap:10px}.wish-copy {display:none}}

.direct-profile{max-width:640px;margin:0 auto}.profile-introduction textarea{min-height:132px}.profile-avatar-row{display:flex;align-items:center;gap:20px}.profile-avatar-row>div{display:grid;gap:10px}.profile-logout{max-width:640px;display:block;margin:32px auto 0}.custom-rules,.scene-packages{display:grid;gap:16px}.custom-service,.custom-rules>.surface{padding:16px;display:grid;gap:16px}.custom-service select{padding:12px;background:var(--bg);border:0;border-radius:var(--corner-10)}.custom-preset,.custom-extra{padding-top:16px;border-top:1px solid var(--line);display:grid;gap:12px}.scene-package{padding:14px}.scene-package header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.custom-order{grid-column:1/-1;padding:16px;display:grid;gap:12px}.inline-update:empty{display:none}.inline-update{padding:14px;display:grid;gap:12px}.person-options{flex-wrap:wrap}.person-options .mode-card{min-width:70px}.person-options .mode-card[aria-pressed=true]{background:var(--brand-soft);color:var(--brand)}.profile-avatar-row .avatar-button{overflow:hidden}.direct-profile input:focus-visible,.direct-profile textarea:focus-visible{outline:none;box-shadow:none}
.session-filter{flex-wrap:wrap;align-items:flex-start}.session-filter>.chips{min-width:0;max-width:100%;flex-wrap:wrap}.session-filter .chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-collection-types{flex-wrap:wrap;max-width:100%}.custom-collection-types .chip{max-width:100%;overflow:hidden;text-overflow:ellipsis}.creation-choices>button{min-width:0;overflow-wrap:anywhere}

/* Shared refinements for the web, foldables, tablets and packaged Android UI. */
body[data-theme=light][data-palette=black]{--brand:#282b32;--brand-soft:#e8e9ed;--bg:#f5f6f8;--surface:#fff;--soft:#edeef2;--line:#dfe2e8;--text:#22252c;--muted:#6e7582;--faint:#8a919d;color-scheme:light}
.today-head{align-items:center;min-height:48px}
.today-head>.icon-button,.today-head>.avatar-button{width:44px;height:44px;flex:0 0 44px;margin:0}
.today-head>.today-calendar{min-height:44px;align-self:center;margin:0}
.today-shoot-heading{display:flex;align-items:center;gap:12px;justify-content:space-between}
.today-shoot-label{display:flex;align-items:baseline;gap:8px;min-width:0}
.today-shoot-label h2{margin:0;white-space:nowrap}
.today-shoot-label .caption{white-space:nowrap}
.today-shoot-heading>[data-action=wish-open]{flex:none;min-height:40px;padding:8px 0 8px 8px;font-size:var(--font-sm);white-space:nowrap}
.profile-hero{display:flex;flex-direction:row;align-items:center;gap:14px}
.profile-hero>.avatar-button{flex:none;align-self:center}
.profile-hero>[data-action=profile].grow{min-width:0}
.profile-hero>[data-action=inbox]{flex:0 0 44px;width:44px;height:44px;align-self:center;position:relative}
.my-link-row{display:grid;margin-top:12px;overflow:hidden}
.my-link-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.my-link-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.my-link-row>.menu-row{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:76px;padding:12px 6px;border-top:0;text-align:center}
.my-link-row>.menu-row+.menu-row{border-left:1px solid var(--line)}
.my-link-row>.menu-row>.grow{flex:0 1 auto;min-width:0}
.my-link-row>.menu-row>svg:last-child{display:none}
.my-link-row small{font-size:var(--font-xs);margin-top:4px}
.space-recovery-entry{margin-top:32px!important}
.managed-photo>.managed-preview{position:absolute;inset:0;width:100%;height:100%;padding:0;border-radius:0;background:transparent}
.managed-preview>img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .22s ease,border-radius .22s ease}
.managed-photo.selected>.managed-preview>img{transform:scale(.94);border-radius:4px}
.selection-hitbox{position:absolute;right:0;bottom:0;width:48px;height:48px;padding:0;border:0;background:transparent;border-radius:0;z-index:2;touch-action:manipulation}
.selection-hitbox .selection-ring{pointer-events:none}
.selection-hitbox:focus-visible{outline:2px solid var(--brand);outline-offset:-3px;border-radius:var(--corner-8)}
.collection-type-selector{min-width:0;margin:12px 0 18px}
.collection-type-pager{position:relative;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x pan-y}
.collection-type-pager::-webkit-scrollbar{display:none}
.collection-type-page{flex:0 0 100%;min-width:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,minmax(58px,auto));gap:8px;scroll-snap-align:start;scroll-snap-stop:always}
.collection-type-page>button{grid-column:span 2;padding:12px 8px;min-width:0;min-height:58px;background:var(--surface);border:1px solid var(--line);border-radius:var(--corner-10);font-size:var(--font-ui);line-height:1.45;overflow-wrap:anywhere;transition:background-color .2s,color .2s,border-color .2s}
.collection-type-page>button.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);font-weight:600}
.collection-type-page.count-5>button:nth-child(n+4),.collection-type-page.count-4>button,.collection-type-page.count-2>button{grid-column:span 3}
.collection-type-page.count-3>button{grid-column:span 3}
.collection-type-page.count-3>button:first-child{grid-column:span 6}
.collection-type-page.count-1>button{grid-column:span 6;grid-row:span 2}
.collection-type-pages{display:flex;justify-content:center;gap:8px;margin-top:8px}
.collection-type-pages button{min-width:32px;min-height:32px;padding:6px;border-radius:50%;font-size:var(--font-xs);color:var(--muted)}
.collection-type-pages button[aria-current=page]{background:var(--brand-soft);color:var(--brand)}
.unit-options .menu-row{min-height:50px}
.switch-toggle span::after{transition:transform .42s cubic-bezier(.28,1.6,.38,1)}
.stage-thumb{transition:transform .4s cubic-bezier(.24,1.15,.34,1)}
.guidance-overlay{position:fixed;inset:0;z-index:180;overflow:hidden;isolation:isolate}
.guidance-overlay .tour-hole{position:fixed;pointer-events:none;box-shadow:0 0 0 200vmax #101626b3;border:2px solid #ffffffbd;transition:left .2s ease,top .2s ease,width .2s ease,height .2s ease}
.guidance-overlay .tour-card{position:fixed;right:auto;margin:0;max-width:none;overflow-y:auto;overscroll-behavior:contain;padding:18px;border:1px solid var(--line)}
.guidance-overlay .tour-card h2{font-size:var(--font-section);line-height:1.4}
.guidance-overlay .tour-card p{line-height:1.65}
body[data-natural-motion=false] :is(.stage-thumb,.switch-toggle span::after,.guidance-overlay .tour-hole,.managed-preview>img){transition:none!important}
@media(prefers-reduced-motion:reduce){.stage-thumb,.switch-toggle span::after,.guidance-overlay .tour-hole,.managed-preview>img{transition:none!important}}
@media(max-width:359px){.today-shoot-heading{gap:4px}.today-shoot-label{gap:5px}.today-shoot-heading>[data-action=wish-open]{font-size:var(--font-xs)}.my-link-row>.menu-row{font-size:var(--font-xs)}.profile-hero{gap:10px}}

.quick-fill-types,.quick-fill-form,.quick-unit-choice,.quick-post-types{max-width:720px;margin-inline:auto;width:100%}
.quick-fill-rows{display:grid;gap:var(--content-gap)}.quick-fill-row{padding:16px;min-width:0}.quick-fill-row h3{font-size:var(--font-label);line-height:1.5;margin:0}
.quick-fill-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.quick-fill-fields>label{font-size:var(--font-sm);line-height:1.6;min-width:0}.quick-fill-fields input{display:block;width:100%;min-width:0;margin-top:6px}
.quick-unit-choice{display:flex;gap:8px;margin-bottom:20px}.quick-post-types{margin-bottom:20px}.quick-order-options .shot-options{display:flex;flex-wrap:wrap;gap:8px}.quick-order-options .shot-options button{display:flex;flex-direction:column;justify-content:center;gap:3px;flex:1 0 60px;min-height:44px;padding:9px 8px;line-height:1.3}.quick-order-options strong{font-size:var(--font-ui);font-weight:600}.quick-order-options small{font-size:var(--font-xs);color:var(--muted)}
.retouch-choice{margin:12px 0 20px}.retouch-choice .switch-row{padding:12px 0;min-height:48px}.retouch-choice .caption{margin-top:4px}.retouch-note{margin:8px 0 20px;color:var(--muted);font-size:var(--font-sm)}.retouch-summary{margin-top:20px}.retouch-summary .caption{margin-top:8px}
.stage-slider.two-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.two-stages .stage-thumb{width:calc((100% - 8px)/2)}
@media(min-width:900px){.quick-fill-rows{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.quick-fill-form{max-width:920px}}
@media(max-width:359px){.quick-fill-fields{gap:12px 8px}.quick-fill-row{padding:12px}.quick-order-options .shot-options{gap:6px}}

.shared-order-rule{margin-bottom:12px;line-height:1.6}
.price-first-guide{padding:14px 16px;margin:0 0 16px;overflow:hidden}.price-first-guide p{font-size:var(--font-sm);color:var(--muted);line-height:1.6;margin:8px 0}.price-first-guide>div{display:flex;gap:16px}.price-first-guide .text-action{min-height:36px}

/* Shared spacing scale: related cards stay close; sections remain distinguishable. */
:root{--section-gap:18px;}
body[data-compact="true"]{--section-gap:16px;--heading-gap:8px}
.stack,.form,.quick-fill-rows,.event-flow{gap:12px}
.section-head{margin-top:var(--section-gap);margin-bottom:var(--heading-gap)}
.page-header{margin-bottom:16px}
.editor-layout,.detail-layout,.finance-layout{gap:16px}
.editor-main,.editor-side{gap:12px;align-content:start}
.editor-main>[data-region]:empty{display:none}
.retouch-choice{margin:0}
.today-head{margin-bottom:10px}
.today-calendar{min-width:0}
.today-calendar h1,.page-header h1{font-size:calc(26px * var(--text-scale));font-weight:700;line-height:1.3;letter-spacing:-.7px}
.page[data-page="today"] .home-layout>section:first-child>.section-head:first-child{margin-top:0}
.page[data-page="my"] .my-link-row{margin-top:8px}
.page[data-page="my"] .my-link-row>.menu-row{min-height:64px;padding-block:10px;gap:6px}
.event-title{flex:1;min-width:0;display:grid;gap:3px}
.event-title h2{margin:0;line-height:1.35}
.event-title .event-date-range{margin:0;font-size:var(--font-xs);font-weight:400;line-height:1.45;white-space:normal}
.page[data-page="convention"]>.back-head{margin-bottom:10px}
.convention-summary{margin:0 0 12px;gap:8px}
.event-income>strong{margin:5px 0 10px}
.convention-layout{display:grid;gap:12px}
.convention-layout .section-head{margin-bottom:8px}
.event-days{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0;max-height:144px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin}
.event-day{min-width:0;min-height:52px;padding:8px 10px;text-align:center}
.event-day small{margin-top:2px;line-height:1.3}
.event-day:nth-child(n+4){min-height:48px;padding-block:6px}
.event-people{margin-top:10px;margin-bottom:0;gap:8px}
.event-people .metric{padding:12px 6px}
.scene-date-field{gap:0}
.day-options,.shoot-form .scene-date-field .day-options{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:144px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin}
.day-options button,.shoot-form .scene-date-field .day-options button{min-width:0;min-height:52px;padding:7px 8px}
.day-options button:nth-child(n+4),.shoot-form .scene-date-field .day-options button:nth-child(n+4){min-height:48px;padding-block:5px}
.editor-main:has(.scene-date-field)>.time-fields{margin-top:0}
.cn-input-row{display:flex;align-items:center;gap:4px;min-width:0}
.cn-input-row input{width:100%;min-width:0;flex:1 1 0}
.cn-input-row .coser-history{width:44px;height:44px;flex:0 0 44px;color:var(--muted)}
.person-block{gap:12px}
.quick-order-options{margin-top:0}
.quick-order-options .manual-quantity{display:block;margin-bottom:6px}
.shoot-notes{background:var(--surface);border-radius:var(--radius);padding:0 12px 12px;overflow:hidden}
.shoot-notes .note-launch{padding:12px 0;min-height:48px;border-radius:0}
.shoot-notes .photo-grid{margin:0}
.shoot-notes [data-region="shoot-note-photos"]{min-width:0}
.direct-profile{gap:16px}
.direct-profile .profile-avatar-row{flex-direction:column;justify-content:center;gap:8px;padding:4px 0}
.direct-profile .profile-avatar-row>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.direct-profile .profile-introduction textarea{min-height:100px}
.guidance-overlay .tour-hole,.guidance-overlay .tour-card{border-radius:var(--radius)}
.guidance-overlay .tour-hole,.guidance-overlay .tour-card{transition:none}
.guidance-overlay[data-ready="true"] :is(.tour-hole,.tour-card){transition:left .36s cubic-bezier(.22,.8,.25,1),top .36s cubic-bezier(.22,.8,.25,1),width .36s cubic-bezier(.22,.8,.25,1),height .36s cubic-bezier(.22,.8,.25,1)}
body[data-natural-motion="false"] .guidance-overlay :is(.tour-hole,.tour-card){transition:none!important}
@media(prefers-reduced-motion:reduce){.guidance-overlay :is(.tour-hole,.tour-card){transition:none!important}}
@media(min-width:600px){.convention-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.home-layout,.finance-layout,.detail-layout{gap:20px}}
@media(min-width:900px){.page[data-page="my"] .my-layout{gap:20px}}

/* R0-R3: month-only calendar. Six fixed rows keep month changes spatially stable. */
:root{--cal-red:#e5484d;--cal-blue:#2f80ff}
.page[data-page=calendar] .calendar-head{margin-bottom:10px}
.page[data-page=calendar] .calendar-weekdays{margin:6px 0}
.page[data-page=calendar] .calendar-grid{grid-auto-rows:52px;grid-template-rows:repeat(6,52px);row-gap:4px;align-content:start;height:332px;min-height:332px}
.page[data-page=calendar] .calendar-day{height:52px;min-height:52px;max-height:52px;padding:2px 0;gap:0;justify-content:flex-start;border-radius:0;min-width:0}
.page[data-page=calendar] .calendar-day .day-number{flex:none;min-width:34px;width:34px;height:34px;font-size:calc(19px * var(--text-scale));border:1px solid transparent;box-sizing:border-box}
.page[data-page=calendar] .calendar-day.active .day-number{width:34px;height:34px;background:#fff0f0;border:1.5px solid var(--cal-red);color:var(--cal-red)}
.page[data-page=calendar] .calendar-day.today:not(.active) .day-number{border:1px solid #f4b6b8;color:var(--cal-red);background:#fff8f8}
.page[data-page=calendar] .calendar-day.active{opacity:1}
.calendar-day .event-indicator{position:relative;display:block;width:100%;height:12px;flex:none}
.page[data-page=calendar] .calendar-day .event-mark{position:absolute;left:50%;top:4px;transform:translateX(-50%);width:calc(6px + (100% - 30px) * var(--event-ratio));max-width:calc(100% - 24px);height:2px;min-height:2px;aspect-ratio:auto;border:0;border-radius:2px;margin:0;background:var(--cal-blue)}
.calendar-pager{overflow:hidden;touch-action:pan-y;height:332px;min-height:332px;isolation:isolate}
.calendar-track{display:flex;width:100%;height:332px;transform:translate3d(-100%,0,0)}
.calendar-month{flex:0 0 100%;min-width:0;max-width:100%}
.calendar-pager:focus-visible{outline:2px solid var(--cal-red);outline-offset:2px}
.page[data-page=calendar] .calendar-agenda{margin-top:12px}
.reminder-row .day-label{flex:none;padding:6px 2px;min-height:40px;text-align:left;text-decoration:underline;text-underline-offset:3px}
/* R5-R8: scope compact sizing to convention summaries and the retouch control. */
.page[data-page=convention] .convention-summary{margin:0 auto 4px;gap:8px}
.convention-summary .surface{padding:10px 12px}
.convention-summary .event-income>strong{font-size:calc(22px * var(--text-scale));margin:4px 0 8px;line-height:1.2}
.convention-summary .event-received>strong{font-size:calc(18px * var(--text-scale));line-height:1.2}
.convention-summary .event-received>div{padding-top:5px;margin-top:5px}
.convention-summary .event-received>div>strong{font-size:calc(16px * var(--text-scale));line-height:1.2}
.page[data-page=convention] .convention-layout{gap:4px}
.convention-layout>section{margin-top:0;margin-bottom:0}
.convention-layout .section-head{margin-top:0;margin-bottom:4px}
.page[data-page=convention] .day-timeline{margin:0;padding:0}
.convention-layout .event-people{margin:6px 0 0}
.convention-layout .event-people .metric{padding:8px 6px;min-height:0}
.convention-layout .event-people .metric strong{font-size:var(--font-number);margin-bottom:2px}
.retouch-choice{display:flex;align-items:center;gap:12px}
.retouch-choice .setup-slider-row{flex:0 1 48%;min-width:136px;padding:8px 10px;min-height:44px;margin:0}
.retouch-choice [data-retouch-hint]{flex:1;margin:0;font-size:var(--font-xs);line-height:1.5;min-width:0;overflow-wrap:anywhere}
/* R10-R12, R15: shared content cards without changing unrelated menu rows. */
.idea-input-card{background:var(--surface);border-radius:var(--corner-12);padding:12px;display:grid;gap:8px}
.inspiration-editor .idea-input-card .idea-note-input{padding:0;min-height:88px;background:transparent;border:0;border-radius:0;resize:vertical;margin:0}
.idea-image-count{font-size:var(--font-xs);color:var(--muted);text-align:right}
.idea-input-card .photo-grid{margin:0}
.menu-row.collection-row{min-height:48px;padding:10px 14px}
.custom-rule-actions{display:flex;align-items:stretch;gap:8px;margin-top:12px}
.custom-rule-actions>button{flex:1;min-width:0;min-height:44px;margin:0}
.page .inspiration-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.inspiration-grid .idea-card{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:76px;padding:10px 12px;contain-intrinsic-size:none;width:100%}
.inspiration-grid .idea-card .idea-note{flex:1;min-width:0;padding:0;font-size:var(--font-ui);line-height:1.5}
.idea-card .idea-note strong{font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.idea-card .idea-note small{margin-top:3px;font-size:var(--font-xs)}
.idea-thumbnails{display:flex;gap:4px;flex:none}
.idea-thumbnails>span{display:block;width:48px;height:48px;border-radius:var(--corner-6);overflow:hidden;background:var(--soft)}
.idea-thumbnails img,.idea-thumbnails .abstract-photo{width:100%;height:100%;object-fit:cover}
@media(max-width:360px){.idea-thumbnails>span{width:38px;height:38px}.inspiration-grid .idea-card{gap:8px;padding:10px}}
/* R16-R17: accessible exit choices and the My feature index. */
.unsaved-actions{display:grid;gap:10px;margin-top:16px}
.feature-search{margin-bottom:12px}
.feature-search-input{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface);border-radius:var(--corner-10)}
.feature-search-input svg{width:18px;height:18px;flex:none;color:var(--muted)}
.feature-search-input input{flex:1;min-width:0;padding:0;background:transparent;border:0;font-size:var(--font-body);min-height:24px}
.feature-search [data-feature-results]:not(:empty){margin-top:8px;background:var(--surface);border-radius:var(--corner-10);overflow:hidden}
.feature-result{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:10px 14px;width:100%;text-align:left}
.feature-result+ .feature-result{border-top:1px solid var(--line)}
.feature-result small{color:var(--muted);font-size:var(--font-xs);text-align:right}
.feature-search-empty{padding:14px;font-size:var(--font-ui);color:var(--muted)}

.inspiration-grid .idea-card{height:76px;padding:0}
.inspiration-grid .idea-card .idea-note{padding:8px 0 8px 12px}
.idea-card .idea-thumbnails{height:100%;align-self:stretch;width:min(52%,calc(var(--preview-count,1) * 92px));max-width:52%;gap:2px}
.idea-card .idea-thumbnails>span{flex:1;min-width:0;width:0;height:100%;border-radius:0}
.convention-layout .event-order{display:grid;grid-template-columns:40px minmax(0,1fr) 74px;align-items:center;gap:8px;padding:8px 12px}
.event-order-index{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-width:0}
.event-order-index .order-number{padding:0;width:auto;min-width:0;text-align:left}
.event-order-index small{font-size:var(--font-xs);color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;max-width:100%;line-height:1.3}
.event-order-main{min-width:0;min-height:48px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:4px}
.event-order-main strong,.event-order-main small{overflow-wrap:anywhere;line-height:1.4}
.event-order-main small{font-size:var(--font-xs);color:var(--muted)}
.event-order-progress{display:flex;align-items:center;justify-content:center;gap:4px;min-height:44px;font-size:var(--font-sm);color:var(--brand);border-radius:var(--corner-8)}
.event-order-progress svg{width:16px;height:16px;flex:none}
.event-order-progress.complete{color:var(--muted)}
.convention-layout .event-people .metric strong{line-height:1.2}
.convention-layout .event-people .metric small{line-height:1.3}

.page[data-page=collections] .menu-row.collection-row{min-height:48px;padding:10px 14px}
.collection-row .grow>strong{font-size:var(--font-ui);line-height:1.3}
.collection-row .grow>small{font-size:var(--font-xs);line-height:1.3;margin-top:2px}
.page[data-page=calendar] .calendar-day:focus-visible{outline:2px solid var(--cal-red);outline-offset:-2px}
#screen>.page:is([data-page=custom-services],[data-page=custom-cooperations]){--page-content:760px}

.booking-publication{margin-bottom:12px}.booking-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.booking-actions>*{flex:1;min-width:96px}.booking-editor{max-width:840px;margin-inline:auto}.booking-editor>.surface{padding:16px}.booking-editor .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-chips{display:flex;flex-wrap:wrap;gap:8px}.booking-chips button{padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius,10px)}.booking-chips .active{color:var(--brand);background:var(--brand-soft,#edf2f7)}.booking-quote-preview{font-size:var(--font-sm);line-height:1.8;margin-top:12px}.booking-request{display:flex;justify-content:space-between;align-items:center;text-align:left;margin-block:10px;padding:16px;gap:12px}.booking-request small{display:block;margin-top:6px;color:var(--muted)}.booking-qr{width:240px;margin:20px auto}.booking-qr img,.booking-qr canvas{max-width:100%}.custom-development{max-width:520px;margin:24px auto;display:grid;gap:20px;text-align:center;padding:28px}.custom-development>svg{width:44px;height:44px;margin:auto}.custom-development p{line-height:1.7}.event-time-groups{display:grid;gap:14px}.event-time-label{padding:0 2px 8px;gap:8px}.event-time-label h3{font-size:var(--font-ui)}.event-time-label small{font-size:var(--font-xs);color:var(--muted)}.event-time-group{min-width:0}.event-time-group .event-order{min-width:0}.event-time-group .event-order-main{min-width:0}.event-time-group strong,.event-time-group small{overflow-wrap:anywhere}.event-time-group .event-order-index{flex-shrink:0}@media(min-width:1100px){.event-time-groups{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}.convention-layout:has(.event-time-groups){grid-template-columns:1fr}.event-time-group .event-order{padding:12px 10px}.event-time-group .event-order-progress{flex-shrink:0}}

.booking-preview img{width:100%;max-height:440px;object-fit:contain}.booking-preview p{white-space:pre-wrap;overflow-wrap:anywhere;margin-block:12px;line-height:1.7}

.booking-qr{padding:24px;background:white;max-width:calc(100% - 48px);box-sizing:content-box}.booking-actions a{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;color:inherit;min-height:44px}.booking-preview img{display:block}

.booking-poster-preview{display:block;width:100%;height:auto;margin-top:12px}

.booking-request-fields{border:0;padding:0;margin:0;min-width:0}.booking-request-fields:disabled{opacity:.85}

.booking-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.booking-actions>*{min-width:0;width:100%}.booking-actions>.primary{grid-column:1/-1}

.order-card-heading{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.order-card-heading h1{flex:none}.order-card-heading .text-action{font-size:13px;white-space:nowrap;padding:8px 0}.order-card-loading{padding:16px}.order-card-summary{display:grid;gap:12px}.order-card-summary p,.order-card-summary h2{margin:0}.order-card-progress{display:flex;align-items:center;gap:12px}.order-card-progress[hidden]{display:none}.order-card-progress progress{flex:1;accent-color:var(--brand)}.order-card-frame{border:0;width:100%;height:calc(100dvh - 200px);min-height:360px;border-radius:var(--r-md,14px);background:var(--soft)}[data-order-card-file]{width:100%;font-size:16px}

.order-card-detail{display:grid;gap:16px}.order-card-detail>.surface,.order-card-detail>.menu-group,.order-card-detail>.danger-button{margin:0}.order-card-prices{display:grid;gap:12px}.order-card-prices>.surface{margin:0}.order-card-prices .between h3{margin:0}

.order-card-summary :is(h2,p){overflow-wrap:anywhere;min-width:0}.order-card-list .grow{min-width:0}.order-card-list small{overflow-wrap:anywhere;white-space:normal}

/* Booking uses the existing surface, radius and brand tokens; no separate navigation. */
.booking-editor .surface,.booking-decision .surface{display:grid;gap:14px}.booking-editor h3,.booking-decision h3{margin:0}.booking-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:8px;align-items:end}.booking-range .field{margin:0;min-width:0}.booking-plan,.booking-exception,.booking-person{border-top:1px solid var(--line);padding-block:12px}.booking-plan>summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;min-height:36px;align-items:center}.booking-plan-body,.booking-advanced-body{display:grid;gap:12px;margin-top:14px}.booking-advanced>summary{padding:12px;cursor:pointer}.booking-date-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px;max-height:55dvh;overflow:auto}.booking-date-choices .active{background:var(--brand-soft);color:var(--brand)}.booking-pending{display:grid;grid-template-columns:1fr auto;gap:6px 12px;text-align:left;padding:12px 14px;margin-bottom:12px;align-items:center}.booking-pending small{grid-column:1;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-pending svg{grid-column:2;grid-row:1/3}.booking-request-search{display:flex;gap:10px;margin-block:14px}.booking-request-search input{flex:1;min-width:0;font-size:16px}.booking-warning{padding:12px;border-radius:var(--r-md);background:var(--brand-soft);color:var(--text)}.booking-compact{margin:0}.booking-compact .sheet-footer{position:sticky;bottom:0;background:var(--surface);padding-block:12px}.booking-plan-body :is(input,textarea),.booking-editor :is(input,textarea),.booking-decision :is(input,textarea){font-size:16px}.booking-plan-body .booking-chips button{flex:1;white-space:nowrap}.booking-request strong,.booking-request small{overflow-wrap:anywhere}.booking-request>span{min-width:0}.booking-request>strong{flex-shrink:0}.booking-plan[open]>.booking-plan-body,.booking-advanced[open]>.booking-advanced-body{animation:booking-reveal .22s ease-out}@keyframes booking-reveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.booking-plan[open]>.booking-plan-body,.booking-advanced[open]>.booking-advanced-body{animation:none}}
.sheet-heading-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.sheet-heading h2{min-width:0}.sheet-heading-actions .text-action{font-size:13px}
.booking-convention-heading{display:block!important}.convention-info-row{display:flex;align-items:center;gap:10px;min-width:0}.booking-convention-heading .event-title{flex:1;min-width:0}.booking-convention-heading h1{white-space:normal;overflow-wrap:anywhere}.booking-convention-heading .caption{white-space:normal;margin:4px 0 0}.convention-action-row{display:flex;justify-content:flex-end;margin-top:2px}
.booking-plan-controls{display:flex;align-items:center;gap:10px}.booking-plan-controls>.setup-slider-row,.booking-plan-controls>.switch-row{flex:1;min-width:0}.booking-plan-controls .text-action{flex-shrink:0}.booking-plan-controls+.booking-plan{margin-top:4px}.edition-promotion{display:grid;gap:14px}.edition-promotion .surface{padding:16px}.edition-promotion h3{margin:0 0 8px}.edition-promotion p{line-height:1.6}.edition-promotion .primary{display:block;text-align:center;text-decoration:none;margin-top:12px}
[data-motion-stable] .booking-request-card{transform:none;clip-path:none}

/* Anchored action menus share the same surfaces, icons and radii as the rest of the app. */
.inline-action-menu{position:fixed;z-index:38;width:min(280px,calc(100vw - 24px));padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md,12px);box-shadow:0 10px 34px #19263824;transform-origin:top right}.inline-action-menu .menu-group{margin:0;box-shadow:none}.inline-action-menu .menu-row{min-height:44px;padding:10px 12px;border:0;border-radius:var(--r-sm,8px)}.inline-action-menu .menu-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.booking-convention-heading .convention-info-row>.icon-button{flex:none}.booking-convention-heading .event-title{margin-right:4px}.booking-editor .booking-service-group{padding:0;margin:12px 0;border:0;border-radius:var(--r-sm,8px)}.booking-service-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:12px;background:var(--soft);border-radius:var(--r-sm,8px)}.booking-service-group>summary span{font-size:var(--font-sm);color:var(--muted)}.booking-service-group>.booking-fold-body{padding:4px 0}.booking-rate{padding:12px 0;border:0}.booking-rate+.booking-rate{margin-top:6px}.booking-rate .booking-plan-controls{gap:8px}.booking-rate .booking-plan-controls .setup-slider-row{padding:10px 0;border:0;flex:1;gap:10px}.booking-rate .booking-plan-controls .setup-slider-row>span:first-child{line-height:1.6}.booking-rate .booking-plan{border:0;padding:0;margin:2px 0;background:transparent}.booking-rate .booking-plan>summary{font-size:var(--font-sm);color:var(--muted);padding:6px 0;cursor:pointer}.booking-rate .booking-plan-body{padding:10px 0}.booking-editor details .booking-fold-body,.booking-editor details .booking-advanced-body,.booking-editor details .booking-plan-body{min-width:0}.booking-editor details summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.booking-grid-help{padding:10px 12px;background:var(--soft);border-radius:var(--r-sm,8px);line-height:1.7}
/* The version comparison is a centered dialog; each topic remains a separate reading block. */
.sheet.center:has(.edition-promotion){width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:20px}.edition-promotion{gap:18px}.edition-promotion>section{padding:18px;background:var(--soft);border-radius:var(--r-md,12px)}.edition-promotion>section h3{margin:0 0 12px}.edition-promotion>section p{margin:10px 0;line-height:1.7}.edition-promotion>section .primary{margin-top:16px}.edition-promotion>.secondary{margin-top:2px}.sheet.center:has(.edition-promotion) .sheet-heading{margin-bottom:18px}
.booking-service-group>summary span{margin-left:auto}.booking-group-chevron{width:16px;height:16px;flex:none;color:var(--muted);transition:transform .28s cubic-bezier(.22,1,.36,1)}.booking-service-group[open]>summary .booking-group-chevron{transform:rotate(90deg)}
.edition-download-placeholder{min-height:44px;margin-top:16px!important;display:flex;align-items:center}

/* Shared motion contract: content stays opaque; only the scrim fades independently. */
:root{--flow-fast:.16s;--flow-state:.30s;--flow-spring:.38s;--flow-ease:cubic-bezier(.22,.8,.24,1);--flow-bounce:cubic-bezier(.22,1.32,.36,1)}
.modal-overlay{background:transparent;isolation:isolate;--scrim-opacity:1}
.modal-overlay::before{content:'';position:absolute;inset:0;background:#151b2a35;opacity:var(--scrim-opacity);z-index:-1;pointer-events:none}
.sheet,.sheet-exit{flex-shrink:0;transform-origin:50% 100%}
.sheet.center,.sheet-exit.center{transform-origin:50% 50%}
.motion-ghost,.flow-text-ghost{pointer-events:none;overflow:hidden;contain:layout paint;z-index:49;margin:0}
.flow-text-ghost{position:fixed;white-space:pre-wrap;overflow-wrap:anywhere;z-index:151}
.flow-leave-slot{overflow:hidden;contain:layout paint;flex:none}
.flow-leave-slot>.shoot-cell{margin:0!important}
.calendar-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:130px;min-height:48px}
.calendar-selection strong{font-size:var(--font-ui);line-height:1.45}
.calendar-selection .text-action{font-size:var(--font-xs);min-height:28px;padding:2px 8px;color:var(--muted)}
.calendar-pager,.calendar-pager button{touch-action:pan-y;user-select:none;-webkit-user-select:none}
.calendar-track{will-change:auto}
.calendar-day .day-number{transition:background-color var(--flow-state) var(--flow-ease),border-color var(--flow-state) var(--flow-ease),color var(--flow-state) var(--flow-ease),transform var(--flow-spring) var(--flow-bounce)}
.calendar-day.active .day-number{transform:scale(1.04)}
:is(.chip,.palette-choice,.mode-card,.shot-options button,.duration-options button,.segmented button,.event-day,.day-options button,.nav-available button,.collection-type-page>button,.feature-result){transition:background-color var(--flow-state) var(--flow-ease),border-color var(--flow-state) var(--flow-ease),color var(--flow-state) var(--flow-ease),box-shadow var(--flow-state) var(--flow-ease)}
.switch-toggle>span{transition:background-color var(--flow-state) var(--flow-ease),box-shadow var(--flow-state) var(--flow-ease)}
.switch-toggle>span::after{transition:transform var(--flow-spring) var(--flow-bounce),width var(--flow-fast) var(--flow-ease)}
.switch-toggle:active>span::after{width:23px}
.stage-thumb{transition:transform var(--flow-spring) var(--flow-bounce);will-change:auto}
.selection-ring{transition:background-color var(--flow-state) var(--flow-ease),border-color var(--flow-state) var(--flow-ease),transform var(--flow-spring) var(--flow-bounce)}
.selection-ring svg{transition:transform var(--flow-spring) var(--flow-bounce),opacity var(--flow-fast) var(--flow-ease);transform:scale(.4)}
.managed-photo.selected .selection-ring{transform:scale(1.06)}
.managed-photo.selected .selection-ring svg{transform:scale(1)}
:is(input,textarea):not([type=checkbox]):not([type=file]){transition:background-color var(--flow-state) var(--flow-ease)}
input[type=range]{accent-color:var(--brand)}
input[type=range]::-webkit-slider-thumb{transition:transform var(--flow-spring) var(--flow-bounce)}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.16)}
input[type=range]::-moz-range-thumb{transition:transform var(--flow-spring) var(--flow-bounce)}
input[type=range]:active::-moz-range-thumb{transform:scale(1.16)}
/* Only explicit user/system accessibility choices reduce motion; no CPU/memory sniffing. */
body[data-natural-motion=false] :is(.calendar-day .day-number,.switch-toggle>span,.switch-toggle>span::after,.stage-thumb,.selection-ring,.selection-ring svg,.chip,.palette-choice,.mode-card,.shot-options button,.duration-options button,.segmented button,.event-day,.day-options button,.nav-available button,.collection-type-page>button,.feature-result,input,textarea){transition:none!important}
@media(prefers-reduced-motion:reduce){:is(.calendar-day .day-number,.switch-toggle>span,.switch-toggle>span::after,.stage-thumb,.selection-ring,.selection-ring svg,.chip,.palette-choice,.mode-card,.shot-options button,.duration-options button,.segmented button,.event-day,.day-options button,.nav-available button,.collection-type-page>button,.feature-result,input,textarea){transition:none!important}}

.page[data-motion] .shoot-cell,.page[data-dragging] .shoot-cell{content-visibility:visible}

.switch-toggle:active input:checked+span::after{transform:translateX(13px)}

/* The month label stays on one line beside sharing and search on narrow phones. */
.calendar-head h1{white-space:nowrap;min-width:0}
@media(max-width:400px){.page[data-page=calendar] .calendar-head{gap:6px}.calendar-head h1{font-size:calc(18px * var(--text-scale));letter-spacing:-.3px;flex:1}.calendar-head>.row{gap:0}.calendar-head .text-action{font-size:var(--font-xs);padding:6px 4px}.calendar-head .icon-button{width:40px;min-width:40px;flex:none}}

/* The calendar owns one view selector and one period carousel; Dock is not rerendered. */
.page[data-page=calendar]{overflow-anchor:none}
.page[data-page=calendar] .calendar-head{min-height:52px;align-items:center}
.calendar-period-title{flex:1;min-width:0;height:52px;display:flex;flex-direction:column;justify-content:center}.calendar-period-title h1{margin:0}.calendar-period-title>small{display:block;margin-top:2px;font-size:var(--font-xs);color:var(--muted);line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.page[data-page=calendar] .month-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;height:48px;margin:0 auto 8px}
.page[data-page=calendar] .calendar-view-switch{flex:0 1 164px;min-width:120px;margin:0;min-height:44px}
.page[data-page=calendar] .calendar-view-switch>button{flex:1;min-width:0;min-height:40px;padding:6px 8px;font-size:var(--font-ui)}
.page[data-page=calendar] .calendar-selection{flex:1;min-width:0;align-items:flex-end;text-align:right;gap:0}
.page[data-page=calendar] .calendar-selection strong{font-size:var(--font-sm);white-space:nowrap}
.page[data-page=calendar] .calendar-selection .text-action{padding-right:0;min-height:30px}
.calendar-range-pager{position:relative;overflow:hidden;touch-action:pan-y;isolation:isolate;min-height:220px}
.calendar-range-track{display:flex;align-items:flex-start;width:100%;transform:translate3d(-100%,0,0);will-change:auto}
.calendar-range-panel{flex:0 0 100%;min-width:0;max-width:100%;min-height:220px}
.calendar-range-panel[aria-hidden=true]{height:0;min-height:0;overflow:visible}
.calendar-range-panel .calendar-range-day:first-child>.section-head{margin-top:0}
.calendar-range-panel .section-head .text-action{color:var(--muted)}
.calendar-range-pager:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius)}
@media(max-width:359px){.page[data-page=calendar] .calendar-head .calendar-period-title h1{font-size:var(--font-ui)}.page[data-page=calendar] .calendar-period-title>small{font-size:11px}.page[data-page=calendar] .calendar-view-switch{flex-basis:132px}.page[data-page=calendar] .calendar-view-switch>button{padding-inline:4px}.page[data-page=calendar] .calendar-selection strong{font-size:var(--font-xs)}}

/* Adapted from the supplied six-palette assets: secondary-surface contrast corrected. */
/* ==========================================================================
   二摄工作台 · 6 套主题配色 × 浅深双模系统 (Standalone Palette Themes)
   ==========================================================================
   使用说明：
   1. 引入本文件后，在 <body> 上声明：
      data-palette="moon | morandi | black | jade | latte | navy"
      data-theme="light | dark"
   2. 组件中通过 var(--bg), var(--surface), var(--brand) 等语义令牌引用颜色。
   3. 6 套配色浅色与深色均经过严格无障碍检测，符合 WCAG AA (对比度 ≥ 4.5:1)。
   ========================================================================== */

/* ---------- 全局语义状态色（与配色无关，只分浅 / 深） ---------- */
:root {
  --success: #1e9e57;
  --success-soft: #e3f5eb;
  --warning: #c76a00;
  --warning-soft: #fff1dd;
  --danger: #d13b3b;
  --danger-soft: #fde9e9;
  --switch-on: #34c759;   /* iOS 纯正绿：所有开关统一采用 */
  --switch-thumb: #ffffff;
  --tile-icon: #ffffff;
  --sh-1: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 1px rgba(16, 24, 40, .03);
  --sh-2: 0 8px 24px rgba(16, 24, 40, .12);
  --sh-3: 0 20px 48px rgba(16, 24, 40, .18);
  --scrim: rgba(10, 14, 22, .36);
  color-scheme: light;
}

body[data-theme="dark"] {
  --success: #4cd38a;
  --success-soft: #17382a;
  --warning: #ffb255;
  --warning-soft: #3b2a12;
  --danger: #ff7168;
  --danger-soft: #3f1d1d;
  --sh-1: 0 1px 2px rgba(0, 0, 0, .4);
  --sh-2: 0 8px 24px rgba(0, 0, 0, .5);
  --sh-3: 0 20px 48px rgba(0, 0, 0, .6);
  --scrim: rgba(0, 0, 0, .56);
  color-scheme: dark;
}

/* ==========================================================================
   1. 冷月白 (moon) —— 中性冷灰底 + 纯澈清透蓝 (默认推荐)
   ========================================================================== */
:root, body[data-palette="moon"][data-theme] {
  --bg: #f2f4f8;          /* 页面底色：浅灰，与卡片形成 1.15:1 舒适衬托 */
  --surface: #ffffff;     /* 卡片底色：纯白 Inset Grouped */
  --soft: #e8ecf3;        /* 容器填充 / 次级按钮底 */
  --line: #d9dee8;        /* 发丝级边线与 0.5px 分割线 */
  --text: #1a1d24;        /* 主文字 (对比度 14.8:1) */
  --muted: #596273;       /* 次要描述文字 (对比度 5.6:1) */
  --faint: #60697a;       /* 提示弱文字 (对比度 4.6:1) */
  --brand: #3568e0;       /* 核心品牌色：冷月蓝 */
  --brand-soft: #f2f6fe;  /* 品牌淡色高亮背景 */
  --on-brand: #ffffff;    /* 品牌色背景上的前景色 */
}
body[data-palette="moon"][data-theme][data-theme="dark"] {
  --bg: #0d0f14;
  --surface: #171a21;
  --soft: #232731;
  --line: #2a2f3a;
  --text: #f2f4f8;
  --muted: #a7b0c0;
  --faint: #8c96a8;
  --brand: #7ea4ff;
  --brand-soft: #1f2c4d;
  --on-brand: #0b1020;
}

/* ==========================================================================
   2. 莫兰迪绿 (morandi) —— 柔和灰绿底 + 优雅鼠尾草绿
   ========================================================================== */
body[data-palette="morandi"][data-theme] {
  --bg: #f0f3ee;
  --surface: #ffffff;
  --soft: #e4eae2;
  --line: #d7dfd5;
  --text: #1b211d;
  --muted: #56625a;
  --faint: #5d6a60;
  --brand: #4a7560;
  --brand-soft: #eaf2ed;
  --on-brand: #ffffff;
}
body[data-palette="morandi"][data-theme][data-theme="dark"] {
  --bg: #0e1310;
  --surface: #181f1a;
  --soft: #232c26;
  --line: #27312a;
  --text: #eef3ef;
  --muted: #a5b3a9;
  --faint: #8e9b92;
  --brand: #8fc7a9;
  --brand-soft: #1d3327;
  --on-brand: #0a1810;
}

/* ==========================================================================
   3. 典雅黑 (black) —— 纯中性灰阶，深色下呈现 OLED 纯黑沉浸底
   ========================================================================== */
body[data-palette="black"][data-theme] {
  --bg: #f2f2f3;
  --surface: #ffffff;
  --soft: #e8e8ea;
  --line: #dcdcdf;
  --text: #16171a;
  --muted: #5b5d63;
  --faint: #65676e;
  --brand: #1c1d21;
  --brand-soft: #e9e9eb;
  --on-brand: #ffffff;
}
body[data-palette="black"][data-theme][data-theme="dark"] {
  --bg: #000000;          /* OLED 纯黑底 */
  --surface: #141416;
  --soft: #232326;
  --line: #2a2a2e;
  --text: #f5f5f7;
  --muted: #a8a8ae;
  --faint: #8e8e95;
  --brand: #f0f0f3;
  --brand-soft: #26262a;
  --on-brand: #000000;
}

/* ==========================================================================
   4. 翡翠绿 (jade) —— 清爽祖母绿，带有轻微玉色生机感
   ========================================================================== */
body[data-palette="jade"][data-theme] {
  --bg: #eef4f1;
  --surface: #ffffff;
  --soft: #e1ebe6;
  --line: #d3e0d9;
  --text: #14201b;
  --muted: #50625a;
  --faint: #596a63;
  --brand: #0a7a56;
  --brand-soft: #e1f3eb;
  --on-brand: #ffffff;
}
body[data-palette="jade"][data-theme][data-theme="dark"] {
  --bg: #0a1411;
  --surface: #121f1a;
  --soft: #1b2b25;
  --line: #1f3029;
  --text: #e9f4ef;
  --muted: #9fb8ad;
  --faint: #8ba398;
  --brand: #4fd1a1;
  --brand-soft: #123b2d;
  --on-brand: #04150e;
}

/* ==========================================================================
   5. 拿铁棕 (latte) —— 暖米色底 + 焦糖拿铁棕，温润复古
   ========================================================================== */
body[data-palette="latte"][data-theme] {
  --bg: #f6f2ec;
  --surface: #fffdfa;
  --soft: #ebe4da;
  --line: #e2d9cc;
  --text: #231a14;
  --muted: #655548;
  --faint: #726253;
  --brand: #9a5a2b;
  --brand-soft: #f5ebe0;
  --on-brand: #ffffff;
}
body[data-palette="latte"][data-theme][data-theme="dark"] {
  --bg: #14100d;
  --surface: #1f1914;
  --soft: #2b231c;
  --line: #2e261e;
  --text: #f4ede4;
  --muted: #b7a794;
  --faint: #a29481;
  --brand: #e3b07f;
  --brand-soft: #3a2a1c;
  --on-brand: #1a0f06;
}

/* ==========================================================================
   6. 深海蓝 (navy) —— 经典深靛蓝 + 纯正冷蓝底
   ========================================================================== */
body[data-palette="navy"][data-theme] {
  --bg: #eef1f7;
  --surface: #ffffff;
  --soft: #e1e6f0;
  --line: #d3dae8;
  --text: #131a2b;
  --muted: #4f5a72;
  --faint: #5b667e;
  --brand: #233f94;
  --brand-soft: #e3e9f8;
  --on-brand: #ffffff;
}
body[data-palette="navy"][data-theme][data-theme="dark"] {
  --bg: #0a1020;
  --surface: #121a2e;
  --soft: #1b2540;
  --line: #1f2a47;
  --text: #eaeffa;
  --muted: #a0aecb;
  --faint: #8696b7;
  --brand: #86a3f5;
  --brand-soft: #1b2b57;
  --on-brand: #06102a;
}
/* V1.1.28: three supplied themes; existing six palettes above remain unchanged. */
body[data-palette="lemon_ink"][data-theme]{
  --bg: #fafafa;
  --surface: #ffffff;
  --soft: #f4f4f5;
  --line: #e4e4e7;
  --text: #18181b;
  --muted: #52525b;
  --faint: #6b6b74;
  --brand: #18181b;
  --brand-soft: #ecfccb;
  --on-brand: #ffffff;
}
body[data-palette="lemon_ink"][data-theme][data-theme="dark"]{
  --bg: #09090b;
  --surface: #141417;
  --soft: #202024;
  --line: #27272a;
  --text: #f4f4f5;
  --muted: #a1a1aa;
  --faint: #9c9ca6;
  --brand: #bef264;
  --brand-soft: #273812;
  --on-brand: #0f1c04;
}
body[data-palette="violet"][data-theme]{
  --bg: #fafafa;
  --surface: #ffffff;
  --soft: #f4f2f9;
  --line: #e6e2f0;
  --text: #181423;
  --muted: #56506d;
  --faint: #70688c;
  --brand: #7c3aed;
  --brand-soft: #f5f3ff;
  --on-brand: #ffffff;
}
body[data-palette="violet"][data-theme][data-theme="dark"]{
  --bg: #0d0a18;
  --surface: #171328;
  --soft: #241e3d;
  --line: #2d264c;
  --text: #f3f0fc;
  --muted: #ada4cc;
  --faint: #9186b5;
  --brand: #a78bfa;
  --brand-soft: #2c1b52;
  --on-brand: #0e071e;
}
body[data-palette="amber"][data-theme]{
  --bg: #fafafa;
  --surface: #ffffff;
  --soft: #f6f3ed;
  --line: #eae3d7;
  --text: #211910;
  --muted: #665b4c;
  --faint: #786b5b;
  --brand: #a95b04;
  --brand-soft: #fef3c7;
  --on-brand: #ffffff;
}
body[data-palette="amber"][data-theme][data-theme="dark"]{
  --bg: #140f09;
  --surface: #1e1710;
  --soft: #2e2319;
  --line: #3a2c20;
  --text: #faf2ea;
  --muted: #ccb9a3;
  --faint: #b09c85;
  --brand: #fbbf24;
  --brand-soft: #3d290c;
  --on-brand: #1a0f02;
}

/* Shared component contract; maintained with docs/UI规范.md. */
body{--font-xs:max(11px,calc(11px * var(--text-scale)));--font-sm:calc(12px * var(--text-scale));--font-ui:calc(13px * var(--text-scale));--font-body:calc(14px * var(--text-scale));--font-label:calc(15px * var(--text-scale));--font-section:calc(17px * var(--text-scale));--font-number:calc(20px * var(--text-scale));--font-title:calc(24px * var(--text-scale));--field-fill:var(--surface)}

:root{--corner-8:6px;--control-height:44px;--r-sm:6px;--switch-on:#248a44;--switch-thumb:#fff;--section-gap:20px;--heading-gap:10px;--content-gap:12px;--form-gap:16px;--field-gap:8px;--tile-camera:#4e68a0;--on-tile:#fff;--dock-cutout:var(--surface);--menu-row-height:52px}
body{--success:#168044;--warning:#a85b00;--danger:#c6323b;font-size:var(--font-body);font-family:DouyinSans,"Noto Sans SC",sans-serif}
body[data-font-family=rounded]{font-family:DouyinSans,"Noto Sans SC",sans-serif}
body[data-theme=dark]{--success:#4cd38a;--warning:#ffb255;--danger:#ff7168}
body[data-palette=moon]{--tile-camera:#4e68a0}body[data-palette=morandi]{--tile-camera:#4e68a0}body[data-palette=black]{--tile-camera:#4e68a0}body[data-palette=jade]{--tile-camera:#4e68a0}body[data-palette=latte]{--tile-camera:#4e68a0}body[data-palette=navy]{--tile-camera:#4e68a0}
body[data-corners=small]{--radius:8px;--corner-5:4px;--corner-6:4px;--corner-7:4px;--corner-8:6px;--corner-9:6px;--corner-10:6px;--corner-12:8px;--corner-13:8px;--corner-14:8px;--corner-16:8px;--corner-18:10px;--corner-20:12px;--corner-22:12px;--corner-24:14px;--corner-26:16px}
body[data-corners=standard]{--radius:14px;--corner-5:5px;--corner-6:6px;--corner-7:7px;--corner-8:8px;--corner-9:9px;--corner-10:10px;--corner-12:12px;--corner-13:13px;--corner-14:14px;--corner-16:16px;--corner-18:18px;--corner-20:20px;--corner-22:22px;--corner-24:24px;--corner-26:26px}
body[data-corners=large]{--radius:22px;--corner-5:6px;--corner-6:7px;--corner-7:8px;--corner-8:9px;--corner-9:10px;--corner-10:12px;--corner-12:16px;--corner-13:16px;--corner-14:18px;--corner-16:20px;--corner-18:22px;--corner-20:24px;--corner-22:26px;--corner-24:28px;--corner-26:30px}
body[data-compact=false]{--section-gap:24px;--heading-gap:12px;--content-gap:16px;--form-gap:20px;--menu-row-height:60px}
.page{background:var(--bg);color:var(--text)}
.page :is(h1,h2,h3,strong){color:inherit}
:is(.section-head,.today-section-head){margin-top:var(--section-gap);margin-bottom:var(--heading-gap)}
:is(.stack,.event-flow,.custom-rules,.scene-packages,.detail-layout){gap:var(--content-gap)}
:is(.surface,.menu-group,.shoot-list,.reminder-group,.event-card,.idea-card,.metric,.person-block,.payment-card,.quick-fill-row,.custom-service,.appearance-preview){background:var(--surface);border-radius:var(--radius)}
:is(.surface,.menu-group,.shoot-list,.reminder-group,.event-card,.idea-card,.metric,.person-block,.payment-card,.quick-fill-row,.custom-service,.appearance-preview){border:1px solid transparent;box-shadow:none}
body[data-card-style=outlined] :is(.surface,.menu-group,.shoot-list,.reminder-group,.event-card,.idea-card,.metric,.person-block,.payment-card,.quick-fill-row,.custom-service,.appearance-preview){border-color:var(--line)}
body[data-card-style=elevated] :is(.surface,.menu-group,.shoot-list,.reminder-group,.event-card,.idea-card,.metric,.person-block,.payment-card,.quick-fill-row,.custom-service,.appearance-preview){box-shadow:var(--sh-1)}
.event-card:first-child{background:var(--surface)}
/* Shared controls have one owner; feature files only arrange them. */
:is(.primary,.secondary,.danger-button){min-height:var(--control-height);padding:11px 18px;border-radius:var(--corner-12);font-size:var(--font-body);line-height:1.5}
:is(.chip,.mode-card,.shot-options button,.duration-options button,.category-options button){min-height:var(--control-height);font-size:var(--font-sm);line-height:1.5;border-radius:var(--corner-9)}
:is(.segmented,.workflow-filters) button{min-height:40px;font-size:var(--font-sm);line-height:1.5;border-radius:var(--corner-9)}
.form .field{gap:var(--field-gap)}
.form :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),textarea){min-height:var(--control-height);padding:11px 12px;line-height:1.5;font-size:var(--font-body);border-radius:var(--corner-12);max-width:100%}
:is(.numeric-fields,.quick-fill-fields)>label{display:grid;gap:6px;align-content:start;font-size:var(--font-sm);line-height:1.5;min-width:0}
.quick-fill-fields input{margin-top:0}
:is(.switch-row,.setup-slider-row){display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--font-body);line-height:1.5}
.retouch-choice .setup-slider-row{background:var(--surface);border-radius:var(--radius)}
.person-block>.setup-slider-row{padding:10px 0;min-height:48px}
:is(.quick-fill-row,.custom-service,.custom-rules>.surface){padding:16px;border-radius:var(--radius)}
.sheet-heading h2{font-size:var(--font-section);line-height:1.45}
.sheet :is(.caption,.help-text,.field>span){font-size:var(--font-sm);line-height:1.55}
.text-action{border-radius:var(--corner-8)}
.back-head>.text-action{min-height:40px;padding:8px;font-size:var(--font-body)}
.switch-toggle::before{content:'';position:absolute;inset:-9px -1px}
.asset-check{display:flex;align-items:center;gap:8px;min-height:44px}
.asset-check input{appearance:none;-webkit-appearance:none;width:22px;height:22px;flex:none;margin:0;border:1.5px solid var(--muted);border-radius:50%;background:transparent;transition:background-color var(--flow-state),border-color var(--flow-state)}
.asset-check input:checked{background-color:var(--brand);border-color:var(--brand);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath d='m5 12 4 4 10-10' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat}
.announcement-image{margin:12px 0}.announcement-image img{display:block;width:100%;height:auto;max-height:70vh;object-fit:contain;border-radius:var(--radius)}
.menu-row{min-height:var(--menu-row-height);padding:11px 14px;gap:12px;line-height:1.5}
.menu-row+.menu-row{border-top:.5px solid var(--line)}
.menu-row strong{font-size:var(--font-body);font-weight:600}
.menu-row .value,.menu-row small{font-size:var(--font-sm);color:var(--muted)}
.menu-row>.chevron{width:16px;height:16px;color:var(--faint)}
.menu-row:active{background:var(--soft)}
.sheet .menu-row{padding-inline:4px}
.collection-row{min-height:48px;padding:10px 14px}
:is(.switch-row,.setup-slider-row){min-height:var(--menu-row-height);padding:11px 14px}
.switch-row strong{font-weight:600}.switch-toggle input:checked+span{background:var(--switch-on)}
.switch-toggle>span::after{background:var(--switch-thumb)}
body[data-theme] .primary{color:var(--on-brand);background:var(--brand)}
.primary:disabled{opacity:.55}
.secondary{color:var(--text);background:var(--soft)}
.danger-button{color:var(--danger);background:var(--danger-soft)}
.badge,.caption,.help-text,.muted{color:var(--muted)}
.badge.brand{color:var(--brand);background:var(--brand-soft)}
.form,.shoot-form{gap:var(--form-gap)}
.form :is(input,textarea),.person-block input,.custom-service input{color:var(--text)}
.form :is(input,textarea):not([type=checkbox]):not([type=radio]):not([type=file]){background:var(--field-fill);border-radius:var(--corner-12)}
:is(.surface,.person-block,.quick-fill-row,.custom-service){--field-fill:var(--soft)}
input::placeholder,textarea::placeholder{color:var(--faint);opacity:1}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
input:focus:not(:focus-visible),textarea:focus:not(:focus-visible){outline:none;box-shadow:none;border-color:transparent}
.modal-overlay::before{background:var(--scrim)}
.sheet{background:var(--surface);border-color:var(--line);border-radius:var(--corner-26) var(--corner-26) 0 0;box-shadow:var(--sh-3);backdrop-filter:none;-webkit-backdrop-filter:none}
.sheet.center{border-radius:var(--corner-26)}
.sheet-heading{margin-bottom:12px}.sheet-footer{gap:10px;margin-top:16px}
.search-field,.large-search,.feature-search-input,.note-launch,.idea-input-card,.shoot-notes{background:var(--surface);border-radius:var(--corner-12)}
.note-editor,.idea-input-card textarea,.shoot-notes textarea{background:transparent!important}
.menu-tile{--tile-bg:var(--tile-camera);display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px;border-radius:6px;vertical-align:middle;color:var(--muted);background:transparent;--tile-knob:var(--tile-bg)}
.menu-tile svg{width:20px;height:20px;color:inherit;stroke:currentColor;stroke-width:1.75;fill:none}
.menu-row>.menu-tile.menu-icon{width:24px;height:24px}
body[data-icon-tiles=true] .menu-tile{width:28px;height:28px;flex-basis:28px;color:var(--on-tile);background:var(--tile-bg);box-shadow:inset 0 0 0 .5px #00000014}
body[data-icon-tiles=true] .menu-row>.menu-tile.menu-icon{width:28px;height:28px}
body[data-icon-tiles=true] .menu-tile svg{width:17px;height:17px;color:var(--on-tile)}
body[data-icon-shape=circle] .menu-tile{border-radius:50%}
/* Semantic icon colors are independent of page palettes. */
:is(.menu-tile[data-tile=settings],.menu-row>svg.menu-icon[data-icon-name="settings"]){--tile-bg:#6c737b}
:is(.menu-tile[data-tile=appearance],.menu-row>svg.menu-icon[data-icon-name="appearance"]){--tile-bg:#c56b17}
:is(.menu-tile[data-tile=person],.menu-row>svg.menu-icon[data-icon-name="person"]){--tile-bg:#5966ae}
:is(.menu-tile[data-tile=repeat],.menu-row>svg.menu-icon[data-icon-name="repeat"]){--tile-bg:#686bb6}
:is(.menu-tile[data-tile=customize],.menu-row>svg.menu-icon[data-icon-name="customize"]){--tile-bg:#087f8c}
:is(.menu-tile[data-tile=camera],.menu-row>svg.menu-icon[data-icon-name="camera"]){--tile-bg:#356ca9}
:is(.menu-tile[data-tile=coin],.menu-row>svg.menu-icon[data-icon-name="coin"]){--tile-bg:#bb7515}
:is(.menu-tile[data-tile=today],.menu-row>svg.menu-icon[data-icon-name="today"]){--tile-bg:#c75e32}
:is(.menu-tile[data-tile=clock],.menu-row>svg.menu-icon[data-icon-name="clock"]){--tile-bg:#8b723b}
:is(.menu-tile[data-tile=calendar],.menu-row>svg.menu-icon[data-icon-name="calendar"]){--tile-bg:#bd4a4a}
:is(.menu-tile[data-tile=trash],.menu-row>svg.menu-icon[data-icon-name="trash"]){--tile-bg:#be4545}
:is(.menu-tile[data-tile=event],.menu-row>svg.menu-icon[data-icon-name="event"]){--tile-bg:#ce5555}
:is(.menu-tile[data-tile=folder],.menu-row>svg.menu-icon[data-icon-name="folder"]){--tile-bg:#587784}
:is(.menu-tile[data-tile=book],.menu-row>svg.menu-icon[data-icon-name="book"]){--tile-bg:#16858b}
:is(.menu-tile[data-tile=send],.menu-row>svg.menu-icon[data-icon-name="send"]){--tile-bg:#3978c0}
:is(.menu-tile[data-tile=image],.menu-row>svg.menu-icon[data-icon-name="image"]){--tile-bg:#2c935c}
:is(.menu-tile[data-tile=map],.menu-row>svg.menu-icon[data-icon-name="map"]){--tile-bg:#71853c}
:is(.menu-tile[data-tile=chart],.menu-row>svg.menu-icon[data-icon-name="chart"]){--tile-bg:#238269}
:is(.menu-tile[data-tile=spark],.menu-row>svg.menu-icon[data-icon-name="spark"]){--tile-bg:#9754b3}
:is(.menu-tile[data-tile=bell],.menu-row>svg.menu-icon[data-icon-name="bell"]){--tile-bg:#c44c74}
:is(.menu-tile[data-tile=heart],.menu-row>svg.menu-icon[data-icon-name="heart"]){--tile-bg:#c53b56}
:is(.menu-tile[data-tile=download],.menu-row>svg.menu-icon[data-icon-name="download"]){--tile-bg:#256db0}
:is(.menu-tile[data-tile=edit],.menu-row>svg.menu-icon[data-icon-name="edit"]){--tile-bg:#b47c16}
body[data-icon-weight=medium] svg[data-icon-name]{stroke-width:2}
/* Legacy hand-written rows retain the same geometry as menu() rows. */
.menu-row>svg.menu-icon{width:24px;height:24px;color:var(--muted)}
body[data-icon-tiles=true] .menu-row>svg.menu-icon{width:28px;height:28px;padding:5.5px;background:var(--tile-bg,var(--tile-camera));color:#fff;border-radius:6px;box-sizing:border-box}
body[data-icon-shape=circle][data-icon-tiles=true] .menu-row>svg.menu-icon{border-radius:50%}
.icon-solid{fill:currentColor}.icon-solid .k{fill:none;stroke:var(--dock-cutout);stroke-width:1.75}
.appearance-preview{padding:16px;margin-bottom:var(--section-gap);display:grid;gap:14px}
.appearance-preview-heading{display:flex;align-items:center;gap:12px}.appearance-preview-heading>div{min-width:0}
.appearance-preview-heading strong{font-size:var(--font-body);font-weight:600}.appearance-preview-heading small{display:block;margin-top:3px}
.appearance-sample-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:var(--font-ui)}
.appearance-mini-dock{display:flex;justify-content:space-around;gap:4px;background:var(--soft);padding:6px;border-radius:var(--radius)}
.appearance-mini-dock>span{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--corner-10);color:var(--muted)}
.appearance-mini-dock>.active{--dock-cutout:var(--brand-soft);background:var(--brand-soft);color:var(--brand)}
.design-palettes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px!important}
.design-palettes .palette-choice{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:62px;border:1px solid transparent;border-radius:var(--radius);background:var(--surface);font-size:var(--font-ui);text-align:left}
.design-palettes .palette-choice i{display:block;width:24px;height:24px;margin:0;flex:0 0 24px;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 4px var(--swatch-bg)}
.design-palettes .palette-choice.active{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.design-palettes .palette-choice>svg{width:14px;height:14px;margin-left:auto}
.appearance-save-note{text-align:center;margin-block:18px 10px}.appearance-reset{margin-bottom:12px}
.appearance-options .selected{color:var(--brand);background:var(--brand-soft)}
/* Dock keeps a reserved layout area: floating appearance never hides page content. */
#dock{position:relative;inset:auto;width:100%;height:auto;flex-direction:row;flex-shrink:0;justify-content:space-around;gap:0;margin:0;padding:6px 6px max(6px,var(--safe-bottom,env(safe-area-inset-bottom,0px)));border:0;border-top:.5px solid var(--line);border-radius:0;background:var(--surface);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;--dock-cutout:var(--surface)}
body:not(.editor-open) #screen{margin-left:0}
#dock button{position:relative;flex:1;max-width:160px;width:auto;min-width:0;min-height:56px;padding:6px 2px;gap:4px;border-radius:var(--corner-12);font-size:var(--font-xs);color:var(--muted);line-height:1.3}
#dock .dock-symbol{width:34px;height:28px;border-radius:var(--corner-10);transition:background-color var(--flow-state) var(--flow-ease),color var(--flow-state) var(--flow-ease)}
#dock svg{width:23px;height:23px}#dock .nav-line{bottom:-3px;width:16px;height:2px;opacity:0}
#dock button.active{color:var(--brand)}
body[data-dock-selection=pill] #dock button.active .dock-symbol{background:var(--brand-soft);--dock-cutout:var(--brand-soft)}
body[data-dock-selection=underline] #dock button.active .nav-line{opacity:1}
body[data-dock-labels=false] #dock .dock-label{display:none}
body[data-dock-labels=false] #dock button{min-height:48px}
body[data-dock-size=compact] #dock button{min-height:46px;font-size:var(--font-xs);gap:2px}
body[data-dock-style=floating] #dock{width:calc(100% - 24px);max-width:700px;align-self:center;margin:0 12px max(10px,var(--safe-bottom,env(safe-area-inset-bottom,0px)));padding:6px;border:.5px solid var(--line);border-radius:var(--corner-24);box-shadow:var(--sh-2)}
body[data-dock-style=floating][data-dock-material=glass] #dock{background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
@media(min-width:600px){
 body[data-dock-position=side]:not(.editor-open) #screen{margin-left:92px}
 body[data-dock-position=side] #dock{position:absolute;left:0;top:var(--safe-top,0px);bottom:var(--safe-bottom,0px);width:92px;max-width:none;flex-direction:column;justify-content:center;padding:14px 6px;gap:8px;border-top:0;border-right:.5px solid var(--line)}
 body[data-dock-position=side] #dock button{width:100%;flex:0 0 auto;min-height:62px}
 body[data-dock-position=side][data-dock-style=floating] #dock{left:10px;top:50%;bottom:auto;transform:translateY(-50%);width:72px;margin:0;max-height:calc(100% - 32px);overflow-y:auto;border:.5px solid var(--line)}
}
@media(min-width:1000px){
 body[data-dock-position=auto]:not(.editor-open) #screen{margin-left:92px}
 body[data-dock-position=auto] #dock{position:absolute;left:0;top:var(--safe-top,0px);bottom:var(--safe-bottom,0px);width:92px;max-width:none;flex-direction:column;justify-content:center;padding:14px 6px;gap:8px;border-top:0;border-right:.5px solid var(--line)}
 body[data-dock-position=auto] #dock button{width:100%;flex:0 0 auto;min-height:62px}
 body[data-dock-position=auto][data-dock-style=floating] #dock{left:10px;top:50%;bottom:auto;transform:translateY(-50%);width:72px;margin:0;max-height:calc(100% - 32px);overflow-y:auto;border:.5px solid var(--line)}
}
@media(max-width:389px){.design-palettes .palette-choice{padding:10px 8px;gap:6px;font-size:var(--font-sm)}.design-palettes .palette-choice i{width:18px;height:18px;flex-basis:18px}.design-palettes .palette-choice>svg{position:absolute;right:4px;top:4px;width:11px;height:11px}.appearance-preview{padding:12px}}
@media(max-height:450px) and (orientation:landscape){#dock button{min-height:42px}body[data-dock-style=floating] #dock{margin-bottom:6px;padding:3px}}
body[data-natural-motion=false] :is(.menu-tile,.menu-tile svg,#dock .dock-symbol){transition:none}
@media(prefers-reduced-motion:reduce){:is(.menu-tile,.menu-tile svg,#dock .dock-symbol){transition:none}}

.design-palettes .palette-choice>span{white-space:normal;overflow-wrap:anywhere;line-height:1.45;min-width:0}.design-palettes .palette-choice>svg{position:absolute;right:5px;top:5px;width:11px;height:11px}.design-palettes .palette-choice{padding:12px 10px;}
/* One readable type scale across headers, cards, settings and form controls. */
.page h1,.page .today-calendar h1{font-size:var(--font-title);line-height:1.35}
.page h2,.page .back-head h2{font-size:var(--font-section);line-height:1.45}
.page .section-head h2{font-size:var(--font-label);line-height:1.5}
.page h3,.appearance-preview-heading strong{font-size:var(--font-body);line-height:1.5}
.page :is(small,.caption,.help-text,.field>span,.appearance-sample-row){font-size:var(--font-sm);line-height:1.55}
.page .badge{font-size:var(--font-xs)}
.page .shoot-content .person-title,.page .shoot-meta .date{font-size:var(--font-body)}
.page .shoot-content :is(.role,.time,.note){font-size:var(--font-sm)}
.page .picker-button,.page .note-launch{font-size:var(--font-body)}
.design-palettes .palette-choice{font-size:var(--font-sm)}
@media(max-width:359px){.design-palettes{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* The month toolbar also contains three actions; keep its title inside its column. */
.page[data-page=calendar] .calendar-head h1{font-size:calc(clamp(17px,5vw,22px) * var(--text-scale));min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
input:focus,textarea:focus{outline:none;box-shadow:none;border-color:transparent}
body[data-keyboard-focus=true] :is(input,textarea):focus-visible{outline:2px solid var(--brand)!important;outline-offset:3px}
body:not([data-keyboard-focus=true]) :is(input,textarea):focus{outline:none!important;box-shadow:none!important;border-color:transparent!important}

/* The lime accent also identifies the otherwise neutral palette swatch. */
.design-palettes [data-value=lemon_ink] i{box-shadow:0 0 0 2px #bef264}

.recovery-intro{display:grid;gap:var(--content-gap)}.recovery-intro>p{margin:0}

/* Short desktop/tablet windows retain normal touch targets and a reachable rail start. */
@media(min-width:1000px) and (max-height:560px){
 body[data-dock-position=auto][data-dock-style=floating] #dock{padding:6px;gap:2px;justify-content:flex-start;max-height:calc(100dvh - 24px)}
 body[data-dock-position=auto][data-dock-size=compact] #dock.flow-selector>button{min-height:44px;padding-block:4px;flex:0 0 auto}
}

.appearance-preview-canvas{padding:12px;background:var(--bg);border-radius:var(--radius)}
.appearance-preview-card{padding:14px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--line)}
.appearance-preview-card p{font-size:var(--font-body);margin:12px 0 6px}
.appearance-preview-card small{color:var(--muted);font-size:var(--font-sm)}
.appearance-preview-note{padding:12px 4px;font-size:var(--font-ui);color:var(--muted)}
.appearance-mini-dock{margin-top:8px;display:flex;align-items:center;gap:2px;background:color-mix(in srgb,var(--surface) 32%,transparent);border:1px solid var(--line);border-radius:999px;padding:6px}
.appearance-mini-dock[data-preview-style="attached"]{border-radius:var(--radius)}
.appearance-mini-dock>span{display:grid;gap:4px;place-items:center;flex:1;min-width:0;width:auto;height:auto;padding:8px 1px;border-radius:999px}
.appearance-mini-dock[data-preview-size="compact"]>span{padding-block:4px}
.appearance-mini-dock>span.active{background:var(--brand-soft);color:var(--brand)}
.appearance-mini-dock>span small{font-size:var(--font-xs);white-space:nowrap}

body[data-font-family=system]{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","Noto Sans SC",sans-serif}

/* Search text and its label share the standard input target. */
.feature-search-input{padding:0 12px;min-height:44px}.feature-search-input input{min-height:44px}

/* Keep the calendar outline red; give its small date text sufficient contrast. */
.page[data-page=calendar] .calendar-day.active .day-number,.page[data-page=calendar] .calendar-day.today:not(.active) .day-number{color:#b72d34}

/* Navigation and selection are continuous capsules; content-card corner preferences do not reshape them. */
:root{--selector-fill:var(--surface);--selector-edge:color-mix(in srgb,var(--text) 7%,transparent);--selection-spring:cubic-bezier(.2,1.38,.32,1);--press-shade:rgba(20,30,46,.07)}
body[data-theme=dark]{--press-shade:rgba(255,255,255,.10)}
.page[data-motion],.page[data-dragging]{backface-visibility:hidden}
.page[data-motion] :is(.shoot-cell,.payment-person,.event-order,.idea-card),.swipe-preview :is(.shoot-cell,.payment-person,.event-order,.idea-card){content-visibility:visible}
#dock.flow-selector,.segmented.flow-selector,.workflow-filters.flow-selector,.quick-unit-choice.flow-selector,.duration-options.flow-selector,.ux-tabs.flow-selector{position:relative;isolation:isolate;border-radius:999px;touch-action:pan-y;gap:0;padding:4px;background:var(--soft)}
.flow-selector::before{content:'';position:absolute;left:0;top:0;width:var(--selector-w,0px);height:var(--selector-h,0px);transform:translate3d(var(--selector-x,0px),var(--selector-y,0px),0);border-radius:999px;background:var(--selector-fill);box-shadow:inset 0 0 0 .5px var(--selector-edge),0 2px 7px #15233a12;pointer-events:none;z-index:-1;opacity:0;transition:transform .56s var(--selection-spring),width .30s var(--flow-ease),height .30s var(--flow-ease),opacity .16s ease}
.flow-selector[data-selection-visible]::before{opacity:1}
.flow-selector[data-selector-dragging]::before{transition:none;transform:translate3d(var(--selector-x),var(--selector-y),0) scale(1.035,1.06)}
.flow-selector>button{position:relative;border-radius:999px;background:transparent!important;transition:color .24s var(--flow-ease),box-shadow .24s var(--flow-ease);z-index:1}
.flow-selector>button:is(.active,[aria-pressed=true]){color:var(--brand);font-weight:650}
.workflow-filters.flow-selector,.quick-unit-choice.flow-selector,.duration-options.flow-selector{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
:is(.workflow-filters,.quick-unit-choice,.duration-options).flow-selector>button{flex:1 0 auto;min-height:40px;padding:8px 14px;white-space:nowrap}
/* A single moving lens covers icon and label. Buttons never carry separate rectangular fills. */
#dock.flow-selector{--selector-fill:color-mix(in srgb,var(--soft) 88%,transparent);padding:5px;background:var(--surface);border-radius:0;isolation:isolate}
#dock.flow-selector::before{z-index:0;box-shadow:inset 0 .5px 0 #ffffffb3,inset 0 0 0 .5px var(--selector-edge),0 2px 6px #1822380c}
#dock.flow-selector>button{z-index:1;max-width:none;border-radius:999px;min-height:56px}
#dock.flow-selector .dock-symbol{background:transparent!important;border-radius:999px;--dock-cutout:var(--soft);transition:transform .5s var(--selection-spring),color .24s var(--flow-ease)}
#dock.flow-selector button.active .dock-symbol{transform:translateY(-1px)}
body[data-dock-style=floating] #dock.flow-selector{position:absolute;inset:auto 0 max(10px,var(--safe-bottom,env(safe-area-inset-bottom,0px)));margin:0 auto;width:calc(100% - 24px);max-width:700px;border-radius:999px;border:.5px solid color-mix(in srgb,var(--surface) 70%,var(--line));box-shadow:inset 0 1px 0 #ffffffb0,0 6px 24px #18233819,0 1px 4px #18233812}
body[data-dock-style=floating]:not(.editor-open) #screen>.page{padding-bottom:calc(100px + var(--safe-bottom,env(safe-area-inset-bottom,0px)))}
body[data-dock-style=floating][data-dock-material=glass] #dock.flow-selector{background:color-mix(in srgb,var(--surface) 78%,transparent);backdrop-filter:blur(24px) saturate(165%);-webkit-backdrop-filter:blur(24px) saturate(165%)}
body[data-dock-selection=underline] #dock.flow-selector::before{background:var(--brand);height:3px;top:calc(var(--selector-h) - 1px);box-shadow:none;transform:translate3d(var(--selector-x),var(--selector-y),0) scaleX(.3);transform-origin:center}
body[data-dock-selection=underline] #dock .nav-line{display:none}
body[data-dock-selection=simple] #dock.flow-selector::before{display:none}
body[data-dock-size=compact] #dock.flow-selector>button{min-height:46px}
body[data-dock-labels=false] #dock.flow-selector>button{min-height:48px}
@media(min-width:600px){body[data-dock-position=side] #dock.flow-selector{touch-action:pan-x}body[data-dock-position=side][data-dock-style=floating] #dock.flow-selector{left:10px;right:auto;top:50%;bottom:auto;margin:0;width:72px;border-radius:36px}}
@media(min-width:1000px){body[data-dock-position=auto] #dock.flow-selector{touch-action:pan-x}body[data-dock-position=auto][data-dock-style=floating] #dock.flow-selector{left:10px;right:auto;top:50%;bottom:auto;margin:0;width:72px;border-radius:36px}}
/* Progress uses its existing autosave/rollback logic and the same capsule geometry. */
.stage-slider,.stage-slider.two-stages{border-radius:999px;padding:4px}
.stage-slider button,.stage-thumb{border-radius:999px}
.stage-thumb{box-shadow:inset 0 0 0 .5px var(--selector-edge),0 2px 7px #15233a12;transition:transform .56s var(--selection-spring)}
.stage-slider[data-dragging] .stage-thumb{transition:none}
/* Always a capsule, even with the smallest card corners. */
body[data-corners] .switch-toggle{width:42px;height:26px}
body[data-corners] .switch-toggle>span{border-radius:999px!important;transition:background-color .28s ease,box-shadow .28s ease}
body[data-corners] .switch-toggle>span::after{width:20px;height:20px;left:3px;top:3px;border-radius:50%;box-shadow:0 1px 3px #15233a24;transition:transform .52s var(--selection-spring),width .16s ease}
body[data-corners] .switch-toggle input:checked+span::after{transform:translateX(16px)}
body[data-corners] .switch-toggle:active>span::after{width:23px}
body[data-corners] .switch-toggle:active input:checked+span::after{transform:translateX(13px)}
/* The inset tint is clipped by the control's own border radius. It never changes text opacity. */
button[data-action],a[href]{transition:background-color .24s var(--flow-ease),color .24s var(--flow-ease),box-shadow .28s var(--flow-ease);-webkit-tap-highlight-color:transparent}
button[data-action]:active,button.flow-pressed,a[href]:active{box-shadow:inset 0 0 0 100vmax var(--press-shade)}
.quick-fill-types .menu-row{padding-left:16px}
body[data-natural-motion=false] :is(.flow-selector::before,.flow-selector>button,.stage-thumb,.switch-toggle>span,.switch-toggle>span::after,button[data-action],a[href]){transition:none!important}
@media(prefers-reduced-motion:reduce){.flow-selector::before,.flow-selector>button,.stage-thumb,.switch-toggle>span,.switch-toggle>span::after,button[data-action],a[href]{transition:none!important}}

/* Only the moving lens owns a selected fill or press shadow. Native :active stays on the initial button while dragging. */
.flow-selector>button,.flow-selector>button:is(:active,.active,.flow-pressed),.stage-slider>button,.stage-slider>button:is(:active,.active,.flow-pressed){background:transparent!important;background-image:none!important;box-shadow:none!important;filter:none}
.flow-selector[data-selector-dragging]>button.active:not([data-lens-active]){color:var(--muted)}
.flow-selector[data-selector-dragging]>button[data-lens-active]{color:var(--brand)}
.flow-selector[data-selector-dragging]>button{transition:none}
#dock.flow-selector[data-selector-dragging]>button.active:not([data-lens-active]){color:var(--muted)}
#dock.flow-selector[data-selector-dragging]>button[data-lens-active]{color:var(--brand)}
#dock[data-selector-dragging] button.active:not([data-lens-active]) .dock-label{font-weight:400}
#dock[data-selector-dragging] button[data-lens-active] .dock-label{font-weight:650}
#dock[data-selector-dragging] button.active:not([data-lens-active]) .dock-symbol{transform:none}

/* Strong specular edges and a moving highlight are restricted to the one small navigation/control lens. */
:root{--lens-tint:color-mix(in srgb,var(--surface) 60%,transparent);--lens-top:#ffffffec;--lens-lip:#62758b42;--lens-shadow:#24364f26}
body[data-theme=dark]{--lens-tint:color-mix(in srgb,var(--surface) 76%,transparent);--lens-top:#ffffff80;--lens-lip:#05080c99;--lens-shadow:#00000055}
.flow-selector::before,#dock.flow-selector::before,.stage-thumb{background:radial-gradient(ellipse at var(--lens-light-x,28%) 0%,#ffffffe0 0%,#ffffff59 25%,transparent 62%),linear-gradient(115deg,#ffffff75 0%,transparent 37%,#ffffff10 58%,#ffffff65 100%),var(--lens-tint);border:.6px solid color-mix(in srgb,var(--surface) 82%,var(--text));box-shadow:inset 0 1.4px 1px var(--lens-top),inset 0 -1.3px 1.8px var(--lens-lip),inset 1px 0 1px #ffffff88,inset -1px 0 1px #ffffff66,0 3px 9px var(--lens-shadow);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);box-sizing:border-box}
.flow-selector[data-selector-dragging]::before,.stage-slider[data-dragging] .stage-thumb{box-shadow:inset 0 1.6px 1px var(--lens-top),inset 0 -1.4px 2px var(--lens-lip),inset 1px 0 1px #ffffffb0,inset -1px 0 1px #ffffff90,0 4px 12px var(--lens-shadow)}
/* Equal border geometry prevents the first item in each grid row sitting above its siblings. */
.page[data-page=my] .my-link-row>.menu-row{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:28px auto;justify-items:center;align-content:center;align-items:center;gap:6px;padding:10px 6px;border-top:0!important}
.page[data-page=my] .my-link-row>.menu-row>.menu-tile{align-self:center;margin:0}
.page[data-page=my] .my-link-row>.menu-row>.grow{align-self:center;line-height:1.5;margin:0}

/* Refreshed content keeps its scroll position; replacement labels share their surface motion. */
.sheet-body{position:relative;overflow-anchor:none}

.ux-tabs.flow-selector>button[aria-pressed=true]{background:transparent!important;box-shadow:none}
.ux-tabs.flow-selector[data-selector-dragging]>button[aria-pressed=true]:not([data-lens-active]){color:var(--muted)}
.ux-tabs.flow-selector[data-selector-dragging]>button[data-lens-active]{color:var(--brand)}

/* The glass rail is translucent over page content; the single movable lens remains independent. */
#dock.flow-selector,body[data-dock-style=floating] #dock.flow-selector,body[data-dock-style=floating][data-dock-material=solid] #dock.flow-selector,body[data-dock-style=floating][data-dock-material=glass] #dock.flow-selector{background:color-mix(in srgb,var(--surface) 12%,transparent);backdrop-filter:blur(14px) saturate(180%);-webkit-backdrop-filter:blur(14px) saturate(180%);border-color:color-mix(in srgb,var(--surface) 80%,transparent);isolation:isolate;contain:layout style}
body[data-theme=dark] #dock.flow-selector{background:color-mix(in srgb,var(--surface) 24%,transparent);border-color:#ffffff24}
body[data-dock-material=solid] #dock.flow-selector,body[data-dock-style=floating][data-dock-material=solid] #dock.flow-selector{background:color-mix(in srgb,var(--surface) 22%,transparent);backdrop-filter:blur(20px) saturate(170%);-webkit-backdrop-filter:blur(20px) saturate(170%)}
#dock.flow-selector::before{backface-visibility:hidden}
.flow-selector[data-selector-resizing]::before{transition:none!important}
.progress-pager{position:relative;overflow:hidden;touch-action:pan-y;min-height:max(150px,calc(100dvh - 220px));isolation:isolate}
.progress-track{display:flex;align-items:flex-start;width:300%;transform:translateX(calc(var(--progress-index,0) * -100% / 3))}
.progress-pane{width:calc(100% / 3);flex:none;min-width:0;box-sizing:border-box;padding-bottom:1px}
.progress-pane .shoot-cell{content-visibility:visible}
.progress-pager[data-progress-moving] .progress-track{backface-visibility:hidden}
.upcoming-card,.community-card{padding:22px;margin:0 auto 14px;text-align:center;display:grid;justify-items:center;gap:12px;max-width:560px}
.upcoming-card h1{font-size:calc(23px * var(--text-scale))}.upcoming-card p,.community-card p{line-height:1.7;margin:0}
.upcoming-symbol{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;color:var(--brand);background:var(--brand-soft)}
.upcoming-symbol svg{width:25px;height:25px}.community-card h2{font-size:var(--font-section)}
.community-image{max-width:280px;width:100%;padding:0;border-radius:var(--radius);overflow:hidden;line-height:0}
.community-image img{width:100%;height:auto;display:block}.community-card>strong{font-size:var(--font-section)}
.community-actions{display:flex;gap:10px;width:100%;max-width:360px}.community-actions>button{flex:1;min-width:0;min-height:44px}
.community-full-image{display:block;width:100%;max-width:430px;height:auto;margin:0 auto 16px}
/* Page-level removal ghosts may never cover the navigation. Modal ghosts keep their own higher layer. */
.motion-ghost.page-ghost,.flow-text-ghost.page-ghost{z-index:7}

/* Thin tint, rather than stacked white fills, lets real content remain visible through the lens. */
#dock.flow-selector{--lens-tint:color-mix(in srgb,var(--surface) 7%,transparent);box-shadow:inset 0 1px 0 #ffffff90,0 8px 28px #1523381c,0 1px 5px #15233816}
#dock.flow-selector::before{background:radial-gradient(ellipse at var(--lens-light-x,28%) 0%,#ffffff38 0%,#ffffff0a 28%,transparent 64%),linear-gradient(115deg,#ffffff10,transparent 42%,#ffffff04 65%,#ffffff18),var(--lens-tint);backdrop-filter:blur(5px) saturate(170%);-webkit-backdrop-filter:blur(5px) saturate(170%);border-color:#ffffff80}
body[data-theme=dark] #dock.flow-selector{--lens-tint:color-mix(in srgb,var(--surface) 18%,transparent)}

/* PWA help uses the existing sheet, type, spacing and button contract. */
.pwa-install-guide{display:grid;gap:12px;line-height:1.65}
.pwa-install-brand{display:flex;align-items:center;gap:12px}
.pwa-install-brand>img{width:48px;height:48px;border-radius:var(--corner-12);flex:none}
.pwa-install-brand .caption{margin:4px 0 0}
.pwa-install-guide p{margin:0}
.pwa-install-guide ol{margin:0;padding-left:24px;display:grid;gap:8px}
.pwa-install-guide .sheet-footer{margin-top:4px}

.page[data-page=undo-history]{--page-content:900px}
.undo-summary{padding:16px;display:grid;gap:8px;margin-bottom:14px}.undo-summary>strong{font-size:var(--font-section)}.undo-summary>span,.undo-summary>p{font-size:var(--font-sm);line-height:1.7;color:var(--muted);margin:0}
.undo-records{display:grid;gap:9px}.undo-record{padding:13px 14px;display:flex;align-items:center;gap:12px}.undo-record-main{min-width:0;flex:1}.undo-record strong{font-size:var(--font-body)}.undo-record p{margin:5px 0;font-size:var(--font-sm);overflow-wrap:anywhere;line-height:1.5}.undo-record small{font-size:var(--font-xs);color:var(--muted);line-height:1.6}.undo-record>button{min-width:68px;min-height:40px;padding:8px 12px;flex:none}.undo-record>button:disabled{opacity:.65}.undo-boundary{font-size:var(--font-xs);line-height:1.7;margin:8px 0 18px}

.ce-summary{padding:16px;margin-bottom:12px}.ce-summary p{margin:8px 0 0;color:var(--muted)}.ce-form .menu-row{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left}.ce-form .menu-row small{overflow-wrap:anywhere}.ce-count{margin:16px 0 10px;font-weight:600}.ce-errors{background:var(--soft);padding:12px;border-radius:var(--corner-14)}.ce-errors h3{font-size:16px;margin:0 0 8px}.ce-errors>div{padding:8px 0}.ce-errors p,.ce-help p{line-height:1.65;overflow-wrap:anywhere}.ce-actions{display:grid;gap:12px;margin-top:12px}.ce-orders{margin:12px 0}.ce-form input{min-height:44px;font-size:max(16px,var(--font-body))}.calendar-head>[data-action=ce-more]{flex-shrink:0}.support-code{display:block;width:min(100%,300px);height:auto;margin:16px auto;border-radius:var(--corner-14)}.support-copy{line-height:1.75}.support-actions{display:grid;gap:12px}

/* Compact shared layout contract. Colours and radii come from the current appearance. */
.ux-page{--ux-xs:8px;--ux-gap:12px;--ux-section:20px}
.ux-page .section-head{margin:16px 0 10px;min-height:28px}
.ux-page .section-head h2,.ux-page .ux-group h2{font-size:var(--font-label);font-weight:650}
.ux-hub-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.ux-group{min-width:0;margin:0}.ux-group>.section-head{margin:0 0 8px}
.ux-page .menu-row{min-height:52px;padding:11px 14px;gap:12px;box-sizing:border-box}
.ux-page .menu-row strong{font-size:var(--font-body);line-height:1.45}.ux-page .menu-row small{font-size:var(--font-sm);line-height:1.5;margin-top:3px}
.ux-page .menu-group{margin:0;overflow:clip}
.ux-page .feature-search{margin:0 0 20px}.ux-page .profile-hero{padding:12px 0 18px;margin-bottom:0}
.ux-footer-links{display:grid;grid-template-columns:1fr 1fr;margin-top:20px!important}
.ux-footer-links .menu-row{border-bottom:0!important}.ux-footer-links .menu-row+.menu-row{border-left:1px solid var(--line)}
.ux-page .back-head{margin-bottom:16px;min-height:44px}.ux-page .back-head h2{font-size:var(--font-section)}
.ux-policy-links{display:flex;justify-content:center;gap:24px;margin:28px 0 8px}.ux-policy-links button{font-size:var(--font-ui);color:var(--muted)}
.ux-page[data-page=settings]>.ux-group+.ux-group{margin-top:20px}.ux-save-hint{padding:12px 2px;line-height:1.6}
.ux-tabs{display:flex;gap:6px;overflow:auto;padding:4px;margin:0 0 16px;background:var(--soft);border-radius:999px;scrollbar-width:none}
.ux-tabs>button{flex:1 0 auto;min-height:40px;padding:8px 14px;border-radius:999px;font-size:var(--font-ui);white-space:nowrap;transition:background .18s,color .18s,transform .18s}
.ux-tabs>button[aria-pressed=true]{background:var(--surface);color:var(--brand);box-shadow:0 1px 3px #0000000d}.ux-tabs>button:active{transform:scale(.96)}
.ux-disclosure{padding:0!important;overflow:clip;border-radius:var(--radius)}
.ux-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;list-style:none;min-height:62px;box-sizing:border-box}
.ux-disclosure>summary::-webkit-details-marker{display:none}.ux-disclosure>summary strong{font-size:var(--font-body);line-height:1.5}.ux-disclosure>summary small{display:block;font-size:var(--font-sm);color:var(--muted);line-height:1.5;margin-top:3px}
.ux-summary-value{display:flex;align-items:center;gap:8px;font-size:var(--font-sm);color:var(--muted);flex-shrink:0;max-width:45%;overflow-wrap:anywhere}.ux-summary-value svg,.ux-disclosure>summary>svg{width:16px;height:16px;transition:transform .2s}.ux-disclosure[open]>summary .ux-summary-value>svg,.ux-disclosure[open]>summary>svg{transform:rotate(180deg)}
.ux-disclosure[open]>summary{border-bottom:1px solid var(--line)}.ux-disclosure-body{padding:14px 16px;display:grid;gap:12px}.ux-disclosure-body>.person-block{padding:0;margin:0;border:0;background:transparent}
.ux-person-name{min-width:0;overflow-wrap:anywhere}.ux-person{background:var(--surface)}.ux-person .ux-disclosure-body .person-options{margin-top:8px}
.ux-page .quick-fill-rows,.ux-page [data-region=participants]{gap:12px}.ux-page .quick-fill-fields{gap:12px}
.ux-remove-row{justify-self:end;color:var(--danger,#c44);width:auto!important}.ux-rule .custom-rule-actions{display:flex;gap:10px}.ux-rule .custom-rule-actions>*{flex:1}
.ux-duplicate-save{display:none!important}.ux-page[data-ux-template=editor] .form-error{margin:0}.ux-page[data-ux-template=editor] .editor-actions{padding-top:0}
.ux-page[data-page=custom-services] form,.ux-page[data-page=custom-cooperations] form{gap:12px}
.ux-page .retouch-choice{display:flex;align-items:center;gap:12px}.ux-page .retouch-choice .caption{font-size:var(--font-xs);line-height:1.5;flex:1;margin:0}.ux-page .retouch-choice .switch-row{flex:0 1 auto;min-width:140px}
.ux-page input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]),.ux-page textarea,.ux-page select{font-size:max(16px,1em)!important}
.ux-page .appearance-preview-pane{position:static}.ux-page .appearance-preview{margin:0}.ux-page .appearance-preview-canvas{min-height:150px;padding:14px}.ux-page .appearance-preview-note{display:none}.ux-page .appearance-preview-card{padding:12px;margin:0 0 12px}.ux-page .appearance-preview-card p{margin:6px 0}.ux-page .appearance-mini-dock{margin-top:12px}.ux-page .appearance-preview-heading{padding:12px 14px}
.ux-page .design-palettes{gap:8px}.ux-page .palette-choice{min-height:72px;padding:10px;font-size:var(--font-sm)}.ux-page .palette-choice i{width:24px;height:24px}
.ux-page .convention-layout{gap:12px}.ux-page .convention-layout section{margin-top:0}.ux-page .convention-summary>.surface{padding:14px}.ux-page .metric{padding:10px 8px}.ux-page .metric strong{font-size:var(--font-number)}
.ux-page .convention-tile{padding:14px;min-height:100px}.ux-page .convention-tile .event-name{font-size:var(--font-section)}
.ux-snapshot-actions{position:relative}.ux-snapshot-actions>summary{font-size:var(--font-sm);padding:10px 8px;min-height:40px;cursor:pointer}.ux-snapshot-actions .row{flex-wrap:wrap;gap:8px}.ux-page[data-page=snapshots] .surface{padding:14px}.ux-page[data-page=snapshots] .menu-group{overflow:visible}
.ux-home-content{display:grid;gap:20px}.ux-home-content>.ux-shortcut-section .section-head{margin-top:4px}.ux-home-content .section-head{margin-top:0}.ux-home-content [data-region=booking-pending]:empty{display:none}
.ux-shortcut-panel{touch-action:pan-y;overscroll-behavior-x:contain;background:var(--surface);border-radius:var(--radius);padding:14px 6px 4px;overflow:hidden}.ux-shortcut-pager{overflow:hidden;touch-action:pan-y;overscroll-behavior-x:contain;outline-offset:2px}.ux-shortcut-track{display:flex;will-change:transform}.ux-shortcut-page{flex:0 0 100%;min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(78px,auto);align-content:start}
.ux-shortcut{display:flex;align-items:center;justify-content:flex-start;flex-direction:column;gap:8px;padding:5px 2px;border-radius:var(--r-sm,6px);min-width:0;font-size:var(--font-xs);line-height:1.35}.ux-shortcut .menu-tile{width:34px!important;height:34px!important;border-radius:9px!important}.ux-shortcut .menu-tile svg{width:20px!important;height:20px!important}.ux-shortcut:active{background:var(--soft)}
.ux-page-dots{display:flex;justify-content:center;gap:2px;height:28px}.ux-page-dots button{width:28px;height:28px;display:grid;place-content:center}.ux-page-dots i{width:5px;height:5px;border-radius:99px;background:var(--line);transition:width .2s,background .2s}.ux-page-dots [aria-pressed=true] i{width:16px;background:var(--brand)}
.ux-shortcut-settings .menu-row{gap:4px}.ux-shortcut-settings .icon-button{width:40px;min-width:40px;height:40px}.ux-shortcut-settings .grow{font-size:var(--font-ui)}.ux-page button:disabled{opacity:.4;cursor:default}
.ux-booking-overview{display:grid;gap:20px}.ux-page .booking-publication{padding:16px;margin-bottom:12px}.ux-page .booking-actions{gap:8px;flex-wrap:wrap}.ux-page .booking-actions button{min-height:40px;padding:9px 12px}.ux-page .booking-rate{padding:10px}.ux-page .booking-plan-controls .text-action{font-size:var(--font-sm)}.ux-page .booking-editor{gap:12px}.ux-page .booking-editor>.surface{padding:16px}
@media(min-width:760px){.ux-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.ux-page .appearance-layout{grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:24px}.ux-page .appearance-preview-pane{position:sticky;top:16px;align-self:start}.ux-home-content{max-width:1000px;margin:0 auto}.ux-shortcut-page{grid-auto-rows:84px}.ux-booking-overview{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.ux-page *{scroll-behavior:auto!important}.ux-tabs>button,.ux-disclosure svg,.ux-page-dots i{transition:none!important}}

.ux-page .event-card{padding:16px;min-height:112px;gap:8px;background:var(--surface)}
.ux-page .event-card:first-child{background:var(--surface);border-color:var(--line)}
.ux-page .event-card h2{font-size:var(--font-section);line-height:1.5;margin:0;padding-right:22px}.ux-page .event-card p{font-size:var(--font-ui);margin:0 0 3px}.ux-page .event-card .event-number{right:16px;top:16px;font-size:var(--font-xs)}.ux-page .event-card>svg{right:16px;bottom:16px;width:18px}.ux-page .event-flow{gap:12px}
@media(max-width:759px){
 .ux-page .appearance-preview{display:grid;grid-template-columns:minmax(0,1fr) 170px;align-items:center;padding:8px;gap:6px}
 .ux-page .appearance-preview-heading{padding:8px;display:block}.ux-page .appearance-preview-heading .menu-tile{display:none}.ux-page .appearance-preview-heading strong{font-size:var(--font-ui)}.ux-page .appearance-preview-heading small{font-size:var(--font-xs);line-height:1.5;margin-top:6px}
 .ux-page .appearance-preview-canvas{min-height:0;padding:8px}.ux-page .appearance-preview-card{padding:8px;margin-bottom:8px}.ux-page .appearance-sample-row strong{font-size:var(--font-xs)}.ux-page .appearance-sample-row .badge{font-size:var(--font-xs);padding:3px}.ux-page .appearance-preview-card p{font-size:var(--font-xs);margin:5px 0}.ux-page .appearance-preview-card small{font-size:var(--font-xs)}
 .ux-page .appearance-mini-dock{height:38px;min-height:40px;padding:4px;margin:0}.ux-page .appearance-mini-dock svg{width:13px;height:13px}.ux-page .appearance-mini-dock small{font-size:var(--font-xs)}.ux-page .appearance-mini-dock>span{gap:2px}
}
/* Long names stay readable without pushing primary controls off screen. */
.ux-page .ux-long-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;min-width:0;line-height:1.5}
.ux-heading-label{display:block;width:100%;min-height:44px;padding:0;text-align:inherit;font:inherit;line-height:inherit;color:inherit;background:none;border:0}
.ux-page .profile-hero small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.ux-heading-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
/* Record summaries remain compact; their detail pages retain the complete content. */
.ux-page .event-order-main :is(strong,small),.ux-page .menu-row strong,.ux-page .shoot-content :is(.person-title,.role,.note){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
