:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#172033;background:#f5f7fa;line-height:1.55}*{box-sizing:border-box}body{margin:0}header,main{max-width:960px;margin:auto;padding:20px}header{padding-bottom:5px}h1{font-size:1.7rem;margin-bottom:4px}h2{font-size:1.3rem}.card{background:#fff;border:1px solid #d8dee8;border-radius:8px;padding:22px;margin:18px 0;box-shadow:0 1px 3px #0000000d}.field{margin-bottom:18px}.field>label,legend{font-weight:700}fieldset{border:1px solid #ccd4df;border-radius:6px;margin:0 0 18px;padding:12px}fieldset label{display:block;padding:5px}small,.muted{color:#5e6878}button,.button{border:1px solid #9aa5b5;border-radius:5px;background:#fff;color:#172033;padding:9px 13px;font:inherit;cursor:pointer;text-decoration:none;display:inline-block}button:disabled{opacity:.55;cursor:not-allowed}.primary{background:#125bb5;color:#fff;border-color:#125bb5;font-weight:700}.status,.message{margin-top:16px;padding:12px;border-radius:5px;background:#eef3f8}.error{background:#fff0f0;border-left:5px solid #b42318}.warning{background:#fff7df;border-left:5px solid #a15c00}.success{background:#edf9f0;border-left:5px solid #188038}.hidden{display:none!important}.result dl{display:grid;grid-template-columns:1fr 1fr;gap:8px}.result dl div{border-bottom:1px solid #e4e8ee;padding:7px}.result dt{font-size:.85rem;color:#596474}.result dd{font-weight:700;margin:2px 0}.download-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.section-head{display:flex;align-items:center;justify-content:space-between}.badge{font-weight:700;padding:3px 9px;border-radius:20px}.badge.ok{background:#daf2df}.badge.warn{background:#fff0c2}.badge.error{background:#ffd9d6}.badge.pending{background:#e8edf3}.actions{display:flex;gap:8px;flex-wrap:wrap}.checks{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:15px 0}.check{border:1px solid #dde2e9;padding:8px;border-radius:4px}.check strong{float:right}.state-ok{color:#116b2d}.state-warning{color:#895000}.state-error{color:#a51d16}.state-pending{color:#596474}.logs{background:#121822;color:#dbe6f4;padding:12px;height:260px;overflow:auto;border-radius:5px;font:12px/1.6 Consolas,monospace}.log-warning{color:#ffd166}.log-error{color:#ff8a80}.log-engine{color:#9ad1ff}pre,textarea{white-space:pre-wrap;word-break:break-word;width:100%;background:#f6f8fa;border:1px solid #d8dee8;padding:12px;max-height:420px;overflow:auto}.fatal{background:#fee;color:#900;padding:20px;text-align:center}@media(max-width:650px){header,main{padding:12px}.card{padding:15px}.checks,.result dl{grid-template-columns:1fr}.section-head{align-items:flex-start}.actions button,.download-actions .button{width:100%;text-align:center}}

/* PDFドラッグ＆ドロップ選択（0.1.14） */
.field-label{display:block;margin-bottom:8px}.file-input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.file-drop-zone{position:relative;display:flex;min-height:210px;padding:28px 20px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed #cbd3df;border-radius:10px;background:#fbfcfe;text-align:center;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.file-drop-zone:hover:not(.is-disabled){border-color:#8da8c8;background:#f5f9fe}.file-drop-zone:focus-visible{outline:3px solid rgba(18,91,181,.3);outline-offset:3px}.file-drop-zone.is-dragover{border-color:#125bb5;background:#edf5ff;box-shadow:0 0 0 4px rgba(18,91,181,.12);transform:translateY(-1px)}.file-drop-zone.has-file{border-style:solid;border-color:#f9b7cd;background:#fffafd}.file-drop-zone.is-disabled{background:#f3f5f8;color:#7b8492;cursor:not-allowed;opacity:.72}.file-drop-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:5px;border:1px solid #c8d2df;border-radius:13px;background:#fff;box-shadow:0 5px 16px rgba(23,32,51,.08);color:#125bb5;font-size:.78rem;font-weight:800;letter-spacing:.04em}.file-drop-zone.has-file .file-drop-icon{border-color:#f9b7cd;color:#d62f68}.file-drop-title{font-size:1.05rem;font-weight:800}.file-drop-description{color:#5e6878;font-size:.92rem}.file-drop-info{max-width:100%;margin-top:7px;color:#3f4b5d;font-size:.9rem;overflow-wrap:anywhere}.file-drop-zone.has-file .file-drop-info{color:#9d1f4f;font-weight:700}@media(max-width:650px){.file-drop-zone{min-height:180px;padding:23px 15px}.file-drop-icon{width:48px;height:48px}}


/* 起動状態と圧縮進捗の表示分離（2.1.3） */
.startup-status{position:relative;display:grid;grid-template-columns:auto 1fr;gap:4px 11px;align-items:center;margin:0 0 20px;padding:12px 14px 13px;border:1px solid #cbd5e1;border-left:5px solid #64748b;border-radius:6px;background:#f8fafc;overflow:hidden}.startup-status-icon{grid-row:1/3;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-weight:800}.startup-status-copy{display:flex;flex-direction:column;min-width:0}.startup-status-title{font-size:.98rem}.startup-status-detail{color:#5e6878;font-size:.88rem}.startup-status-progress{position:absolute;left:0;right:0;bottom:0;height:3px;overflow:hidden;background:#dbe7f5}.startup-status-progress span{display:block;width:38%;height:100%;background:#2563a8;animation:startup-progress 1.15s ease-in-out infinite}.startup-status.is-loading{border-left-color:#2563a8;background:#f1f7fd}.startup-status.is-loading .startup-status-icon{border:3px solid #bdd3ec;border-top-color:#2563a8;animation:status-spin .8s linear infinite}.startup-status.is-ready{border-color:#f9b7cd;border-left-color:#f7477e;background:#fff1f5}.startup-status.is-ready .startup-status-icon{background:#f7477e;color:#fff}.startup-status.is-ready .startup-status-progress,.startup-status.is-warning .startup-status-progress,.startup-status.is-error .startup-status-progress{display:none}.startup-status.is-warning{border-left-color:#a15c00;background:#fff7df}.startup-status.is-warning .startup-status-icon{background:#a15c00;color:#fff}.startup-status.is-error{border-left-color:#b42318;background:#fff0f0}.startup-status.is-error .startup-status-icon{background:#b42318;color:#fff}

.compression-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(10,16,26,.52);overflow:auto}.compression-modal-panel{position:relative;width:min(560px,100%);padding:28px;border-radius:10px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.28);text-align:center;outline:none}.compression-modal-panel h2{margin:12px 0 6px;font-size:1.35rem}.compression-modal-detail{min-height:1.55em;margin:0 0 20px;color:#39465a}.compression-modal-icon{width:48px;height:48px;margin:auto;display:grid;place-items:center;border-radius:50%;font-size:1.6rem;font-weight:800}.compression-modal-icon.is-processing span{width:34px;height:34px;border:4px solid #c9dcf2;border-top-color:#125bb5;border-radius:50%;animation:status-spin .8s linear infinite}.compression-modal-icon.is-success{background:#f7477e;color:#fff}.compression-modal-icon.is-warning{background:#a15c00;color:#fff}.compression-modal-icon.is-error{background:#b42318;color:#fff}.compression-progress-meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;color:#596474;font-size:.88rem}.compression-progress{position:relative;height:10px;overflow:hidden;border-radius:999px;background:#e4eaf1}.compression-progress span{display:block;height:100%;width:0;border-radius:inherit;background:#125bb5;transition:width .25s ease}.compression-progress.is-indeterminate span{width:36%;animation:compression-progress 1.15s ease-in-out infinite}.compression-progress.is-complete span{width:100%;background:#f7477e}.compression-progress.is-error span{width:100%;background:#b42318}.compression-elapsed{margin:13px 0 0;font-variant-numeric:tabular-nums;font-weight:700}.compression-note{margin:5px 0 0;color:#5e6878;font-size:.88rem}.compression-modal-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:22px}.compression-modal-close{position:absolute;top:-56px;right:0;width:44px;height:44px;min-width:44px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:#3f434a;color:#fff;font-size:1.55rem;font-weight:700;line-height:1;box-shadow:0 5px 16px rgba(0,0,0,.28);z-index:1}.compression-modal-close:hover{background:#2f3339;border-color:rgba(255,255,255,.36)}.compression-modal-close:focus-visible{outline:3px solid rgba(247,71,126,.42);outline-offset:3px}body.has-compression-modal{overflow:hidden}

@keyframes status-spin{to{transform:rotate(360deg)}}@keyframes startup-progress{0%{transform:translateX(-115%)}100%{transform:translateX(300%)}}@keyframes compression-progress{0%{transform:translateX(-120%)}100%{transform:translateX(300%)}}
@media(max-width:650px){.compression-modal{padding:68px 12px 12px}.compression-modal-panel{padding:22px 17px}.compression-modal-close{top:-54px;right:0}.compression-modal-actions button{width:100%}.startup-status{padding:11px 12px 12px}}
@media(prefers-reduced-motion:reduce){.startup-status.is-loading .startup-status-icon,.compression-modal-icon.is-processing span{animation-duration:1.8s}.startup-status-progress span,.compression-progress.is-indeterminate span{animation:none;transform:none;width:55%}.compression-progress span{transition:none}}


/* 動作診断・技術情報アコーディオン（2.1.4） */
.diagnostics-accordion{padding:0;overflow:hidden}.diagnostics-summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:22px;cursor:pointer;list-style:none;user-select:none}.diagnostics-summary::-webkit-details-marker{display:none}.diagnostics-summary::after{content:"";width:9px;height:9px;border-right:2px solid #657082;border-bottom:2px solid #657082;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease}.diagnostics-accordion[open] .diagnostics-summary::after{transform:rotate(225deg) translate(-2px,-2px)}.diagnostics-summary:hover{background:#f8fafc}.diagnostics-summary:focus-visible{outline:3px solid rgba(18,91,181,.28);outline-offset:-3px}.diagnostics-title{font-size:1.3rem;font-weight:700}.diagnostics-content{padding:20px 22px 22px;border-top:1px solid #e4e8ee}.diagnostics-content>.actions{margin-bottom:4px}
@media(max-width:650px){.diagnostics-summary{padding:15px}.diagnostics-content{padding:15px}.diagnostics-title{font-size:1.15rem}}
@media(prefers-reduced-motion:reduce){.diagnostics-summary::after{transition:none}}


/* 操作ガイド・PDF選択・圧縮ボタン誘導（0.1.14） */
.file-drop-zone.is-guided-control{box-shadow:0 0 0 2px rgba(247,71,126,.28)}.file-drop-zone.is-guided-control.is-guidance-initial{animation:file-guidance-pulse 1.6s ease-in-out 3}.file-drop-zone.is-guided-control.is-guidance-reminder{animation:file-guidance-pulse 1.6s ease-in-out 1}fieldset.is-guided-review{border-color:#f9b7cd;background:#fffafd;transition:border-color .2s ease,background-color .2s ease}
#compress{position:relative;overflow:hidden;isolation:isolate}#compress::after{content:"";position:absolute;top:-35%;bottom:-35%;left:0;width:34%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);transform:translateX(-190%) skewX(-18deg);opacity:0}#compress.is-shining:not(:disabled)::after{opacity:1;animation:compress-button-shine 1s ease-out 3}@keyframes file-guidance-pulse{0%,100%{box-shadow:0 0 0 2px rgba(247,71,126,.28)}50%{box-shadow:0 0 0 4px rgba(247,71,126,.72),0 0 0 9px rgba(247,71,126,.13)}}@keyframes compress-button-shine{0%{transform:translateX(-190%) skewX(-18deg)}72%,100%{transform:translateX(390%) skewX(-18deg)}}
.verification-output{margin-top:18px;padding:16px;border:1px solid #d8dee8;border-radius:6px;background:#f8fafc}.verification-output h3{margin:0 0 10px}.diagnostics-result-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.diagnostics-result-list div{padding:8px;border-bottom:1px solid #e4e8ee}.diagnostics-result-list dt{font-size:.85rem;color:#596474}.diagnostics-result-list dd{margin:2px 0;font-weight:700}
@media(max-width:650px){.diagnostics-result-list{grid-template-columns:1fr}.verification-output .button{width:100%;text-align:center}}
@media(prefers-reduced-motion:reduce){.file-drop-zone{transition:none}.file-drop-zone.is-guided-control{box-shadow:0 0 0 2px rgba(247,71,126,.32)}.file-drop-zone.is-guided-control.is-guidance-initial,.file-drop-zone.is-guided-control.is-guidance-reminder{animation:none}fieldset.is-guided-review{transition:none}#compress.is-shining:not(:disabled)::after{animation:none;opacity:0}}
