:root{--bg: #f3f5f8;--panel: #ffffff;--line: #d3dae3;--line-strong: #9aa7b8;--accent: #1a5fb4;--accent-soft: #e8f0fb;--ok: #2e7d32;--ok-soft: #e6f4ea;--ng: #c62828;--ng-soft: #fdecea;--warn: #ef6c00;--text: #1a1f2b;--text-2: #4a5568;--text-3: #718096}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Noto Sans JP,Hiragino Sans,Yu Gothic UI,Meiryo,sans-serif;font-size:14px;line-height:1.5}button{font:inherit;cursor:pointer}input,select{font:inherit;color:inherit}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line)}.app-header h1{margin:0;font-size:20px;color:var(--accent);letter-spacing:.04em}.app-header .subtitle{color:var(--text-3);font-size:12px}.app-header .spacer{flex:1}.btn{padding:6px 12px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel);color:var(--text)}.btn:hover{background:var(--accent-soft)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.small{padding:2px 8px;font-size:12px}.btn.danger{color:var(--ng)}.app-main{display:grid;grid-template-columns:460px minmax(0,1fr);gap:16px;padding:16px 20px;align-items:start}@media (max-width: 1100px){.app-main{grid-template-columns:1fr}}.input-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;position:sticky;top:64px;max-height:calc(100vh - 80px);overflow-y:auto}@media (max-width: 1100px){.input-panel{position:static;max-height:none}}.input-panel details{border-bottom:1px solid var(--line)}.input-panel details:last-child{border-bottom:none}.input-panel summary{padding:10px 14px;font-weight:600;cursor:pointer;background:var(--accent-soft);color:var(--accent);list-style:none}.input-panel summary:before{content:"▸ "}.input-panel details[open] summary:before{content:"▾ "}.input-panel .section-body{padding:10px 14px 14px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.field-grid.one{grid-template-columns:1fr}.field{display:flex;flex-direction:column;gap:2px}.field label{font-size:12px;color:var(--text-2)}.field input,.field select{padding:5px 8px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;width:100%}.field input:focus,.field select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field .unit{font-size:11px;color:var(--text-3)}.help{font-size:12px;color:var(--text-3);margin:6px 0 0}.mini-table{width:100%;border-collapse:collapse;margin-bottom:8px}.mini-table th,.mini-table td{padding:3px 4px;border-bottom:1px solid var(--line);font-size:12px;text-align:center}.mini-table th{color:var(--text-2);font-weight:500;white-space:nowrap}.mini-table input{width:100%;padding:3px 4px;border:1px solid var(--line-strong);border-radius:4px;text-align:right}.checkbox{display:flex;align-items:center;gap:6px;font-size:13px;grid-column:1 / -1}.sheet{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px 28px 40px;min-width:0}.sheet h2{margin:0 0 4px;font-size:22px}.sheet h3{margin:28px 0 8px;padding-bottom:4px;border-bottom:2px solid var(--accent);font-size:16px;color:var(--accent);break-after:avoid}.sheet h4{margin:16px 0 6px;font-size:14px;break-after:avoid}.sheet p{margin:4px 0}.sheet .meta{color:var(--text-2);font-size:13px;margin-bottom:8px}.sheet table{width:100%;border-collapse:collapse;margin:6px 0 10px;font-size:12.5px;font-variant-numeric:tabular-nums}.sheet th,.sheet td{border:1px solid var(--line-strong);padding:4px 6px;text-align:right;white-space:nowrap}.sheet th{background:#f0f3f7;font-weight:600;text-align:center}.sheet td.l,.sheet th.l{text-align:left}.sheet td.c{text-align:center}.sheet .table-wrap{overflow-x:auto}.badge{display:inline-block;min-width:36px;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700;text-align:center}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.ng{background:var(--ng-soft);color:var(--ng)}.badge.warn{background:#fff3e0;color:var(--warn)}.verdict{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;margin:8px 0 12px;font-weight:600}.verdict.ok{background:var(--ok-soft);color:var(--ok)}.verdict.ng{background:var(--ng-soft);color:var(--ng)}.verdict .big{font-size:22px}.formula{font-family:"Cambria Math",Times New Roman,serif;color:var(--text-2);font-size:13px;margin:2px 0 6px 8px}.note{font-size:12px;color:var(--text-2);background:#fbfcfd;border-left:3px solid var(--line-strong);padding:6px 10px;margin:8px 0}.error-box{background:var(--ng-soft);color:var(--ng);border:1px solid #f1b0b0;border-radius:8px;padding:12px 16px;margin-bottom:12px}.figure{display:flex;justify-content:center;margin:8px 0 12px}.figure svg{max-width:100%;height:auto}.warn-text{color:var(--warn)}@media print{@page{size:A4 portrait;margin:14mm 12mm}html,body{background:#fff;font-size:11px}.app-header,.input-panel,.no-print{display:none!important}.app-main{display:block;padding:0}.sheet{border:none;padding:0;border-radius:0}.sheet h3{margin-top:18px}.sheet table{font-size:10.5px;page-break-inside:auto}.sheet tr{page-break-inside:avoid}.verdict{border:1px solid currentColor}}.suggest-box{margin-top:8px;padding:8px;border:1px dashed #b8c4d6;border-radius:6px}.suggest-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.inline-field{display:inline-flex;align-items:center;gap:4px;font-size:12px}.inline-field input{width:64px}.mini-table td.up{color:#c62828;font-weight:600}.mini-table td.down{color:#1a5fb4;font-weight:600}.ng-text{color:#c62828}@media print{.suggest-box{display:none}}.header-user{display:flex;align-items:center;gap:8px;margin-left:8px;padding-left:12px;border-left:1px solid var(--line)}.header-user-email{color:var(--text-2);font-size:12px}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:18px;color:var(--text-3)}.login-screen{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:16px}.login-card{width:100%;max-width:400px;padding:32px;background:var(--panel);border-top:4px solid var(--accent);border-radius:12px;box-shadow:0 10px 15px -3px #0000001a}.login-title{margin:0 0 4px;text-align:center;font-size:28px;color:var(--accent);letter-spacing:.04em}.login-lead,.login-note{text-align:center;color:var(--text-3);font-size:13px}.login-card .field{margin-bottom:12px}.login-card .field label{font-size:13px;font-weight:600}.login-links{display:flex;justify-content:center;gap:16px;margin:12px 0 4px;font-size:13px}.login-links a{color:var(--accent)}.btn.block{width:100%;padding:10px}.login-card .btn:disabled{opacity:.6;cursor:not-allowed}.link-button{padding:0 4px;border:none;background:none;color:var(--accent);text-decoration:underline;font-size:inherit}.alert{margin-bottom:12px;padding:10px 12px;border-radius:6px}.alert-error{background:var(--ng-soft);color:var(--ng);border:1px solid #f1b0b0}.alert-success{background:var(--ok-soft);color:var(--ok);border:1px solid #a5d6a7}.muted{color:var(--text-3);font-size:12px}
