:root{color-scheme:light;--bg:#F3F3F5;--paper:#fff;--ink:#28232B;--muted:#938791;--line:#E6E0E6;--accent:#852F4B;--tint:#F7F1F5;--font:-apple-system,BlinkMacSystemFont,"Pretendard","Apple SD Gothic Neo",system-ui,sans-serif;font-family:var(--font);font-size:14px;line-height:1.55;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}a{color:var(--accent)}[hidden]{display:none!important}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #AB6C89;outline-offset:3px}
.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 940px)/2));border-bottom:1px solid var(--line);background:#FFFFFFD9}
.brand{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:550;letter-spacing:.5px}
.mark{width:33px;height:33px;border-radius:10px;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:17px;letter-spacing:-2px}.mark span{color:#DFC4D0}
.brand small{display:block;font-size:7px;letter-spacing:1.5px;color:var(--muted);font-weight:400}.back{font-size:11px;font-weight:450;text-decoration:none;color:#8C687B}
main{max-width:940px;padding:34px 24px 80px;margin:auto}.eyebrow{color:#A38295;font-size:8px;font-weight:450;letter-spacing:1.8px}
.hero{margin-bottom:30px}.hero h1{font-size:clamp(29px,5vw,40px);font-weight:550;letter-spacing:-1.4px;margin:8px 0;line-height:1.25}.hero h1 span{color:var(--accent)}.hero p{color:var(--muted);font-size:12px;margin:0}
.date-row{display:flex;gap:12px;align-items:center;max-width:380px;margin-top:20px;padding:9px 12px;border:1px solid var(--line);border-radius:11px;background:var(--paper)}
.date-row label{white-space:nowrap;font-size:10px;color:#A18A98}.date-row input{flex:1;min-width:0;border:0;color:#5B414F;background:transparent;font-weight:500;min-height:32px}.date-row button{border:0;border-radius:7px;padding:8px 10px;min-height:34px;font-size:10px;font-weight:450;color:var(--accent);background:var(--tint);white-space:nowrap}
.panel,.extras{border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:24px;box-shadow:none}.panel h2{font-size:19px;font-weight:500;letter-spacing:-.5px}.panel p{color:var(--muted);font-size:12px}.primary-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--accent);color:#fff;text-decoration:none;padding:10px 16px;border-radius:9px;font-size:12px;font-weight:500}
.section-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 15px}.section-title h2{font-size:18px;font-weight:500;letter-spacing:-.6px;margin:5px 0 0}.count{background:#EDE6EC;border-radius:20px;color:#8D6C7F;padding:5px 10px;font-size:10px;font-weight:450;font-variant-numeric:tabular-nums}
.empty{text-align:center;padding:42px 20px;background:var(--paper);border:1px solid var(--line);border-radius:16px;margin-bottom:18px}.empty-symbol{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--tint);font-size:23px;font-weight:300;color:var(--accent)}.empty h3{font-size:19px;font-weight:500;letter-spacing:-.6px;margin:15px 0 7px}.empty p{font-size:12px;color:var(--muted);margin:0 0 21px;line-height:1.8}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.slot{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.slot-photo{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;border:0;padding:0;background:#FCFBFC;overflow:hidden;color:#C0AEBB;cursor:pointer}.slot-photo::after{content:'＋';position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:28px;height:28px;background:#FFFFFFEB;border:1px solid #E6DCE4;border-radius:50%;font-size:17px;font-weight:300;color:var(--accent)}.slot-photo:has(.placeholder)::after{display:none}.slot-photo img{width:100%;height:100%;object-fit:contain}.slot-photo .placeholder{font-size:34px;font-weight:200;color:#D0C0CC}
.slot-body{padding:13px;display:flex;flex-direction:column;gap:5px;min-width:0}.slot-heading{font-size:12px;font-weight:550;color:#57414F}.slot-caption{font-size:9px;color:#B09EAA;line-height:1.5}.slot select{width:100%;min-height:40px;border:1px solid #EBE4E9;background:#fff;border-radius:8px;padding:7px 8px;color:#7F6776;font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.slot-selected{display:none}
.extras{margin-top:24px;padding:23px}.extras h2{font-size:18px;font-weight:500;letter-spacing:-.6px;margin:5px 0 19px}.extras label{display:block;font-size:11px;font-weight:450;color:#8A7181;margin:15px 0 7px}.extras select,.extras textarea{display:block;width:100%;border:1px solid var(--line);background:#FDFCFE;border-radius:9px;padding:11px;color:#59434F;font-size:12px}.extras textarea{resize:vertical;min-height:80px}.actions{margin-top:20px;display:flex;gap:9px;justify-content:flex-end}.actions button{border-radius:9px;padding:11px 16px;font-size:12px;font-weight:500;border:1px solid var(--line);min-height:44px}.actions .outline{background:white;color:#9B7489}.actions .primary{background:var(--accent);border-color:var(--accent);color:#fff;flex:1;max-width:260px}
#feedback{font-size:11px;line-height:1.7;min-height:0;margin:11px 0 0;color:var(--accent)}#feedback:empty{display:none}.history{margin-top:30px}.history-list{display:grid;gap:8px}.history-empty{font-size:12px;color:var(--muted)}.history-entry{width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:11px;min-height:61px;padding:12px 15px;display:flex;justify-content:space-between;align-items:center;gap:14px;color:#59434F}.history-entry .date{font-weight:500;display:block;font-size:12px}.history-entry .meta{font-size:10px;color:#A08C9A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-entry .arrow{font-size:19px;font-weight:300;color:#B08A9E}.history-entry.selected{border-color:#C39BAE;background:#FCF8FB}
#item-picker{width:min(720px,calc(100vw - 28px));max-height:88dvh;padding:0;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);overflow:auto;box-shadow:0 20px 80px #38202C24}#item-picker::backdrop{background:#21172180;backdrop-filter:blur(4px)}
.picker-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:19px 20px 12px}.picker-head p{margin:0}.picker-head h2{font-size:21px;font-weight:500;letter-spacing:-.7px;margin:5px 0 0}.picker-head button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#F5F0F4;color:#8D6B7E;font-size:24px;font-weight:300}.picker-search-wrap{padding:0 20px}.picker-search-wrap input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:12px;background:#FCFAFC}.picker-count{margin:13px 20px;color:#A18A98;font-size:10px}.picker-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;padding:0 20px 18px}.picker-card{text-align:left;display:flex;flex-direction:column;overflow:hidden;border:1px solid #E7E0E6;border-radius:11px;background:white;padding:0 0 11px;color:var(--ink)}.picker-card[aria-pressed=true]{border-color:#852F4B;box-shadow:0 0 0 1px #852F4B}.picker-photo{display:grid;place-items:center;width:100%;aspect-ratio:1;background:#F8F5F8;color:#CEBFCA;overflow:hidden;font-size:27px}.picker-photo img{width:100%;height:100%;object-fit:contain}.picker-brand{padding:9px 9px 2px;font-size:9px;letter-spacing:.6px;color:#A57F93}.picker-name{padding:0 9px;font-size:11px;font-weight:450;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.picker-empty{padding:30px 22px 45px;text-align:center;font-size:12px;color:var(--muted)}.picker-more{display:block;min-height:42px;margin:0 auto 15px;border:1px solid var(--line);border-radius:8px;background:white;color:#8D6B7E;padding:8px 20px;font-size:11px}.picker-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--line);background:#FAF8FA;position:sticky;bottom:0}.picker-footer button{border:1px solid #E5DAE2;background:white;border-radius:8px;color:#8D667D;padding:9px 12px;min-height:42px;font-size:11px}.picker-footer span{font-size:9px;color:#A58D9C;max-width:160px}
@media(max-width:640px){.topbar{padding:0 16px;height:58px}.brand{font-size:12px}.brand small{font-size:6px}.back{font-size:10px}main{padding:25px 15px calc(95px + env(safe-area-inset-bottom))}.hero{margin-bottom:26px}.hero h1{font-size:30px;letter-spacing:-1px}.hero p{font-size:11px}.date-row{max-width:none;margin-top:18px;gap:8px}.slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.slot-body{padding:11px 10px}.slot-caption{font-size:8px}.slot select{font-size:10px}.extras{padding:20px 16px}.empty{padding:32px 17px}.picker-options{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline:15px;gap:10px}#item-picker{width:100vw;max-width:100vw;max-height:93dvh;margin:auto 0 0;border-radius:20px 20px 0 0}.picker-head{padding:18px 16px 12px}.picker-search-wrap{padding-inline:15px}.picker-count{margin-inline:15px}.picker-footer{padding:11px 15px calc(11px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

@media(max-width:640px){main{padding-bottom:calc(155px + env(safe-area-inset-bottom))}.save-bar{position:fixed;z-index:3;bottom:0;left:0;right:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#FFFFFFF5;backdrop-filter:blur(12px)}.save-bar .actions{margin:0}.save-bar .actions .primary{max-width:none}.save-bar #feedback{font-size:10px;margin-top:6px;max-height:38px;overflow:auto}}

@media(max-width:640px){.hero p,.panel p,.empty p{font-size:13px}.slot-heading{font-size:14px}.slot-caption{font-size:11px}.slot select,.extras select,.extras textarea,.picker-search-wrap input{font-size:16px}.extras label,.picker-name{font-size:13px}.picker-brand,.picker-count{font-size:11px}.picker-footer span{font-size:11px}.actions button{font-size:14px}.date-row input{font-size:16px}.date-row label,.date-row button{font-size:11px}.back{font-size:12px}.picker-head button{width:44px;height:44px}}
