:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:#203149;background:#f5f7f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:inherit}h1,h2,h3,p{margin:0}.app{min-height:100vh;display:flex}.sidebar{width:244px;flex:none;background:#17283b;color:#e8f1f0;padding:28px 16px;display:flex;flex-direction:column;position:sticky;height:100vh;top:0}.brand{display:flex;align-items:center;gap:10px;padding:5px 8px 39px;color:white;text-decoration:none}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:#78dcc0;color:#173b3b;font-size:30px}.brand strong{display:block;font-size:20px;letter-spacing:-1.2px}.brand-accent{color:#7bd7bb}.brand small{font-size:9px;letter-spacing:2.15px;color:#b5c9c7;display:block;margin-top:2px}.side-section-label{font-size:10px;color:#819ba4;letter-spacing:2px;font-weight:700;margin:0 13px 14px}.nav{display:grid;gap:7px}.nav-item{display:flex;align-items:center;gap:13px;padding:14px 15px;border:0;background:transparent;color:#b7c8cf;text-align:left;border-radius:12px;font-size:13px;font-weight:700;width:100%}.nav-item span:first-child{font-size:20px;width:21px;text-align:center}.nav-item:hover,.nav-item.selected{background:#304458;color:white}.nav-item.selected{box-shadow:inset 3px 0 #84e2c1}.count{margin-left:auto;border-radius:9px;padding:3px 8px;background:#445969;color:#d9eae5;font-size:11px}.side-bottom{margin-top:auto;background:#21384a;border-radius:13px;padding:15px 13px;font-size:11px;color:#c7e9d9}.safe-dot{display:inline-block;background:#77d9a9;width:8px;height:8px;border-radius:50%;margin-right:5px}.side-small{color:#92adad;font-size:10px;margin-top:6px}.shell{flex:1;min-width:0}.topbar{height:72px;border-bottom:1px solid #e6ebeb;background:white;display:flex;align-items:center;justify-content:space-between;padding:0 37px}.crumb{font-size:11px;font-weight:700;letter-spacing:1.3px;color:#a1adaf}.crumb strong{color:#344c5c;letter-spacing:.2px}.sep{padding:0 12px;color:#c8d2d5}.top-actions{display:flex;align-items:center;gap:20px}.top-actions>span{font-size:11px;color:#6cae9a}main{padding:38px;max-width:1540px;margin:auto}.page{display:none}.page.active{display:block}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow,.tiny-label{color:#36aa90;letter-spacing:2.1px;font-size:10px;font-weight:900}.heading h1{font-size:clamp(25px,2.8vw,36px);letter-spacing:-1.5px;margin:8px 0 8px;font-weight:850;color:#1e3342}.heading p{font-size:13px;color:#809096}.spark{color:#efb85e}.version{border:1px solid #cddfdb;border-radius:100px;padding:8px 13px;color:#83a79d;font-size:10px;font-weight:700;white-space:nowrap}.studio-grid{display:grid;grid-template-columns:minmax(365px,1.02fr) minmax(340px,.98fr);gap:22px;align-items:start}.panel{background:#fff;border:1px solid #e4eeee;border-radius:20px;box-shadow:0 7px 24px rgba(18,49,55,.035);padding:26px}.form-panel{padding-bottom:23px}.panel-title{display:flex;align-items:center;gap:12px;margin-bottom:22px}.panel-title h2{font-size:15px;letter-spacing:-.4px;color:#1e3342}.panel-title p{font-size:11px;color:#97a5a8;margin-top:4px}.step-pill{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:12px;background:#d8f4e9;color:#29987b;font-weight:800;font-size:12px}.panel-title .btn{margin-left:auto}.panel label,.settings-panel>label,.dialog-head~label{display:block;font-size:11px;font-weight:800;color:#485e65;margin:17px 0 7px}.panel input:not([type=radio]):not([type=checkbox]),.panel select,.panel textarea,dialog input{display:block;width:100%;background:#f9fbfb;border:1px solid #dce5e5;border-radius:9px;padding:11px 12px;font-size:13px;min-height:43px;outline:none;color:#203e48}.panel input:focus,.panel textarea:focus,.panel select:focus,dialog input:focus{border-color:#55b99b;box-shadow:0 0 0 3px #e4f9f2}.panel textarea{resize:vertical;line-height:1.65}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.palette-area{margin-top:17px}.palette-area label{margin:0 0 11px}.swatches{display:flex;gap:12px}.swatch{width:29px;height:29px;border-radius:50%;border:2px solid white;outline:1px solid #dfe8e6;background:var(--s);transition:transform .15s}.swatch:hover{transform:scale(1.1)}.swatch.active{outline:2px solid #354d53;outline-offset:2px}.divider{height:1px;background:#edf2f0;margin:25px 0}.method{background:#f7faf9;padding:14px;border-radius:12px;margin:17px 0}.method-label{font-size:11px;font-weight:800;margin-bottom:10px;color:#4d6167}.method-option{display:flex!important;align-items:start;gap:9px;margin:8px 0!important;padding:7px 3px!important;cursor:pointer}.method-option input{accent-color:#259c7a;margin-top:3px}.method-option strong{font-size:12px;display:block;color:#284951}.method-option small{font-size:10px;font-weight:400;display:block;line-height:1.55;color:#8b9ba1;margin-top:3px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:normal;line-height:1.3;font-size:12px;font-weight:800;padding:12px 17px;border-radius:10px;border:1px solid transparent;transition:.15s}.btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(.98)}.btn.primary{background:#289e82;color:white;box-shadow:0 7px 16px #209f8020}.btn.dark{background:#253849;color:white}.btn.subtle{background:#eff6f4;color:#4b877a}.btn.outline{border-color:#d3e2df;background:white;color:#397b73}.btn.danger{background:#fff0ef;color:#b75b55;border-color:#f2d5d1}.btn.mini{padding:8px 10px;font-size:10px}.btn.wide{width:100%;justify-content:center}.btn.wide span{margin-left:auto}.form-actions{display:flex;gap:8px}.form-actions .primary{flex:1}.fine{font-size:10px;color:#94a2a7;line-height:1.8;margin-top:13px}.hidden{display:none!important}.progress{margin-top:15px}.progress-label{display:flex;justify-content:space-between;font-size:11px;color:#6f858b}.track{height:6px;border-radius:5px;background:#e7efed;margin-top:9px;overflow:hidden}.track>div{height:100%;width:0;background:#61c9a4;transition:width .2s}.preview-side{min-width:0}.preview-topline{display:flex;justify-content:space-between;align-items:center;margin:6px 0 18px}.preview-topline h2{font-size:19px;color:#263d4b;margin-top:7px}.tag{background:#e5f6ed;color:#449a7d;border-radius:100px;padding:8px 11px;font-size:10px;font-weight:800}.preview-stage{height:430px;border-radius:21px;background:linear-gradient(125deg,#e1f9f1 0%,#f7eee7 100%);padding:20px;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center}.checker{background-color:#fff;background-image:linear-gradient(45deg,#ecf0f0 25%,transparent 25%),linear-gradient(-45deg,#ecf0f0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ecf0f0 75%),linear-gradient(-45deg,transparent 75%,#ecf0f0 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.preview-background{width:300px;height:300px;border:9px solid #ffffffa6;border-radius:19px;box-shadow:0 15px 25px #718b7e24;overflow:hidden;display:grid;place-items:center;transform:rotate(-4deg)}.preview-background img{width:95%;height:95%;object-fit:contain}.preview-sticker{position:absolute;right:19px;bottom:20px;background:white;border-radius:15px;box-shadow:0 8px 18px #34564a20;padding:9px;transform:rotate(6deg);width:160px}.preview-sticker>span{display:block;font-size:9px;color:#7c9993;padding-bottom:6px;font-weight:800}.mini-preview{height:127px;display:grid;place-items:center;border-radius:8px;overflow:hidden}.mini-preview img{width:100%;height:100%;object-fit:contain}.preview-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px}.preview-caption strong,.preview-caption small{display:block}.preview-caption strong{font-size:16px;color:#203a48}.preview-caption small{font-size:11px;color:#9aabae;margin-top:4px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.stat{background:white;border-radius:14px;border:1px solid #e6eeee;text-align:center;padding:14px 5px}.stat strong{font-size:22px;color:#335d55;display:block}.stat small{font-size:10px;color:#98a7aa}.notice{margin-top:20px;border:1px solid #dbeae4;background:#effaf5;border-radius:13px;padding:15px 16px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#568075;line-height:1.65}.notice b{color:#315f54}.quick-bar{background:#233949;color:white;border-radius:18px;padding:23px 28px;margin-top:25px;display:flex;justify-content:space-between;align-items:center;gap:15px}.quick-bar h3{font-size:15px;margin-top:9px}.quick-bar .btn{background:#82ddc1;color:#174339}.gallery-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:18px;color:#607b81;font-weight:800}.right-caption{font-weight:400;color:#a0abad}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:15px}.stamp-card{border:1px solid #e2ebea;background:white;border-radius:14px;padding:9px;text-align:left;transition:.15s;min-width:0}.stamp-card:hover{box-shadow:0 5px 17px #3c55551b;transform:translateY(-2px)}.stamp-card .checker{border-radius:9px;overflow:hidden;aspect-ratio:370/320;display:grid;place-items:center}.stamp-card img{width:100%;height:100%;object-fit:contain}.stamp-card .info{padding:10px 3px 3px;display:flex;justify-content:space-between;align-items:center;gap:5px}.stamp-card strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stamp-card span{color:#9aa9aa;font-size:10px}.empty{text-align:center;border:1px dashed #d5e5e3;padding:65px 20px;border-radius:16px}.empty>div{font-size:53px;color:#76caaf}.empty h3{margin:10px 0}.empty p{margin:0 0 16px;color:#98a5a8}.publish-grid{display:grid;grid-template-columns:minmax(345px,1fr) minmax(300px,.85fr);gap:22px;align-items:start}.charfield{position:relative}.charfield small{position:absolute;bottom:7px;right:12px;color:#99a7a9;font-size:10px}.charfield input,.charfield textarea{padding-right:40px!important}.validation{display:grid;gap:9px}.checkrow{display:flex;align-items:start;gap:10px;background:#f5f8f7;padding:12px;border-radius:9px;font-size:12px;line-height:1.45}.checkrow .symbol{color:#b88953;font-weight:800}.checkrow.pass .symbol{color:#2eaf83}.checkrow.fail .symbol{color:#dc7b62}.checkrow span.note{display:block;font-size:10px;color:#96a5a5;margin-top:3px}.pack-preview{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:26px 0}.pack-frame{width:98px;height:98px;border:1px solid #d8e7e2;border-radius:9px;overflow:hidden;display:grid;place-items:center}.pack-frame.small{width:78px;height:64px}.pack-frame img{width:100%;height:100%;object-fit:contain}.pack-preview strong,.pack-preview span{display:block;font-size:11px}.pack-preview span{color:#a0abad;margin-top:5px;font-size:10px}.confirmation{display:flex!important;align-items:start;gap:10px;margin:12px 0!important;font-weight:500!important;line-height:1.6}.confirmation input{accent-color:#339b7f;margin-top:3px}.checklist-panel>.btn{margin-top:10px}.text-notice{margin-bottom:15px}.settings-panel{max-width:750px}.connection{border-radius:10px;padding:12px;background:#f4f7f6;color:#608478;font-size:12px}.settings-actions{display:flex;gap:9px;flex-wrap:wrap}.file-label{cursor:pointer}.sources{display:flex;flex-direction:column;gap:10px}.sources h3{margin-bottom:8px}.sources a{color:#398d79;font-size:12px}.mobile-nav{display:none}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,30px);opacity:0;pointer-events:none;transition:.23s;z-index:100;background:#213d4a;color:white;border-radius:12px;padding:13px 18px;box-shadow:0 8px 25px #0002;font-size:12px;max-width:92vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:19px;padding:22px;width:min(480px,94vw);box-shadow:0 20px 60px #16304055}dialog::backdrop{background:#10273695}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.dialog-head h2{font-size:17px}.icon-btn{background:#f1f6f4;border:0;border-radius:9px;padding:8px}.dialog-preview{height:285px;display:grid;place-items:center;border-radius:13px}.dialog-preview img{width:100%;height:100%;object-fit:contain}.dialog-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-top:19px}@media(max-width:1100px){.sidebar{width:205px}.topbar{padding:0 22px}main{padding:27px}.studio-grid,.publish-grid{grid-template-columns:1fr 1fr}.panel{padding:20px}.preview-stage{height:370px}.preview-background{width:240px;height:240px}.preview-sticker{width:125px}.mini-preview{height:100px}}@media(max-width:850px){.sidebar{display:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;background:#fff;box-shadow:0 -4px 22px #2a585916;padding:7px 8px max(8px,env(safe-area-inset-bottom));justify-content:space-around}.mobile-nav button{border:0;background:none;color:#8b9ba4;display:flex;flex-direction:column;align-items:center;min-width:60px;font-size:20px;gap:1px}.mobile-nav button.selected{color:#248c70}.mobile-nav small{font-size:10px}.topbar{height:55px;padding:0 15px}.top-actions{gap:10px}main{padding:21px 16px 95px}.heading{margin-bottom:19px}.heading h1{font-size:27px}.studio-grid,.publish-grid{grid-template-columns:1fr}.panel{padding:21px}.preview-side{margin-top:8px}.preview-stage{height:365px}.preview-background{width:250px;height:250px}.quick-bar{flex-wrap:wrap;padding:20px}.preview-caption{flex-wrap:wrap}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}@media(max-width:450px){.version{display:none}.heading p{line-height:1.7}.top-actions>span{display:none}.preview-stage{height:330px;padding:12px}.preview-background{width:220px;height:220px}.preview-sticker{width:125px;right:6px;bottom:10px}.mini-preview{height:101px}.panel-title{gap:8px}.panel-title .mini{font-size:9px}.form-two{gap:9px}.form-two select{padding:10px 7px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pack-preview{gap:9px}}

/* Offline-first PWA additions */
.offline-strip{display:flex;align-items:center;gap:11px;padding:12px 14px;background:#e7f6f0;border:1px solid #c6e6da;border-radius:14px;margin:0 0 22px;color:#276c57}.offline-strip>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.offline-strip strong{font-size:12px}.offline-strip small{font-size:10px;color:#548877}.offline-indicator{font-size:18px}.pwa-mini{font-size:11px;padding:5px 9px;border-radius:8px;background:#edf7f2;color:#257a60}.install-dialog{max-width:500px}.install-steps{margin:18px 0;padding-left:23px;font-size:13px;line-height:1.95;color:#445c64}.install-steps li{margin:9px 0}@media(max-width:450px){.offline-strip{flex-wrap:wrap}.offline-strip .btn{flex:1 1 100%}.pwa-mini{font-size:10px}.top-actions{gap:5px}}
