*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans JP",Arial,sans-serif;color:#1f2430;background:#f6f4ef}
.wrap{max-width:1180px;margin:0 auto;padding:18px 16px 60px}
h1{font-size:clamp(1.45rem,3.2vw,2.1rem);line-height:1.2;margin:.2em 0 .4em}
h2{font-size:1.3rem;margin:1.4em 0 .5em}
h3{font-size:1.05rem}
.better{margin:.3em 0 .6em;padding-left:1.2em}
.better li{margin:.25em 0}
.lede{background:#fff8e1;border-left:4px solid #f2c14e;padding:.6em .8em;margin:.6em 0;font-size:.95rem}
.keybar{display:flex;gap:.6em;align-items:center;flex-wrap:wrap;font-size:.92rem;color:#444}
.keybar .on{color:#1b7a3c;font-weight:700}
button,.file span{font:inherit;cursor:pointer;border:1px solid #b9b4a8;background:#fff;border-radius:8px;padding:.45em .9em;color:#1f2430}
button:hover,.file:hover span{border-color:#1f2430}
button.go{background:#1f2430;color:#fff;border-color:#1f2430;font-weight:700;padding:.6em 1.2em}
.file input{position:absolute;opacity:0;width:1px;height:1px}
.file{position:relative;display:inline-block}
.input{background:#fff;border:1px solid #ddd8cc;border-radius:12px;padding:14px;margin:12px 0}
.input label[for=script]{font-weight:700;display:block;margin-bottom:.4em}
textarea{width:100%;font:14px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,"Noto Sans Mono CJK JP",monospace;border:1px solid #cfc9bb;border-radius:8px;padding:10px;background:#fffdf8}
.settings{display:flex;gap:1em;flex-wrap:wrap;margin:.6em 0;font-size:.92rem}
select,input[type=number],input:not([type]){font:inherit;padding:.3em .4em;border:1px solid #cfc9bb;border-radius:6px;background:#fff}
.btns{display:flex;gap:.5em;flex-wrap:wrap;align-items:center;margin:.5em 0}
.msg{min-height:1.3em;margin:.3em 0;font-size:.92rem}
.msg.bad{color:#b3261e}.msg.good{color:#1b7a3c}
.badge{display:inline-block;background:#e8f0e9;border-radius:6px;padding:.2em .6em;font-size:.9rem;margin:.4em 0}
.badge.ex{background:#fff1cc}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:8px 0 12px}
.tile{background:#fff;border:1px solid #ddd8cc;border-radius:10px;padding:10px 12px}
.tile b{display:block;font-size:1.6rem;line-height:1.1}
.tile span{font-size:.85rem;color:#555}
.tile.green b{color:#1b7a3c}.tile.amber b{color:#a35c00}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid #1f2430;margin-top:6px}
.tabs button{border-radius:8px 8px 0 0;border-bottom:none}
.tabs button.on{background:#1f2430;color:#fff;border-color:#1f2430}
.probar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;background:#1f2430;color:#fff;padding:8px 10px;border-radius:0 0 10px 10px;font-size:.9rem}
.probar button{background:#2e3545;color:#fff;border-color:#4a5368;padding:.35em .7em}
.probar button:hover{border-color:#f2c14e}
.probar .plabel{font-weight:700;color:#f2c14e}
.probar .left{margin-left:auto;color:#cfe8d4}
.pane{padding:10px 0}
.schead{margin:1.2em 0 .5em;padding-bottom:.2em;border-bottom:1px solid #ddd8cc}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.card{margin:0;background:#fff;border:1px solid #ddd8cc;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.card.edited{border-color:#f2c14e}
.frame{position:relative;background:#e9e4da;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;overflow:hidden}
.frame svg,.frame img{width:100%;height:100%;display:block;object-fit:cover}
.aitag{position:absolute;right:6px;top:6px;background:#1f2430;color:#f2c14e;font-style:normal;font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:4px}
figcaption{padding:8px 10px;font-size:.86rem;display:flex;flex-direction:column;gap:2px;flex:1}
figcaption p{margin:0}
.meta b{font-size:.95rem}
.who{color:#555}.desc{color:#333}.dl i{color:#666}.note{color:#7a4b00}.trans{font-weight:700;text-align:right;font-size:.8rem}
.cbtn{display:flex;gap:6px;margin-top:auto;padding-top:6px}
.cbtn button{font-size:.8rem;padding:.25em .6em}
.tablewrap{overflow-x:auto}
table.res{border-collapse:collapse;width:100%;font-size:.84rem;background:#fff}
table.res th,table.res td{border:1px solid #e2ddd1;padding:5px 6px;text-align:left;vertical-align:top}
table.res th{background:#f0ece3;position:sticky;top:0}
table.res td.wide{min-width:220px}
.calc{display:flex;gap:1em;flex-wrap:wrap;font-size:.92rem;background:#fff;border:1px solid #ddd8cc;border-radius:10px;padding:10px}
.calc input{width:7em}
.save{background:#fff8e1;border-radius:8px;padding:.6em .8em}
.setups li{margin:.25em 0}
.setups small{color:#666}
#anim{width:100%;max-width:960px;max-height:75vh;object-fit:contain;background:#111;border-radius:8px;display:block;cursor:pointer}
.atime{font-variant-numeric:tabular-nums;color:#444}
.hint{font-size:.86rem;color:#555}
#castList textarea{font-family:inherit;min-width:220px}
.por img{width:64px;height:64px;object-fit:cover;border-radius:6px;display:block;margin-bottom:4px}
.plans .pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.pcard{background:#fff;border:1px solid #ddd8cc;border-radius:12px;padding:12px 16px}
.pcard.pro{border:2px solid #1f2430}
.pcard h3{margin:.2em 0}
a.plan{display:block;text-decoration:none;color:#fff;background:#1f2430;border-radius:10px;padding:.6em .9em;margin:.5em 0}
a.plan small{display:block;color:#f2c14e}
a.plan:hover{background:#2e3545}
.faq details{background:#fff;border:1px solid #ddd8cc;border-radius:8px;padding:.5em .8em;margin:.4em 0}
.faq summary{cursor:pointer;font-weight:600}
.modal{position:fixed;inset:0;background:rgba(15,18,25,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:12px}
.modal[hidden]{display:none}
.modal .box{background:#fff;border-radius:14px;max-width:560px;width:100%;max-height:90vh;overflow:auto;padding:18px 20px;position:relative}
.modal .plans2{display:grid;gap:6px}
.modal .key{display:flex;gap:.4em;flex-wrap:wrap;align-items:center;margin:.6em 0}
.modal .key input{flex:1;min-width:160px}
.pwb{padding-left:1.2em;font-size:.92rem}
.edgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:.9rem}
.edgrid label{display:flex;flex-direction:column;gap:2px}
.edgrid .full,.edgrid p{grid-column:1/-1}
.lib{padding-left:1em}.lib li{margin:.3em 0}
.print{display:none}
@media (max-width:640px){.edgrid{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.tile b{font-size:1.3rem}}
@media print{
  @page{size:A4 landscape;margin:10mm}
  body{background:#fff}
  body.printing .wrap,body.printing .modal,body.printing > *:not(.print){display:none !important}
  body.printing .print{display:block}
  .ppage{page-break-after:always;break-after:page}
  .ppage:last-child{page-break-after:auto}
  .phead{display:flex;justify-content:space-between;border-bottom:1px solid #000;margin-bottom:4mm;font-size:10pt}
  .pgrid2{display:grid;grid-template-columns:repeat(3,1fr);gap:4mm}
  .ppage.tall .pgrid2{grid-template-columns:repeat(4,1fr)}
  .pcell{font-size:8pt;break-inside:avoid}
  .pcell img{width:100%;border:1px solid #000;display:block}
  .pcell p{margin:1mm 0}
  table.plist{border-collapse:collapse;width:100%;font-size:8pt}
  table.plist th,table.plist td{border:1px solid #555;padding:1.2mm;text-align:left;vertical-align:top}
}
