:root{--bg:#f4f5f7;--panel:#fff;--line:#e1e4e8;--text:#1f2328;--muted:#6a737d;--primary:#2563eb;--primary-d:#1d4ed8;--ok:#1a7f37;--ok-bg:#dafbe1;--warn:#9a6700;--warn-bg:#fff4c2;--warn-line:#e3b341;--err:#cf222e;--err-bg:#ffe2e0;--err-line:#f19a95;--edited:#1d4ed8;--info:#8b949e;color:var(--text);background:var(--bg);font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,BIZ UDPGothic,Yu Gothic UI,Meiryo,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button{font:inherit;border:1px solid var(--line);color:var(--text);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){background:#f0f3f6}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover:not(:disabled){background:var(--primary-d)}button.ghost{background:0 0;border-color:#0000}button.danger{color:var(--err)}button.small{padding:3px 9px;font-size:13px}input,select{font:inherit}kbd{border:1px solid var(--line);color:var(--muted);background:#fafbfc;border-bottom-width:2px;border-radius:4px;padding:0 4px;font-size:11px}code{background:#eff1f3;border-radius:4px;padding:0 4px}.muted{color:var(--muted)}.small{font-size:12px}.spacer{flex:1}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 16px;display:flex}.topbar h1{margin:0;font-size:17px}.busy{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.spinner{border:2px solid #c8d1dc;border-top-color:var(--primary);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}.spinner.small{width:10px;height:10px}@keyframes spin{to{transform:rotate(360deg)}}.empty{cursor:pointer;flex:1;place-items:center;padding:16px;display:grid}.empty-box{text-align:center;background:#fff;border:2px dashed #b6c0cc;border-radius:16px;max-width:560px;padding:40px 48px}.empty-box ul{text-align:left;color:var(--muted);font-size:13px;line-height:1.8}.empty-icon{font-size:44px}.empty-title{font-size:17px;font-weight:600}.drop-overlay{border:4px dashed var(--primary);color:var(--primary-d);pointer-events:none;z-index:50;background:#2563eb1f;place-items:center;font-size:22px;font-weight:600;display:grid;position:fixed;inset:0}.toast{color:#fff;z-index:60;background:#24292f;border-radius:8px;max-width:90vw;padding:10px 18px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.body{flex:1;min-height:0;display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:250px;display:flex}.sidebar-head{justify-content:space-between;padding:10px 12px 6px;font-size:13px;font-weight:600;display:flex}.progress{background:#eef1f4;border-radius:2px;height:4px;margin:0 12px 6px;overflow:hidden}.progress>div{background:var(--ok);height:100%;transition:width .3s}.card-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.card-list li{cursor:pointer;border-bottom:1px solid #f0f2f4;padding:8px 12px}.card-list li:hover{background:#f6f8fa}.card-list li.active{box-shadow:inset 3px 0 var(--primary);background:#e8f0fe}.card-name{font-weight:600}.card-meta{justify-content:space-between;align-items:center;gap:6px;margin-top:2px;display:flex}.card-meta .file{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.sidebar>button{margin:8px}.badge{white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:1px 7px;font-size:11px;display:inline-flex}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.error{background:var(--err-bg);color:var(--err)}.badge.muted,.badge.plain{color:var(--muted);background:#eef1f4}.placeholder{color:var(--muted);flex:1;place-items:center;display:grid}.cardview{flex-direction:column;flex:1;min-width:0;display:flex}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 14px;display:flex}.hfield{align-items:center;gap:6px;display:inline-flex}.hfield span{color:var(--muted);font-size:13px}.hfield input{border:1px solid var(--line);border-radius:5px;padding:4px 7px;font-size:15px;font-weight:600}.hfield.warn input{background:var(--warn-bg);border-color:var(--warn-line)}.hfield.error input{background:var(--err-bg);border-color:var(--err-line)}.banner{padding:7px 14px;font-size:13px}.banner.warn{background:var(--warn-bg);color:var(--warn);border-bottom:1px solid var(--warn-line)}.split{flex:1;min-height:0;display:flex}.viewer{border-right:1px solid var(--line);background:#e9ecef;flex-direction:column;flex:50%;min-width:0;display:flex}.viewer-tools{border-bottom:1px solid var(--line);background:#f6f8fa;align-items:center;gap:6px;padding:6px 10px;display:flex}.zoom{text-align:center;width:44px;font-size:12px}.viewer-box{cursor:grab;touch-action:none;flex:1;overflow:auto}.viewer-box:active{cursor:grabbing}.viewer-box img{-webkit-user-select:none;user-select:none;display:block}.right{background:var(--panel);flex-direction:column;flex:50%;min-width:420px;display:flex}.state-box{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;margin:40px auto;display:flex}.state-box.error p:first-child{color:var(--err);font-weight:600}.summary{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:8px 12px;display:flex}.pill{border-radius:10px;padding:2px 9px;font-size:12px;font-weight:600}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.error{background:var(--err-bg);color:var(--err)}.table-wrap{flex:1;min-height:0;overflow-y:auto}table.grid{border-collapse:collapse;width:100%}.grid th{color:var(--muted);border-bottom:1px solid var(--line);z-index:1;background:#f6f8fa;padding:5px;font-size:12px;font-weight:600;position:sticky;top:0}.grid td{border-bottom:1px solid #f0f2f4;padding:2px 4px}.grid tr.off td{background:#fafbfc}.grid tr.focus td{background:#eef4ff}.grid td.day{text-align:right;font-variant-numeric:tabular-nums;width:40px;padding-right:8px}.grid td.wd{text-align:center;width:40px;color:var(--muted);font-size:12px}.grid td.sun{color:var(--err)}.grid td.sat{color:var(--primary)}.cell{font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:4px 8px;font-size:15px}.cell:hover{border-color:var(--line)}.cell:focus{outline:2px solid var(--primary);outline-offset:-1px;background:#fff}.cell.warn{background:var(--warn-bg);border-color:var(--warn-line)}.cell.error{background:var(--err-bg);border-color:var(--err-line)}.cell.info{box-shadow:inset 3px 0 #d0d7de}.cell.edited{color:var(--edited);font-weight:600}.cell.direct{letter-spacing:.1em}.cell.note{font-size:13px}.detail{border-top:1px solid var(--line);background:#fbfcfd;min-height:92px;padding:8px 12px}.detail-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.edited-tag{color:var(--edited);border:1px solid var(--edited);border-radius:8px;padding:0 6px;font-size:11px}.reasons{margin:6px 0;padding-left:18px;font-size:13px}.detail-actions{flex-wrap:wrap;gap:6px;display:flex}.footer-actions{border-top:1px solid var(--line);gap:8px;padding:10px 12px;display:flex}.modal-bg{z-index:70;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;flex-direction:column;gap:14px;width:480px;max-width:100%;padding:20px 24px;display:flex}.modal h2{margin:0;font-size:18px}.field{flex-direction:column;gap:4px;display:flex}.field>span{font-size:13px;font-weight:600}.field input,.field select{border:1px solid var(--line);border-radius:6px;padding:6px 8px}.field small,.check small{color:var(--muted)}.check{align-items:flex-start;gap:8px;display:flex}.modal-actions{justify-content:flex-end;display:flex}@media (width<=900px){.body{flex-direction:column}.sidebar{width:100%;max-height:180px}.split{flex-direction:column}.viewer{min-height:45vh}.right{min-width:0}}
