:root{--ink:#35324a;--muted:#746f83;--purple:#7561be;--paper:#faf8f4;--line:#e8e2ed;--pink:#f4dce2}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-rounded,'Trebuchet MS',system-ui,sans-serif;font-size:16px}button,input,select{font:inherit}button,.button{min-height:48px;border:0;border-radius:14px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer;font-weight:700;color:var(--ink);background:#eee9f6}button:hover,.button:hover{filter:brightness(.96)}button:disabled{opacity:.6;cursor:wait}:focus-visible{outline:3px solid #b17525;outline-offset:4px}a{color:inherit;text-decoration:none}h1{font-size:clamp(30px,3.5vw,48px);line-height:1.2;letter-spacing:-1.5px;margin:18px 0}h2{font-size:22px;margin:0 0 15px}h3{margin:0 0 8px}p{line-height:1.65}label{display:block;font-size:14px;font-weight:700;margin:14px 0 8px}input:not([type=color]),select{width:100%;min-height:48px;border:1px solid #d7d0df;border-radius:12px;padding:12px;background:white;color:var(--ink)}.topbar{height:94px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fffdfb}.brand{font-size:42px;color:var(--purple);display:flex;align-items:center;gap:12px}.brand span{font-size:21px;line-height:1.2;color:var(--ink)}.brand b{display:block;color:var(--purple)}.account{display:flex;align-items:center;gap:24px;font-size:14px}.primary{background:var(--purple);color:white;box-shadow:0 4px 0 #5e4b9f}.secondary{background:#e8ddf7;color:#57428d}.quiet{background:transparent;border:1px solid var(--line)}.wide{width:100%;margin-top:16px}.note{font-size:13px;color:var(--muted)}.eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;color:#817397}.pill{font-size:13px;background:#efe8fa;color:#665192;padding:9px 13px;border-radius:20px}.login-layout{max-width:1150px;margin:65px auto;display:grid;grid-template-columns:1.3fr 1fr;gap:90px;padding:30px}.welcome p{max-width:460px;color:var(--muted)}em{font-style:normal;color:var(--purple)}.login-card{background:white;padding:38px;border-radius:28px;border:1px solid var(--line);box-shadow:0 14px 50px #44316808;align-self:center}.login-card h2{font-size:30px;margin-top:28px}.welcome-art{display:flex;align-items:center;justify-content:center;gap:30px;height:230px;color:#d99c50;font-size:60px}.mascot{position:relative;width:155px;height:155px;border-radius:65px 65px 55px 55px;background:#b9c8a1;transform:rotate(-8deg);box-shadow:12px 15px 0 #e7ddee}.mascot i{position:absolute;width:12px;height:18px;border-radius:50%;background:var(--ink);top:64px;left:42px}.mascot i+i{left:98px}.mascot b{position:absolute;top:69px;left:65px;font-size:35px}.error{color:#a32943;background:#ffedf0;padding:12px;border-radius:10px}.dashboard{max-width:1300px;margin:auto;padding:36px 5%}.hero{background:#eee8f6;border-radius:28px;display:flex;justify-content:space-between;align-items:center;padding:40px 45px;overflow:hidden}.hero p{color:var(--muted)}.hero-decoration{font-size:70px;color:#c59943;display:flex;align-items:center;gap:25px}.hero-decoration span{font-size:175px;color:#b29bd4;transform:rotate(15deg)}.categories{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0}.categories>span{padding:16px 20px;background:#f0eeeb;border-radius:14px;font-size:14px;color:var(--muted)}.categories .active{background:#e7dcf6;color:#604693;font-weight:700}.categories small{font-size:10px;margin-left:6px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:32px 0 20px}.section-title>span{font-size:13px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:22px}.new-card{border:2px dashed #d8cbea;border-radius:24px;min-height:295px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:#f5f0fa}.new-card strong{font-size:40px;color:var(--purple)}.new-card p{font-size:14px;color:var(--muted);margin:0}.project-card{position:relative;border:1px solid var(--line);border-radius:24px;background:white;overflow:hidden}.preview{height:215px;background:#f0efe8}.preview svg{height:100%;width:100%}.project-meta{padding:20px 20px 60px}.project-meta p{font-size:12px;color:var(--muted);margin:0}.delete{position:absolute;bottom:12px;right:12px;min-height:40px;font-size:12px}.editor{padding:24px 3%;max-width:1600px;margin:auto}.editor-top{display:flex;align-items:center;gap:24px;margin-bottom:24px}.name-label{margin:0 auto 0 0;max-width:420px;flex:1;font-size:12px}.name-label input{margin-top:5px}.editor-layout{display:grid;grid-template-columns:240px minmax(300px,1fr) 230px;gap:24px;align-items:start}.panel{padding:24px 20px;background:white;border:1px solid var(--line);border-radius:22px}.panel h2{font-size:18px}.panel p{font-size:14px;color:var(--muted)}.variants{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0 30px}.variants button{flex-direction:column;font-size:27px;padding:10px 3px;background:#f7f3fa;border:2px solid transparent}.variants button[aria-pressed=true]{border-color:var(--purple)}.variants span{font-size:10px}.palette{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.swatch{min-height:44px;padding:3px;border:2px solid transparent;background:white}.swatch svg{width:34px;height:34px}.swatch[aria-pressed=true]{border-color:var(--ink)}.custom-color{display:flex;align-items:center;justify-content:space-between}.custom-color input{width:55px;height:46px;border:0;background:none}.workspace{text-align:center}.canvas-title{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:0 8px 12px}.canvas-wrap{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:white;box-shadow:0 6px 28px #44316805}#canvas{display:block;width:100%;max-height:62vh;touch-action:none;user-select:none;cursor:grab}#canvas:active{cursor:grabbing}.transform-tools{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:16px}.transform-tools button{font-size:13px;padding:10px 12px;background:white;border:1px solid var(--line)}.tip{background:#fff6df;padding:18px;border-radius:16px;margin-top:28px;font-size:14px}.tip p{font-size:13px;margin-bottom:0}#status{font-size:14px;overflow-wrap:anywhere}.export-panel #status{color:#604693}@media(max-width:1050px){.editor-layout{grid-template-columns:210px minmax(280px,1fr)}.export-panel{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:12px}.export-panel>*{margin:0!important;width:auto!important;flex:1 1 150px}.export-panel .tip{display:none}.hero-decoration{display:none}.login-layout{gap:35px}}@media(max-width:650px){.topbar{height:78px;padding:0 18px}.brand span{font-size:17px}.account{gap:8px}.account>span{display:none}.account button{font-size:12px}.login-layout{display:block;margin:15px auto;padding:20px}.welcome-art,.welcome .note{display:none}.login-card{margin-top:28px;padding:25px}.hero{padding:28px}.dashboard{padding:24px 18px}.editor{padding:16px 12px}.editor-top{flex-wrap:wrap;gap:12px}.editor-top>a{font-size:12px}.name-label{order:3;max-width:none;flex-basis:100%}.editor-top>#save{margin-left:auto}.editor-layout{grid-template-columns:1fr}.workspace{grid-row:1}.panel{padding:20px}#canvas{max-height:53vh}.palette{grid-template-columns:repeat(8,1fr);gap:3px}.swatch{min-width:0}.swatch svg{width:27px}.variants{margin-bottom:20px}.export-panel{grid-column:auto}.section-title{align-items:start;gap:12px}.section-title h2{font-size:20px}}@page{size:auto;margin:12mm}
@page rika-portrait{size:A4 portrait;margin:12mm}
@page rika-landscape{size:A4 landscape;margin:12mm}@media print{body{background:white}.topbar,.editor-top,.panel,.canvas-title,.transform-tools,.workspace>.note{display:none!important}.editor,.editor-layout,.workspace{display:block;padding:0;margin:0}.canvas-wrap{border:0;box-shadow:none;border-radius:0}#canvas{width:100%;height:265mm;max-height:none}}
/* Keep touch controls inside the compact tablet sidebar. */
.variants{grid-template-columns:repeat(3,minmax(0,1fr))}.variants button{min-width:0}.variants span{font-size:9px}.palette{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.swatch{min-width:0;padding:1px}.swatch svg{max-width:100%}@media(max-width:650px){.palette{grid-template-columns:repeat(6,minmax(0,1fr))}.variants span{font-size:12px}}
@media(max-width:650px){.topbar{height:auto;min-height:78px;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}.account{margin-left:auto;flex-wrap:wrap}.account .button{font-size:12px;padding:10px}}
.categories>a{padding:16px 20px;background:#f0eeeb;border-radius:14px;font-size:14px;color:var(--muted);min-height:48px}.space-editor .editor-layout{grid-template-columns:220px minmax(300px,1fr) 230px}.asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:570px;overflow:auto;padding:4px}.asset-grid button{display:flex;flex-direction:column;gap:0;padding:5px;min-width:0;background:#f6f2f9;font-size:12px;touch-action:pan-y}.asset-grid svg{height:72px;width:100%;pointer-events:none}.history-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}.history-tools label{flex:1;min-width:180px;text-align:left}.history-tools select{margin-top:6px}.space-options h2:not(:first-child){margin-top:28px}details{margin:22px 0}summary{cursor:pointer;min-height:48px;padding:10px 0;line-height:1.5;font-weight:700;font-size:14px}.template-buttons{display:grid;gap:8px}.space-editor .workspace{position:sticky;top:15px}.space-editor .transform-tools button{min-height:48px}button:disabled{cursor:default}.space-editor .canvas-wrap{border-radius:18px}@media(max-width:1100px){.space-editor .editor-layout{grid-template-columns:200px minmax(280px,1fr)}.space-options{grid-column:1/-1}.space-options .palette{grid-template-columns:repeat(12,minmax(0,1fr))}.space-editor .workspace{position:static}}@media(max-width:650px){.space-editor .editor-layout{grid-template-columns:1fr}.space-options{grid-column:auto}.asset-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:300px}.space-options .palette{grid-template-columns:repeat(6,minmax(0,1fr))}.space-editor #canvas{max-height:none}.space-editor .workspace{grid-row:1}}@media print{.selection-border,.history-tools,.space-editor #status{display:none!important}.space-editor .workspace{position:static}.space-editor #canvas{height:auto;max-height:260mm;width:100%}}
.magic-dialog{border:1px solid var(--line);border-radius:28px;padding:30px;max-width:460px;width:calc(100% - 32px);color:var(--ink);background:#fffdfb;box-shadow:0 24px 100px #30233d40}.magic-dialog::backdrop{background:#30233d70;backdrop-filter:blur(4px)}.dialog-flower{display:block;color:var(--purple);font-size:48px;margin-bottom:12px}.magic-dialog h2{font-size:25px}.magic-dialog p{color:var(--muted);margin:0 0 24px}.dialog-actions{display:flex;flex-wrap:wrap;gap:12px}.dialog-actions button{flex:1;min-width:145px;min-height:52px}@media print{.magic-dialog{display:none!important}}
.photo-dialog{max-width:640px;max-height:90dvh;overflow:auto}.photo-dialog canvas{display:block;width:100%;height:auto;max-height:250px;object-fit:contain;background:#eee9f6;border-radius:12px}.crop-sliders{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}.crop-sliders label{font-size:13px}.crop-sliders input[type=range]{width:100%;min-height:44px;padding:0;accent-color:var(--purple)}.photo-card{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.photo-card img{grid-column:1/-1;width:100%;height:100px;object-fit:contain;background:#f4f0f8;border-radius:12px}.photo-card strong{grid-column:1/-1;overflow-wrap:anywhere;font-size:13px}.photo-card button{font-size:11px;padding:8px 4px}.photo-section>button{font-size:13px}[hidden]{display:none!important}@media(max-width:650px){.photo-dialog{padding:20px}.crop-sliders{gap:4px 12px}}@media print{.photo-dialog{display:none!important}}

.photo-delete{grid-column:1/-1;color:#923d50}
.drawing-tools{display:flex;align-items:end;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:12px;background:#f4eff9;border-radius:16px}.drawing-tools label{margin:0;text-align:left}.drawing-tools input[type=color]{display:block;width:52px;height:42px;border:0;background:transparent}.drawing-tools select{min-width:105px}.drawing-tools button[aria-pressed=true]{background:var(--purple);color:white}#canvas.is-drawing{cursor:crosshair}@media print{#drawing-toggle,.drawing-tools{display:none!important}}
.space-editor[data-kind=drawing] .editor-layout{grid-template-columns:minmax(520px,1fr) 260px}.space-editor[data-kind=drawing] .workspace{grid-column:1}.space-editor[data-kind=drawing] .space-options{grid-column:2}.space-editor[data-kind=drawing] #canvas{max-height:72vh}@media(max-width:850px){.space-editor[data-kind=drawing] .editor-layout{grid-template-columns:1fr}.space-editor[data-kind=drawing] .workspace,.space-editor[data-kind=drawing] .space-options{grid-column:1}.space-editor[data-kind=drawing] #canvas{max-height:none}}
.drawing-tool-buttons{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;flex-basis:100%}.drawing-tool-buttons button{padding:9px 12px;min-height:44px}
.character-editor .editor-layout{grid-template-columns:280px minmax(280px,1fr) 220px}.character-editor .workspace{position:sticky;top:16px}.character-controls h2:not(:first-child){margin-top:24px}#avatar-options select{margin-top:7px}#avatar-options input[type=range]{width:100%;padding:0;min-height:44px;accent-color:var(--purple)}#avatar-options output{font-size:12px;color:var(--muted)}.avatar-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.avatar-presets button{display:flex;flex-direction:column;font-size:12px;padding:6px;background:#f4eff9;min-width:0}.avatar-presets svg{height:112px;width:100%;pointer-events:none}.character-editor .history-tools{justify-content:center}@media(max-width:1100px){.character-editor .editor-layout{grid-template-columns:260px minmax(280px,1fr)}.character-editor .export-panel{grid-column:1/-1}.character-editor .workspace{position:static}}@media(max-width:650px){.character-editor .editor-layout{grid-template-columns:1fr}.character-editor .export-panel{grid-column:auto}.character-editor .workspace{position:static}.character-editor #canvas{max-height:55vh}}@media print{.character-editor .workspace{position:static}}
@media(min-width:651px){.character-controls{max-height:calc(100dvh - 220px);min-height:420px;overflow-y:auto;overscroll-behavior:contain}}

.starter-presets{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.starter-presets svg{height:85px}.starter-presets button{font-size:11px;padding:4px}
.app-loading{margin:18px auto;padding:18px 24px;max-width:1000px;border:1px solid var(--line);border-radius:18px;background:#eee8f6;display:flex;gap:16px;align-items:center;justify-content:space-between}.app-loading span{line-height:1.5}body[data-state=error] #app-main{opacity:.45}#app-main[aria-busy=true]{opacity:.65}@media print{.app-loading{display:none!important}}
.management{max-width:1200px;margin:auto;padding:30px 5%}.admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.user-list{display:grid;gap:14px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.user-row h2{margin-bottom:4px}.user-row p{margin:0;color:var(--muted)}.account-form{max-width:850px}.account-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}.check-row{display:flex;align-items:center;gap:12px;min-height:48px;line-height:1.45}.check-row input[type=checkbox]{width:24px;height:24px;min-height:24px;flex:0 0 24px;accent-color:var(--purple)}.notice{margin:20px auto;padding:16px 24px;background:#e9e1f5;border-radius:14px;max-width:1000px;line-height:1.6}.update-panel{max-width:850px}.update-panel progress{width:100%;height:28px;accent-color:var(--purple)}#release-info{margin-top:25px}#release-notes{white-space:pre-wrap}.errorlist{color:#a32943;font-size:14px}@media(max-width:650px){.admin-stats,.account-fields{grid-template-columns:1fr}.user-row{align-items:flex-start;flex-direction:column}.management .section-title{flex-wrap:wrap}.management .section-title h1{font-size:30px}}

.impersonation-banner{margin:1rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.impersonation-banner form{margin-left:auto}.user-row{flex-wrap:wrap}

@media print{
 body[data-print-orientation=portrait]{page:rika-portrait}
 body[data-print-orientation=landscape]{page:rika-landscape}
 .impersonation-banner,main>.notice,#status{display:none!important}
 main,.editor,.editor-layout,.workspace,.canvas-wrap{padding:0!important;margin:0!important;min-height:0!important;max-width:none!important;overflow:visible!important}
 .editor #canvas{display:block;width:100%!important;height:272mm!important;max-height:none!important}
 body[data-print-orientation=landscape] .editor #canvas{height:185mm!important}
}
