:root{font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;color:#172b43;background:#f3f6fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #b9c9da;border-radius:10px;padding:.65rem .9rem;background:#fff;color:#17365d;font-weight:700}button:disabled{opacity:.5;cursor:not-allowed}button:hover:not(:disabled){background:#e9f1fa}.app-shell{max-width:820px;min-height:100vh;margin:auto;background:#f8fafc;box-shadow:0 0 30px #dbe4ed}.topbar{display:flex;justify-content:space-between;align-items:center;background:#17365d;color:#fff;padding:1.1rem 1rem}.topbar h1{font-size:1.3rem;margin:.15rem 0 0}.topbar small{color:#b8d9f2}.offline-indicator{font-size:.8rem;border:1px solid #8bb6d6;border-radius:20px;padding:.25rem .5rem;white-space:nowrap}.main-nav,.step-nav{display:flex;gap:.5rem;padding:.6rem;background:#fff;border-bottom:1px solid #dae4ee}.main-nav button,.step-nav button{flex:1;border:0;background:transparent;color:#4b6480}.main-nav .active,.step-nav .active{background:#dcecff;color:#154f85}main{padding:1rem;min-height:65vh}.stack{display:grid;gap:1rem}.section-title h2{font-size:1.35rem;margin:.2rem 0}.section-title p{margin:.2rem 0;color:#53677d}.card,.notice{background:#fff;border:1px solid #dbe4ed;border-radius:14px;padding:1rem;box-shadow:0 2px 7px #1c3b5c0a}.card h3{margin:.1rem 0 .8rem}.card p{line-height:1.5}.notice{background:#eaf3ff;border-color:#bcd8f3}.notice p{margin:.5rem 0}.notice ul{margin:.5rem 0 0;padding-left:1.3rem}.error{background:#fff0ee;border-color:#e6a8a3;color:#8c251b}.success{background:#e8f6e9;border-color:#aad5ac}.hint{font-size:.87rem;color:#5a6b7e}.actions,.card-actions{display:flex;flex-wrap:wrap;gap:.5rem}.primary,.file-button{background:#246398;color:#fff;border-color:#246398}.primary:hover:not(:disabled),.file-button:hover{background:#164f7f;color:#fff}.file-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid;border-radius:10px;padding:.65rem .9rem;font-weight:700;cursor:pointer;min-height:44px}.file-button input{position:absolute;width:1px;height:1px;opacity:0}.file-button.secondary{background:#fff;color:#17365d;border-color:#b9c9da}.danger{color:#9a2a28}.danger.subtle{background:#fff5f5;border-color:#e7b0ad}.character-card h3{margin:0}.character-card p{margin:.35rem 0;color:#51657b}.character-card small{color:#698099}.card-actions{margin-top:.85rem}.card-actions button{flex:1;min-width:65px}.empty{text-align:center;padding:2.5rem 1rem;color:#71849a}.back{border:0;padding:.4rem 0;background:transparent}.form-stack{display:grid;gap:1rem}.form-stack label{display:grid;gap:.35rem;font-weight:700}.form-stack input,.form-stack select,.form-stack textarea{width:100%;border:1px solid #89b6df;border-radius:9px;background:#eef6ff;padding:.65rem;color:#122e49;min-height:44px}.form-stack textarea{resize:vertical}.form-stack h4{margin:.5rem 0 -.5rem}.field-grid,.read-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.save-status{color:#47647c;margin:0}.result,.summary-card{background:#e7f4eb;border-radius:12px;padding:1rem}.result{display:flex;justify-content:space-between}.summary-card{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.summary-card strong{font-size:2rem}.detail-list{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.65rem;margin:0}.detail-list dt{color:#617589}.detail-list dd{margin:0;overflow-wrap:anywhere}.prewrap{white-space:pre-wrap}.card summary{font-weight:700;cursor:pointer}.card details{padding-top:1rem}.card summary+*{margin-top:1rem}.read-grid{margin-top:1rem}.read-grid>div{display:flex;justify-content:space-between;background:#f3f7fa;padding:.7rem;border-radius:8px}.skill-list{list-style:none;padding:0;margin:.8rem 0 0}.skill-list li{display:flex;justify-content:space-between;padding:.65rem 0;border-bottom:1px solid #e1e9f0}footer{padding:1rem;color:#6d8194;text-align:center;font-size:.8rem}@media(max-width:380px){main{padding:.7rem}.card,.notice{padding:.8rem}.main-nav,.step-nav{gap:.2rem}.step-nav button{font-size:.85rem;padding:.6rem .2rem}.card-actions button{padding:.55rem .25rem;font-size:.85rem}}.step-nav{overflow-x:auto;justify-content:flex-start}.step-nav button{flex:0 0 auto;white-space:nowrap}.entry-card{border:1px solid #dbe4ed;border-radius:10px;padding:.75rem;background:#f8fbfe}.entry-heading{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.entry-heading h4{margin:.2rem 0}.display-list{list-style:none;padding:0;margin:.5rem 0}.display-list li{display:grid;gap:.3rem;padding:.7rem 0;border-bottom:1px solid #e1e9f0}.display-list li span{font-size:.9rem;color:#5a6b7e}.display-list li p{margin:.2rem 0;white-space:pre-wrap}.inline-delete{margin-left:.5rem;padding:.25rem .5rem;font-size:.82rem}.ability-cards,.skill-inputs,.feat-results{display:grid;gap:.75rem}.ability-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ability-card,.feat-result{border:1px solid #dbe4ed;border-radius:10px;padding:.75rem;background:#fafcff}.ability-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:.7rem}.ability-heading span{font-size:1.35rem;font-weight:700;color:#19613d}.ability-card label{font-size:.85rem;margin-top:.55rem}.ability-card small,.skill-inputs small{font-weight:400;color:#5b7185}.field-error{color:#a43b2b;font-size:.86rem;margin:.4rem 0}.calc-detail{font-size:.8rem;color:#607589;margin-top:.5rem}.calc-detail summary{cursor:pointer}.skill-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-inputs label{min-width:0}.result-list{background:#e7f4eb;border-radius:12px;padding:.8rem}.result-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0}.result-list>div+div{border-top:1px solid #cfe2d4}.feat-result p{margin:.4rem 0}.feat-result .kind{font-size:.75rem;color:#54718b;margin-left:.5rem}.feat-result button{margin-top:.5rem}.step-nav button{min-width:0}@media(max-width:380px){.ability-cards,.skill-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}.ability-card{padding:.55rem}.ability-card input{padding:.45rem}}.rights-credit{display:block;max-width:32rem;margin-top:.35rem;line-height:1.4}
