:root{--panel-bg:rgba(255,255,255,0.88);--border:#d0d0d0;--accent:#8b4513;--wood:#deb887;--sheet-bg:#fdf5e6}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100vh;font-family:IPAexGothic,Noto Sans JP,Hiragino Sans,Yu Gothic,Meiryo,sans-serif;color:#111}body{background-image:url(/itadori.jpg);background-size:cover;background-position:50%;background-attachment:fixed}body.no-bg{background:linear-gradient(135deg,#e8f4e8,#f5f0e6)}.page{max-width:1400px;margin:0 auto;padding:2rem 1.5rem 3rem}.title-with-badge{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.title-main{font-size:2.25rem;font-weight:700}.powered-badge{font-size:.65rem;font-weight:400;color:#fff;background-color:#333;padding:2px 8px;border-radius:4px}.lead{margin:0 0 .35rem;font-weight:500}.about-link-row{margin:0 0 1.5rem}.about-link{padding:0;border:none;background:none;color:#1d4e89;font-size:.95rem;font-weight:700;text-decoration:underline;cursor:pointer}.about-link:hover{color:#0f2f54}.main-layout{display:grid;grid-template-columns:minmax(0,500px) 1fr;gap:1.5rem;align-items:start}.panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.panel h2,.panel h3{margin:0 0 .75rem;font-size:1.1rem}.panel p{margin:0 0 .75rem;font-size:.9rem}.board-settings-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.settings-panel{padding:0;overflow:hidden}.form-table{width:100%;border-collapse:collapse;background:#fff}.form-table td,.form-table th{border:1px solid var(--border);padding:.55rem .75rem;text-align:left;vertical-align:middle}.form-table-heading{background:#f5f5f5;font-size:1.05rem;font-weight:800;padding:0}.form-table-heading-inner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .75rem}.form-table-subheading{background:#f5f5f5;font-weight:800;font-size:.95rem}.board-summary-highlight-row td,.board-summary-highlight-row th{background:#fff4d6;border-color:#c47b2b;font-weight:800;font-size:1.05rem;color:#5c3d1e}.board-summary-highlight-row th{width:4rem}.material-choice-cell{background:#fff}.settings-panel .board-settings-form{padding:1rem 1.25rem;margin-top:0;border-top:1px solid var(--border);background:rgba(255,255,255,.95)}.shelf-panel{padding:0;overflow:hidden}.shelf-panel .shelf-table-wrap{border:none;border-radius:0;padding:0;background:transparent}.shelf-panel .btn-row{padding:.75rem 1rem 1rem;margin-top:0}.board-settings-header h2{margin:0}.board-settings-toggle{flex-shrink:0;min-width:4.5rem;padding:.4rem .75rem;font-size:.85rem}.board-summary{margin:0;display:grid;gap:.4rem}.board-summary-highlight{padding:.75rem 1rem;background:#fff4d6;border:2px solid #c47b2b;border-radius:6px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}.board-summary-row{display:grid;grid-template-columns:3.2rem 1fr;gap:.75rem;align-items:baseline;font-size:1.05rem}.board-summary-row dt{margin:0;font-weight:800;color:#5c3d1e}.board-summary-row dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em}.board-settings-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.board-settings-lead{margin:0 0 .75rem;font-size:.85rem;color:#555}.board-settings-form .field-label{display:block;font-weight:700;margin-bottom:.25rem}.board-settings-done,.board-settings-form .radio-group{margin-top:.5rem}.dim-row{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:.5rem;margin-bottom:.5rem}.dim-row label{font-weight:700;white-space:nowrap}input[type=number],input[type=text]{width:100%;padding:.4rem .5rem;border:1px solid var(--border);border-radius:4px;font-size:.95rem;background:#fff}.field{margin-bottom:.75rem}.field label{display:block;font-weight:700;margin-bottom:.25rem}.radio-group{display:flex;flex-direction:column;gap:.35rem}.radio-group-wrap{flex-direction:row;flex-wrap:wrap;gap:.5rem 1rem}.radio-group label{display:flex;align-items:center;gap:.4rem;font-weight:700;cursor:pointer}.material-choice h2{margin-bottom:.65rem}.lam-inline{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.85rem}.lam-inline .field{margin-bottom:0}.divider{border:none;border-top:1px solid var(--border);margin:1rem 0}.shelf-table-wrap{overflow-x:auto;background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;padding:.5rem}.shelf-table{width:100%;border-collapse:collapse;background:#fff}.shelf-table td,.shelf-table th{border:1px solid var(--border);padding:.35rem .5rem;text-align:left}.shelf-table th{background:#f5f5f5;font-weight:700;font-size:.85rem}.shelf-table .meta-row th{width:5.5rem;white-space:nowrap;background:#fafafa}.shelf-table .meta-row td{background:#fff}.shelf-table .section-title-row th{background:#e8f4e8;font-size:1rem;font-weight:800;text-align:center;padding:.65rem}.shelf-table .column-header-row th{background:#f0f0f0}.shelf-table .meta-row td input,.shelf-table td input{border:none;background:transparent;width:100%;min-width:60px;padding:.2rem}.shelf-table .meta-row td input:focus,.shelf-table td input:focus{outline:2px solid #4a90d9;border-radius:2px;background:#fff}.shelf-table td input.input-ja,.shelf-table td input.input-ja:focus{ime-mode:active}.btn-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.btn{padding:.6rem 1rem;border:none;border-radius:6px;font-size:.95rem;font-weight:700;cursor:pointer;width:100%}.btn-primary{background:#2d6a4f;color:#fff}.btn-primary:hover{background:#1b4332}.btn-secondary{background:#444;color:#fff}.btn-secondary:hover{background:#222}.btn-ghost{background:#fff;color:#333;border:1px solid var(--border);width:auto}.alert{padding:.75rem 1rem;border-radius:6px;margin:.75rem 0;font-weight:500}.alert-success{background:#d8f3dc;border:1px solid #95d5b2}.alert-warning{background:#fff3cd;border:1px solid #ffda6a}.alert-info{background:#e7f0ff;border:1px solid #9bb8e8}.modal-overlay{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:1.25rem 1rem 2rem;background:rgba(20,16,10,.55);overflow-y:auto}.modal-dialog{width:min(640px,100%);margin:1.5rem auto;background:#fffaf2;border:2px solid #5c3d1e;box-shadow:0 12px 32px rgba(0,0,0,.28)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;background:#f3ead8;border-bottom:1px solid #c9b48a}.modal-header h2{margin:0;font-size:1.15rem}.modal-close{flex-shrink:0}.modal-body{padding:1rem 1.15rem 1.35rem}.modal-body h3{margin:0 0 .75rem;font-size:1.05rem}.modal-body h4{margin:1.1rem 0 .45rem;font-size:.95rem;border-bottom:1px solid #d8c7a4;padding-bottom:.2rem}.modal-body li,.modal-body p{font-size:.92rem;line-height:1.65}.modal-body p{margin:0 0 .75rem}.modal-body ul{margin:0;padding-left:1.2rem}.modal-body li+li{margin-top:.45rem}.modal-divider{border:none;border-top:1px solid #c9b48a;margin:1.25rem 0}.modal-feedback p{margin:0 0 .75rem}.modal-feedback-signature{margin:0;font-weight:600;line-height:1.7}.modal-feedback-signature a{color:#1d4e89;font-weight:700}.modal-feedback-signature a:hover{color:#0f2f54}.diagram-panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;padding:1rem}.diagram-panel h2{margin:0 0 1rem;font-size:1.1rem}.diagram-card{margin-bottom:1.25rem}.diagram-card:last-child{margin-bottom:0}.diagram-svg-wrap{width:100%;overflow-x:auto}.diagram-svg-wrap svg{background:#fff}.diagram-svg,.diagram-svg-wrap svg{width:100%;height:auto;display:block;border:1px solid var(--border);border-radius:4px}.diagram-svg{background:var(--sheet-bg)}.diagram-title{font-size:.9rem;font-weight:700;margin-bottom:.35rem}.mobile-diagrams{display:none;margin-top:1.5rem}@media (max-width:768px){.main-layout{grid-template-columns:1fr}.desktop-diagrams{display:none}.mobile-diagrams{display:block}.page{padding:1.25rem 1rem 2rem}.title-main{font-size:1.75rem}.lam-inline{grid-template-columns:1fr}.radio-group-wrap{flex-direction:column;gap:.45rem}}@media (min-width:769px){.mobile-diagrams{display:none!important}}@font-face{font-family:IPAexGothic;src:url(/fonts/ipaexg.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}