*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:#17233a;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;line-height:1.75}a{color:inherit;text-decoration:none}.wrap{max-width:1050px;margin:auto;padding:0 20px}.site-header{background:#111d32;color:#fff}.head{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:12px}.logo{font-weight:900;font-size:23px;letter-spacing:.03em}.head nav{display:flex;gap:20px;font-size:13px}.hero{background:linear-gradient(120deg,#152743,#244975);color:#fff;border-radius:20px;margin:32px 0;padding:46px 40px}.eyebrow{color:#8fd7ff;letter-spacing:.16em;font-size:11px;font-weight:800}.hero h1{font-size:clamp(28px,5vw,46px);line-height:1.35;margin:12px 0}.hero p{color:#e3ecf8;margin:0}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:28px 0 16px}.section-head h2{margin:0;font-size:22px}.section-head span{font-size:11px;letter-spacing:.12em;color:#678}.articles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.article-card{display:flex;gap:17px;background:#fff;padding:20px;border-radius:16px;border:1px solid #e5ebf3;box-shadow:0 5px 16px #17233a08}.article-card:hover{border-color:#7fb1df}.card-icon{min-width:66px;height:66px;background:#edf5ff;border-radius:13px;display:grid;place-items:center;font-size:32px}.card-body{min-width:0}.meta{display:flex;gap:10px;align-items:center;color:#8190a1;font-size:12px}.pill{background:#eaf3ff;color:#2d689e;border-radius:50px;padding:2px 9px;font-weight:700}.article-card h3{font-size:17px;line-height:1.5;margin:10px 0}.article-card p{font-size:13px;color:#627188;margin:0 0 8px}.read-more{font-size:12px;color:#1765a6;font-weight:800}.footer{padding:42px 10px;text-align:center;font-size:12px;color:#8190a1}.post{max-width:800px;margin:32px auto;background:#fff;border:1px solid #e6eaf0;border-radius:18px;padding:36px}.post h1{font-size:clamp(26px,5vw,38px);line-height:1.5;margin:18px 0}.lead{font-size:16px;color:#607089;border-bottom:1px solid #edf0f5;padding-bottom:22px}.post-content{overflow-wrap:anywhere}.post-content img{max-width:100%;height:auto}.post-content table{display:block;overflow-x:auto;border-collapse:collapse}.post-content td,.post-content th{border:1px solid #dce5ee;padding:9px}.post-content h2{border-left:5px solid #3184c8;background:#f1f7fd;padding:12px}.back{display:inline-block;color:#3679b1;font-size:13px;margin-bottom:14px}.admin{max-width:830px;margin:30px auto}.admin h1{font-size:26px}.panel,.form{background:#fff;padding:23px;border:1px solid #e3eaf2;border-radius:15px;margin:16px 0}.form label{display:block;font-size:13px;font-weight:700;margin-bottom:16px}.form input,.form textarea,.form select{display:block;width:100%;padding:12px;border:1px solid #ccd8e5;border-radius:8px;margin-top:6px;font:inherit;color:#17233a;background:#fff}.form textarea{resize:vertical;font-family:inherit}.btn{background:#1568a8;color:white;border:0;border-radius:9px;padding:11px 18px;font-weight:800;cursor:pointer;display:inline-block;font:inherit}.btn.secondary{background:#e7edf5;color:#1e4263}.actions{display:flex;gap:10px}.admin-row{display:flex;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid #eef1f5}.admin-row small{color:#7e8c9b}.note{font-size:12px;color:#986524}.success{background:#e8f8eb;padding:12px;border-radius:8px}.error{background:#fff0ee;color:#a32624;padding:12px;border-radius:8px}.empty{background:white;border:1px dashed #c8d4e0;padding:36px;text-align:center;border-radius:15px;margin:20px 0}@media(max-width:680px){.wrap{padding:0 13px}.hero{margin:18px 0;padding:28px 22px}.articles{grid-template-columns:1fr}.article-card{padding:15px}.post{padding:20px;margin:18px auto}.logo{font-size:18px}.admin-row{display:block}.admin-row small{display:block}}

.card-image{width:100%;height:185px;object-fit:cover;border-radius:10px;display:block}.post-image{display:block;width:100%;max-height:500px;object-fit:contain;border-radius:12px;margin:18px 0}.edit-preview{max-width:100%;max-height:300px;object-fit:contain;display:block;margin:12px 0}.panel form{margin:12px 0}.panel input[type=file]{max-width:100%;margin:10px 0;display:block}

/* Admin editor: keep uploaded images inside the mobile viewport */
.admin,.admin .panel,.admin .form{min-width:0;width:100%;max-width:100%;overflow-wrap:anywhere}
.admin .panel{overflow:hidden}
.admin .edit-preview,.admin .panel img{display:block;width:auto;max-width:100%;height:auto;max-height:320px;object-fit:contain;object-position:left center}
.admin .panel input[type=file]{width:100%;max-width:100%;min-width:0;font-size:14px}
@media(max-width:680px){.admin{margin:18px auto}.admin .panel,.admin .form{padding:16px}.admin .edit-preview,.admin .panel img{max-height:260px}}

/* v0.4 mobile editor: prevent intrinsic image width from expanding layout */
html,body{max-width:100%;overflow-x:hidden}
main.wrap{width:100%;min-width:0}
.admin{width:100%;max-width:830px;min-width:0}
.admin>.panel{width:100%;max-width:100%;min-width:0;overflow:hidden}
.admin>.panel>img.edit-preview{display:block!important;width:100%!important;max-width:100%!important;max-height:320px!important;height:auto!important;object-fit:contain!important;object-position:left center!important}
@media(max-width:680px){.admin>.panel>img.edit-preview{max-height:260px!important}}

/* Inline article images */
.inline-figure{margin:20px 0;text-align:center}.inline-figure img{display:block;width:auto;max-width:100%;max-height:720px;height:auto;margin:auto;border-radius:12px}.admin #inline-file{display:block;max-width:100%;margin:12px 0}.admin #inline-upload:disabled{opacity:.5}

/* Reusable media library */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:14px;margin-top:16px}.media-item{min-width:0;padding:10px;border:1px solid #dce5ee;border-radius:12px;background:#f9fbfd}.media-item img{display:block;width:100%;height:130px;object-fit:contain;background:#fff;border-radius:8px}.media-item .btn{width:100%;font-size:12px;padding:9px 6px;margin-top:8px;text-align:center}.media-item form{margin:0}.media-library{overflow:hidden}@media(max-width:500px){.media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.media-item{padding:7px}.media-item img{height:110px}}

/* Draft preview indicator */
.preview-banner{max-width:800px;margin:20px auto -15px;background:#fff3d6;color:#754b08;border:1px solid #f3d28e;padding:12px 18px;border-radius:10px;font-size:13px;font-weight:700}

/* Visual article editor */
.editor-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}.editor-toolbar button{border:1px solid #b7cde0;background:#edf5fc;border-radius:8px;padding:9px 12px;color:#1b527f;font-weight:700;cursor:pointer}.editor-preview{border:1px solid #d7e3ed;background:#fff;border-radius:12px;min-height:100px;padding:18px;overflow-wrap:anywhere}.editor-preview[hidden]{display:none}.editor-preview p{margin:4px 0;white-space:pre-wrap}.editor-preview h2{margin:15px 0 9px}.editor-preview h3{margin:12px 0 8px;color:#24577d}.editor-preview .inline-figure{margin:12px 0}.editor-preview .inline-figure img{max-height:400px}#article-body{width:100%;max-width:100%;padding:12px;border:1px solid #ccd8e5;border-radius:9px;font:inherit;resize:vertical;background:#fff;color:#17233a}.post-content p{margin:5px 0}.post-content h3{font-size:1.2em;margin:18px 0 10px}

/* Specification tables: mobile horizontal scrolling */
.spec-table-scroll{width:100%;max-width:100%;overflow-x:auto;margin:18px 0;-webkit-overflow-scrolling:touch}.spec-table{width:100%;min-width:460px;border-collapse:collapse;font-size:14px;background:#fff}.spec-table th,.spec-table td{border:1px solid #dce5ee;padding:10px 12px;text-align:left;vertical-align:top;white-space:normal}.spec-table th{background:#eaf3ff;font-weight:800;color:#214f79}.spec-table tr:nth-child(even) td{background:#f8fbff}
