@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;600;700;900&family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400&display=swap";:root{--paper: #FAF6EE;--paper-2: #F2EBDB;--card: #FFFFFF;--ink: #1B1714;--ink-2: #4A3F36;--ink-3: #6B5F53;--mute: #B8AFA2;--hairline: #E5DCC9;--hairline-2: #D8CCB2;--wine: #7E2B2B;--wine-deep: #5A1A1A;--wine-soft: #B66A6A;--brass: #A88A4F;--brass-deep: #7E6534;--leaf: #4A6B3A;--sumi: #2A2522;--info: #3B5A7E;--success: #4A6B3A;--warning: #B58128;--danger: #9B2C2C;--scrim-top: linear-gradient(to bottom, rgba(27,23,20,.45), rgba(27,23,20,0));--scrim-bot: linear-gradient(to top, rgba(27,23,20,.55), rgba(27,23,20,0));--font-serif-jp: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-sans-jp: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;--font-serif-en: "EB Garamond", "Noto Serif JP", serif;--font-mono: ui-monospace, "SFMono-Regular", "Menlo", monospace;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 15px;--fs-md: 17px;--fs-lg: 20px;--fs-xl: 26px;--fs-2xl: 34px;--fs-3xl: 44px;--fs-4xl: 60px;--fs-5xl: 84px;--tr-tight: -.01em;--tr-body: 0em;--tr-wide: .08em;--tr-xwide: .24em;--tr-jp: .04em;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 128px;--r-0: 0;--r-1: 2px;--r-2: 4px;--r-3: 8px;--r-pill: 999px;--sh-0: 0 1px 0 rgba(27,23,20,.04);--sh-1: 0 1px 2px rgba(27,23,20,.06), 0 1px 1px rgba(27,23,20,.04);--sh-2: 0 6px 18px -8px rgba(27,23,20,.18), 0 2px 4px rgba(27,23,20,.06);--sh-3: 0 24px 48px -16px rgba(27,23,20,.22), 0 6px 12px rgba(27,23,20,.08);--inset-line: inset 0 0 0 1px var(--hairline);--ease: cubic-bezier(.22,.61,.36,1);--ease-in-out: cubic-bezier(.45,0,.25,1);--dur-fast: .14s;--dur: .26s;--dur-slow: .48s;--dur-hero: .9s;--container: 1200px;--gutter: 24px;--rule: 1px}body{margin:0}.app{background:var(--paper);color:var(--ink);font-family:var(--font-sans-jp);font-size:var(--fs-sm);line-height:1.7;letter-spacing:var(--tr-jp);min-height:100vh;-webkit-font-smoothing:antialiased}.app *{box-sizing:border-box}.topbar{background:var(--card);border-bottom:1px solid var(--hairline);box-shadow:var(--sh-0)}.topbar-in{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;gap:var(--s-6);height:56px}.app-name{font-family:var(--font-serif-jp);font-weight:600;font-size:var(--fs-md);letter-spacing:var(--tr-jp);white-space:nowrap}.app-name small{font-family:var(--font-serif-en);font-size:10px;letter-spacing:var(--tr-xwide);color:var(--ink-3);display:block;line-height:1;margin-top:2px;text-transform:uppercase}.nav{display:flex;gap:var(--s-5);margin-left:var(--s-4)}.nav a{font-size:var(--fs-xs);letter-spacing:var(--tr-wide);color:var(--ink-3);text-decoration:none;padding:18px 2px 15px;border-bottom:2px solid transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);white-space:nowrap}.nav a:hover{color:var(--ink)}.nav a.active{color:var(--ink);border-bottom-color:var(--wine);font-weight:500}.page{max-width:var(--container);margin:0 auto;padding:var(--s-6) var(--gutter) var(--s-9)}.page-hd{display:flex;align-items:baseline;gap:var(--s-4);margin-bottom:var(--s-5);flex-wrap:wrap}.page-eyebrow{font-family:var(--font-serif-en);font-size:11px;letter-spacing:var(--tr-xwide);text-transform:uppercase;color:var(--brass-deep);display:block;margin-bottom:var(--s-1)}.page-title{font-family:var(--font-serif-jp);font-weight:600;font-size:var(--fs-xl);line-height:1.4;margin:0}.page-hd .spacer{margin-left:auto}.section{margin-top:var(--s-7)}.section-title{font-family:var(--font-serif-jp);font-weight:600;font-size:var(--fs-md);margin:0 0 var(--s-3)}.hint{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.8}.card{background:var(--card);border:1px solid var(--hairline);border-radius:var(--r-2);box-shadow:var(--sh-0)}.card-pad{padding:var(--s-5)}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-sm);background:var(--card)}.tbl-wrap{overflow-x:auto;border:1px solid var(--hairline);border-radius:var(--r-2);background:var(--card)}.tbl th{font-family:var(--font-sans-jp);font-weight:500;font-size:11px;letter-spacing:var(--tr-wide);color:var(--ink-3);text-align:left;padding:10px 14px;border-bottom:1px solid var(--hairline-2);background:var(--paper);white-space:nowrap}.tbl td{padding:9px 14px;border-bottom:1px solid var(--hairline);vertical-align:middle;color:var(--ink-2)}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background var(--dur-fast) var(--ease)}.tbl tbody tr:hover{background:#a88a4f0d}.tbl .num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink)}.tbl td.strong{color:var(--ink);font-weight:500}tr.row-warn{background:#b5812812}tr.row-danger{background:#9b2c2c0f}tr.row-ok{background:#4a6b3a0f}tr.row-warn:hover,tr.row-danger:hover,tr.row-ok:hover{background:#a88a4f1f}.pill{display:inline-block;font-size:11px;font-weight:500;letter-spacing:var(--tr-wide);line-height:1;padding:4px 9px;border-radius:var(--r-1);border:1px solid transparent;white-space:nowrap}.pill-ok{color:var(--success);border-color:#4a6b3a66;background:#4a6b3a12}.pill-warn{color:var(--warning);border-color:#b5812873;background:#b5812814}.pill-danger{color:var(--danger);border-color:#9b2c2c66;background:#9b2c2c0f}.pill-info{color:var(--info);border-color:#3b5a7e66;background:#3b5a7e12}.pill-neutral{color:var(--ink-3);border-color:var(--hairline-2);background:var(--paper)}.pill-brass{color:var(--brass-deep);border-color:#a88a4f80;background:#a88a4f1a}.btn{display:inline-flex;align-items:center;gap:var(--s-2);font-family:var(--font-sans-jp);font-size:var(--fs-sm);font-weight:500;letter-spacing:var(--tr-wide);padding:9px 20px;border-radius:var(--r-2);border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);text-decoration:none}.btn:hover{background:var(--ink);color:var(--paper)}.btn-primary{background:var(--wine);border-color:var(--wine);color:#fff}.btn-primary:hover{background:var(--wine-deep);border-color:var(--wine-deep);color:#fff}.btn-quiet{border:0;padding:9px 6px;color:var(--ink-2);border-bottom:1px solid var(--hairline-2);border-radius:0}.btn-quiet:hover{background:transparent;color:var(--wine);border-bottom-color:var(--wine)}.btn[disabled]{opacity:.45;pointer-events:none}.field{display:flex;flex-direction:column;gap:5px}.field label{font-family:var(--font-serif-en);font-size:10px;letter-spacing:var(--tr-xwide);color:var(--ink-3);text-transform:uppercase}.field input,.field select,.field textarea{font-family:inherit;font-size:var(--fs-sm);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);padding:7px 0;outline:0;transition:border-color var(--dur) var(--ease)}.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--wine)}.field input::placeholder{color:var(--mute)}.field textarea{border:1px solid var(--hairline-2);border-radius:var(--r-1);padding:10px 12px;font-family:var(--font-mono);font-size:12px;line-height:1.7;background:var(--card)}.cell-select{font-family:inherit;font-size:12px;color:var(--ink);background:var(--card);border:1px solid var(--hairline-2);border-radius:var(--r-1);padding:4px 8px;outline:0}.cell-select:focus{border-color:var(--wine)}.chips{display:flex;gap:var(--s-2);flex-wrap:wrap}.chip{font-size:var(--fs-xs);letter-spacing:var(--tr-wide);color:var(--ink-2);background:var(--card);border:1px solid var(--hairline-2);border-radius:var(--r-pill);padding:5px 14px;cursor:pointer;transition:all var(--dur-fast) var(--ease)}.chip:hover{border-color:var(--ink-3)}.chip.on{background:var(--sumi);color:var(--paper);border-color:var(--sumi)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-2);overflow:hidden}.stat{background:var(--card);padding:var(--s-4) var(--s-4)}.stat .k{font-size:10px;letter-spacing:var(--tr-wide);color:var(--ink-3);display:block}.stat .v{font-family:var(--font-serif-jp);font-size:var(--fs-lg);font-weight:600;font-variant-numeric:tabular-nums;line-height:1.3}.stat .v small{font-size:var(--fs-xs);font-family:var(--font-sans-jp);color:var(--ink-3);font-weight:400;margin-left:2px}.stat.warn .v{color:var(--warning)}.stat.danger .v{color:var(--danger)}.warnlist{list-style:none;margin:0;padding:0}.warnlist li{display:flex;align-items:baseline;gap:var(--s-3);padding:10px 4px;border-bottom:1px solid var(--hairline);font-size:var(--fs-sm);color:var(--ink-2)}.warnlist li:last-child{border-bottom:0}.warnlist .w-tag{flex-shrink:0}.dropzone{border:1px dashed var(--hairline-2);border-radius:var(--r-2);background:var(--card);padding:var(--s-8) var(--s-5);text-align:center;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);cursor:pointer}.dropzone:hover{border-color:var(--brass);background:#a88a4f0a}.dropzone .dz-title{font-family:var(--font-serif-jp);font-size:var(--fs-md);font-weight:500;margin:0 0 4px}.dropzone .dz-sub{font-size:var(--fs-xs);color:var(--ink-3)}.actionbar{margin-top:var(--s-6);padding:var(--s-4) var(--s-5);background:var(--card);border:1px solid var(--hairline);border-radius:var(--r-2);display:flex;align-items:center;gap:var(--s-5)}.actionbar .grow{flex:1;font-size:var(--fs-sm);color:var(--ink-2)}.log{list-style:none;margin:0;padding:0;font-size:var(--fs-xs);color:var(--ink-3)}.log li{padding:7px 2px;border-bottom:1px solid var(--hairline);display:flex;gap:var(--s-3)}.log li:last-child{border-bottom:0}.log .t{font-family:var(--font-mono);color:var(--brass-deep);flex-shrink:0}.rowlink{font-family:var(--font-serif-jp);font-size:16px;color:var(--ink-3);text-decoration:none;display:inline-block;padding:2px 8px;transition:color var(--dur) var(--ease),transform var(--dur) var(--ease)}.rowlink:hover{color:var(--wine);transform:translate(2px)}.tbl tbody tr[data-href]{cursor:pointer}.tbl tbody tr[data-href] a{position:relative;z-index:1}.crumb{font-size:12px;color:var(--ink-3);letter-spacing:var(--tr-wide);margin-bottom:6px}.crumb a{color:var(--ink-3);text-decoration:none;border-bottom:1px solid var(--hairline-2)}.crumb a:hover{color:var(--wine);border-bottom-color:var(--wine)}.chk{width:15px;height:15px;accent-color:var(--wine);cursor:pointer}.chk:disabled{cursor:not-allowed}td.chk-cell{width:36px;text-align:center}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b171473;display:flex;align-items:flex-start;justify-content:center;padding:4vh 24px;z-index:50;overflow-y:auto}.modal{background:var(--paper);border-radius:var(--r-2);box-shadow:var(--sh-3);width:min(1100px,94vw);max-height:88vh;overflow-y:auto}.modal-hd{position:sticky;top:0;background:var(--card);z-index:2;display:flex;align-items:center;gap:14px;padding:16px 24px;border-bottom:1px solid var(--hairline)}.modal-hd h2{font-family:var(--font-serif-jp);font-size:19px;font-weight:600;margin:0}.modal-close{margin-left:auto;border:0;background:none;cursor:pointer;font-size:20px;color:var(--ink-3);padding:4px 8px;line-height:1}.modal-close:hover{color:var(--wine)}.modal-bd{padding:20px 24px}.modal-ft{position:sticky;bottom:0;background:var(--card);z-index:2;display:flex;align-items:center;gap:16px;padding:14px 24px;border-top:1px solid var(--hairline)}.modal-ft .grow{flex:1;font-size:12px;color:var(--ink-3)}.msum{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:16px;font-size:13px;color:var(--ink-2)}.msum b{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums}tr.row-off{background:#1b17140a}tr.row-off:hover{background:#1b171412}
