:root{--green:#009247;--green-dark:#05723c;--green-soft:#eaf8f0;--mint:#18c47d;--ink:#17211b;--muted:#68756e;--line:#dfe8e2;--canvas:#f5f8f6;--white:#fff;--danger:#c0392b;--amber:#c47b05;--shadow:0 18px 55px rgba(18,44,29,.08);--radius:20px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:15px}.app-shell{min-height:100vh;padding-bottom:94px}.app-header{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 clamp(20px,4vw,64px);position:sticky;top:0;z-index:30;gap:24px}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;min-width:220px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--green),var(--mint));border-radius:12px;font-weight:800}.brand strong,.brand small{display:block}.brand strong{font-size:17px}.brand small{font-size:10px;color:var(--muted);letter-spacing:.05em;margin-top:1px}.project-bar{position:relative;display:flex;align-items:center;gap:8px;margin:auto}.project-select{border:1px solid var(--line);border-radius:10px;background:#f9fbfa;padding:9px 34px 9px 12px;max-width:260px;font:600 13px inherit;color:var(--ink)}.icon-btn{border:0;background:transparent;padding:8px;font-weight:800;cursor:pointer}.menu{position:absolute;top:48px;right:0;width:220px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:8px;z-index:50}.menu button,.menu-upload{display:block;width:100%;padding:10px 12px;border:0;background:none;border-radius:8px;text-align:left;font:600 12px inherit;cursor:pointer}.menu button:hover,.menu-upload:hover{background:var(--canvas)}.danger-text{color:var(--danger)}.save-state{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;white-space:nowrap}.save-state span{width:8px;height:8px;background:var(--mint);border-radius:50%}.save-state.saving span{background:var(--amber)}
.stepper-wrap{background:#fff;border-bottom:1px solid var(--line);padding:18px clamp(20px,4vw,64px)}.stepper{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(7,1fr);position:relative}.stepper:before{content:"";position:absolute;top:17px;left:7%;right:7%;height:2px;background:var(--line)}.step{border:0;background:none;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:7px;color:#8b9890;cursor:pointer;font:600 11px inherit}.step span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eef2ef;border:4px solid #fff;font-size:12px}.step.active,.step.completed{color:var(--green)}.step.active span{background:var(--green);color:#fff;box-shadow:0 0 0 4px rgba(0,146,71,.12)}.step.completed span{background:var(--green-soft);color:var(--green)}.step.completed span:after{content:"✓"}.step.completed span{font-size:0}.step.completed span:after{font-size:13px}.step b{white-space:nowrap}
.main-content{max-width:1180px;margin:0 auto;padding:48px 28px}.step-panel{display:none;animation:fade .25s ease}.step-panel.active{display:block}@keyframes fade{from{opacity:.35;transform:translateY(8px)}}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:28px}.panel-heading h1{font-size:clamp(26px,3vw,38px);letter-spacing:-.035em;margin:5px 0 7px}.panel-heading p{color:var(--muted);margin:0;max-width:730px;line-height:1.65}.compact-heading{margin-bottom:20px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--green);font-size:10px;font-weight:800}.heading-icon{width:74px;height:74px;display:grid;place-items:center;background:var(--green-soft);border:1px solid #ccebd9;border-radius:24px;color:var(--green);font:700 24px "Source Serif 4",serif}.card{background:#fff;border:1px solid rgba(205,220,211,.75);border-radius:var(--radius);box-shadow:var(--shadow)}.form-card{padding:clamp(22px,4vw,42px)}.section-title{display:flex;align-items:center;gap:16px;padding-bottom:24px;margin-bottom:28px;border-bottom:1px solid var(--line)}.section-title>span{width:42px;height:42px;display:grid;place-items:center;background:var(--green-soft);border-radius:12px;color:var(--green);font-size:12px;font-weight:800}.section-title h2,.section-title p{margin:0}.section-title h2{font-size:18px}.section-title p{color:var(--muted);font-size:12px;margin-top:4px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.field{display:flex;flex-direction:column;gap:8px}.field>span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;color:#4d5a53}.field em{color:var(--danger);font-style:normal}.field input,.field textarea,.field select{width:100%;border:1px solid #d8e2dc;background:#fbfcfb;border-radius:11px;padding:12px 14px;color:var(--ink);font:500 14px/1.55 inherit;outline:0;transition:.2s}.field textarea{resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green);background:#fff;box-shadow:0 0 0 4px rgba(0,146,71,.08)}.span-2{grid-column:span 2}.top-space{margin-top:28px}.choice-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.choice{border:1px solid var(--line);border-radius:14px;background:#fff;padding:18px;text-align:left;cursor:pointer;color:var(--ink)}.choice b,.choice span{display:block}.choice span{color:var(--muted);font-size:11px;margin-top:6px}.choice.active{border-color:var(--green);background:var(--green-soft);box-shadow:inset 0 0 0 1px var(--green)}
.btn{border:0;border-radius:11px;padding:11px 17px;font:700 12px inherit;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-outline{background:#fff;border:1px solid var(--green);color:var(--green)}.btn-ghost{background:#f4f7f5;color:#526159}.btn-magic{background:linear-gradient(135deg,var(--green),var(--mint));color:#fff;box-shadow:0 10px 24px rgba(0,146,71,.18)}.btn-small{padding:9px 12px}.full{width:100%}.layout-two{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}.chapter-structure-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.structure-item{display:grid;grid-template-columns:42px minmax(0,1fr) 120px 76px;gap:10px;align-items:start;padding:14px;background:#f8faf9;border:1px solid var(--line);border-radius:14px}.structure-index{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--green-soft);color:var(--green);font-weight:800;font-size:11px}.structure-inputs{display:grid;gap:8px}.structure-inputs input,.structure-inputs textarea,.structure-time{border:1px solid transparent;background:transparent;border-radius:8px;padding:7px;font:600 13px inherit;width:100%;outline:0}.structure-inputs textarea{font-weight:500;font-size:11px;color:var(--muted);resize:vertical}.structure-time{border-color:var(--line);background:#fff}.structure-actions{display:flex;gap:4px;justify-content:flex-end}.structure-actions button{width:23px;height:28px;border:0;background:#fff;border-radius:7px;cursor:pointer;color:var(--muted)}.structure-actions button:hover{color:var(--green)}.structure-actions .delete:hover{color:var(--danger)}.insight-card{padding:27px;height:max-content;position:sticky;top:140px}.insight-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--green-soft);color:var(--green)}.insight-card h3{font-size:16px;margin:18px 0 10px}.insight-card ul{padding-left:18px;color:var(--muted);font-size:12px;line-height:1.8}.metric{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:baseline;gap:8px}.metric strong{font-size:30px;color:var(--green)}.metric span{font-size:11px;color:var(--muted)}
.chapter-workspace{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px}.chapter-sidebar{padding:16px;height:max-content;position:sticky;top:140px}.sidebar-title{display:flex;justify-content:space-between;align-items:center;padding:6px 5px 14px;border-bottom:1px solid var(--line);font-size:12px}.sidebar-title span{font-size:9px;color:var(--muted)}.chapter-nav-item{width:100%;border:0;background:none;padding:12px 9px;border-radius:10px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;color:var(--ink)}.chapter-nav-item:hover,.chapter-nav-item.active{background:var(--green-soft);color:var(--green)}.chapter-nav-item i{font-style:normal;width:24px;height:24px;border-radius:8px;background:#eff3f0;display:grid;place-items:center;font-size:9px;font-weight:800}.chapter-nav-item span{min-width:0}.chapter-nav-item b,.chapter-nav-item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chapter-nav-item b{font-size:11px}.chapter-nav-item small{font-size:9px;color:var(--muted);margin-top:3px}.chapter-form{padding:28px}.chapter-form-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.chapter-form-head span{font-size:9px;color:var(--green);font-weight:800;letter-spacing:.12em}.chapter-form-head h2{margin:5px 0 0}.status-pill{padding:7px 10px;background:#f0f3f1;border-radius:20px!important;color:var(--muted)!important;letter-spacing:0!important}.chapter-fields details{border-top:1px solid var(--line)}.chapter-fields details:last-child{border-bottom:1px solid var(--line)}.chapter-fields summary{padding:17px 2px;font-weight:800;font-size:12px;cursor:pointer;list-style:none}.chapter-fields summary:after{content:"+";float:right;color:var(--green)}.chapter-fields details[open] summary:after{content:"−"}.details-body{padding:4px 0 24px}
.editor-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px}.editor-controls{padding:20px;height:max-content}.editor-hint{margin-top:24px;padding:16px;border-radius:12px;background:var(--green-soft);font-size:11px;color:var(--muted);line-height:1.6}.editor-hint b{color:var(--green)}.editor-hint p{margin:6px 0 0}.editor-card{overflow:hidden}.editor-toolbar{padding:10px 12px;background:#f7faf8;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:5px;flex-wrap:wrap}.editor-toolbar button{height:31px;min-width:31px;border:1px solid transparent;border-radius:7px;background:#fff;color:#425047;font:600 11px inherit;cursor:pointer}.editor-toolbar button:hover{border-color:var(--green);color:var(--green)}.editor-toolbar span{width:1px;height:22px;background:var(--line);margin:0 4px}.rich-editor{min-height:530px;padding:52px clamp(30px,7vw,80px);outline:0;font:16px/1.85 "Source Serif 4",serif;color:#28342d}.rich-editor:empty:before{content:"Mulai menulis atau pilih bagian yang sudah memiliki isi…";color:#99a49e}.rich-editor img{max-width:100%;height:auto}.book-preview{grid-column:1/-1;padding:60px clamp(24px,8vw,110px);font:16px/1.85 "Source Serif 4",serif}.book-preview h1,.book-preview h2,.book-preview h3{font-family:"Plus Jakarta Sans",sans-serif}.book-preview .preview-cover{text-align:center;min-height:520px;display:grid;place-content:center;border-bottom:2px solid var(--green);margin-bottom:60px}.book-preview .preview-chapter{margin:50px 0}.book-preview .preview-label{color:var(--green);text-transform:uppercase;letter-spacing:.15em;font:800 10px "Plus Jakarta Sans",sans-serif}.book-preview .section-block{margin:24px 0}.book-preview .section-block h3{font-size:14px;color:var(--green);border-bottom:1px solid var(--line);padding-bottom:7px}
.validation-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px}.score-card{padding:32px;display:flex;align-items:center;gap:24px}.score-ring{width:120px;height:120px;border-radius:50%;display:grid;place-content:center;text-align:center;background:conic-gradient(var(--green) 0deg,#e7ede9 0);position:relative;flex:none}.score-ring:before{content:"";position:absolute;inset:10px;border-radius:50%;background:#fff}.score-ring strong,.score-ring span{position:relative}.score-ring strong{font-size:31px}.score-ring span{font-size:9px;color:var(--muted)}.score-card h2{font-size:18px;margin:6px 0}.score-card p{font-size:11px;color:var(--muted);line-height:1.55;margin:0}.checks-card{padding:26px}.checks-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line)}.checks-head h2{font-size:16px;margin:0}.legend{font-size:9px;display:flex;gap:10px}.ok{color:var(--green)}.warn{color:var(--amber)}.validation-results{display:flex;flex-direction:column}.validation-item{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.validation-item:last-child{border:0}.validation-icon{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-size:10px}.validation-item.ok .validation-icon{background:var(--green-soft);color:var(--green)}.validation-item.warn .validation-icon{background:#fff3df;color:var(--amber)}.validation-item b,.validation-item small{display:block}.validation-item b{font-size:11px}.validation-item small{font-size:9px;color:var(--muted);margin-top:3px}.validation-item button{border:0;background:none;color:var(--green);font:700 10px inherit;cursor:pointer}.empty-state{text-align:center;color:var(--muted);padding:40px;font-size:12px}.notice{margin-top:18px;padding:17px 22px;border:1px solid #ead9b9;background:#fffaf0;border-radius:14px;display:flex;gap:12px;font-size:11px;line-height:1.6}.notice b{color:#8a5d00;white-space:nowrap}.notice span{color:#776b55}
.ready-badge{background:var(--green-soft);color:var(--green);padding:9px 13px;border-radius:30px;font-size:10px;font-weight:800}.publish-layout{display:grid;grid-template-columns:380px minmax(0,1fr);gap:36px;align-items:start}.book-cover{aspect-ratio:3/4.2;border-radius:6px 20px 20px 6px;padding:36px;background:#123c2a;color:#fff;box-shadow:14px 18px 40px rgba(12,42,28,.25);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.book-cover:after{content:"";position:absolute;width:320px;height:320px;border:55px solid rgba(255,255,255,.045);border-radius:50%;right:-170px;bottom:-120px}.cover-accent{position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--mint)}.cover-brand{font-size:9px;letter-spacing:.12em;text-transform:uppercase}.book-cover small{color:#77e0ab;font-weight:800;letter-spacing:.15em}.book-cover h2{font-size:34px;line-height:1.15;letter-spacing:-.035em;margin:14px 0}.book-cover p{font:13px/1.6 "Source Serif 4",serif;color:#c6d7ce}.book-cover strong,.book-cover span{display:block;position:relative;z-index:1}.book-cover strong{font-size:12px}.book-cover span{font-size:9px;color:#aac0b4;margin-top:6px}.export-card{padding:32px}.export-card>h2{margin:0;font-size:20px}.export-card>p{color:var(--muted);font-size:11px;margin:7px 0 22px}.export-option{width:100%;display:grid;grid-template-columns:42px 1fr 20px;gap:13px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:13px;padding:13px;margin-bottom:10px;text-align:left;cursor:pointer}.export-option:hover{border-color:var(--green);background:#fbfefc}.export-option span b,.export-option span small{display:block}.export-option b{font-size:12px;color:var(--ink)}.export-option small{font-size:9px;color:var(--muted);margin-top:4px}.export-option i{color:var(--green);font-style:normal}.format-icon{width:40px;height:40px;border-radius:10px;display:grid!important;place-items:center;font-weight:800!important;font-size:12px!important}.format-icon.word{background:#e9f1ff;color:#2463b9}.format-icon.pdf{background:#fff0ee;color:#c13a2c}.format-icon.html{background:#fff4e9;color:#c46a16}.format-icon.json{background:var(--green-soft);color:var(--green)}.publish-note{margin-top:20px;padding:12px;background:var(--canvas);border-radius:10px;color:var(--muted);font-size:9px;line-height:1.5}
.bottom-nav{position:fixed;z-index:25;bottom:0;left:0;right:0;height:74px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,75px)}.bottom-nav>div{text-align:center;font-size:9px;color:var(--muted)}.progress{width:140px;height:4px;background:#e6ece8;border-radius:4px;margin-top:7px;overflow:hidden}.progress i{display:block;height:100%;width:14.28%;background:var(--green);transition:.25s}.dialog{border:0;padding:0;border-radius:20px;width:min(760px,calc(100% - 28px));box-shadow:0 35px 100px rgba(0,0,0,.25)}.dialog::backdrop{background:rgba(8,22,14,.66);backdrop-filter:blur(3px)}.dialog-card{padding:28px}.dialog-head{display:flex;align-items:start;justify-content:space-between}.dialog-head h2{margin:5px 0 0}.dialog-close{border:0;background:#f0f3f1;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:20px}.dialog-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:24px 0 18px}.dialog-tabs button{border:0;background:none;padding:10px 13px;color:var(--muted);font:700 11px inherit;cursor:pointer}.dialog-tabs button.active{color:var(--green);border-bottom:2px solid var(--green)}.dialog-help{font-size:11px;color:var(--muted);line-height:1.6}.code-area{width:100%;border:1px solid #26362d;background:#14251b;color:#b9e9cb;border-radius:12px;padding:16px;font:12px/1.6 ui-monospace,monospace;resize:vertical;margin:7px 0 12px}.toast{position:fixed;z-index:100;right:24px;bottom:92px;background:#18251d;color:#fff;border-radius:10px;padding:12px 17px;font-size:11px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:860px){.app-header{height:auto;min-height:68px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.brand{min-width:0}.brand small,.save-state,.btn-small{display:none}.project-bar{margin-left:auto}.project-select{max-width:180px}.stepper-wrap{padding:12px 10px;overflow:auto}.stepper{min-width:640px}.step b{font-size:9px}.main-content{padding:32px 16px}.panel-heading{align-items:flex-start}.heading-icon{display:none}.layout-two,.validation-grid,.publish-layout{grid-template-columns:1fr}.insight-card{position:static}.chapter-workspace{grid-template-columns:1fr}.chapter-sidebar{position:static;overflow:auto}.chapter-sidebar #chapterNav{display:flex}.chapter-nav-item{min-width:150px}.editor-layout{grid-template-columns:1fr}.editor-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.editor-hint{grid-column:1/-1;margin-top:0}.score-card{justify-content:center}.book-cover{max-width:390px;margin:auto;width:100%}}
@media(max-width:560px){.brand strong{font-size:14px}.brand-mark{width:32px;height:32px}.project-select{width:145px}.panel-heading{display:block}.panel-heading .btn{margin-top:16px;width:100%}.panel-heading h1{font-size:26px}.form-card,.chapter-form,.export-card{padding:20px}.form-grid,.choice-row{grid-template-columns:1fr}.span-2{grid-column:span 1}.structure-item{grid-template-columns:34px minmax(0,1fr)}.structure-time{grid-column:2}.structure-actions{grid-column:2;justify-content:flex-start}.chapter-workspace{margin:0 -8px}.editor-controls{grid-template-columns:1fr}.editor-toolbar span{display:none}.rich-editor{min-height:420px;padding:30px 22px}.bottom-nav{height:68px;padding:0 12px}.bottom-nav>div{display:none}.publish-layout{gap:22px}.book-cover h2{font-size:28px}.notice{display:block}.notice b{display:block;margin-bottom:5px}}
@media print{body{background:#fff}.app-header,.stepper-wrap,.bottom-nav,.panel-heading,.editor-controls,.editor-card,.toast{display:none!important}.main-content{max-width:none;padding:0}.step-panel{display:none!important}.step-panel[data-panel="5"]{display:block!important}.book-preview{display:block!important;border:0;box-shadow:none;padding:0}.preview-cover{page-break-after:always}.preview-chapter{page-break-before:always}.app-shell{padding:0}}
