:root{--bg:#f4f6f7;--side:#fff;--card:#fff;--line:#e3e6e9;--row:#eef0f2;--ink:#1b2126;--muted:#6b737b;--accent:#1f6f6b;--accent-soft:#e6f2f1;--warn:#b4452a;--warn-soft:#fff7f4;--warn-line:#f3cfc3}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}.serif,h1,h2,.tile .v{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;letter-spacing:.06em}.app{display:flex;min-height:100vh}.side{width:232px;flex:0 0 232px;background:var(--side);border-right:1px solid var(--line);padding:26px 14px;display:flex;flex-direction:column;gap:4px}.brand{padding:0 12px 18px;font-size:11px;letter-spacing:.22em;color:var(--muted)}#sidebarNav{display:contents}.nav{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;color:#3d474f;font-size:14px;text-decoration:none;white-space:nowrap}.nav .no{font-size:11px;color:var(--muted);width:20px;letter-spacing:.05em}.nav.on{background:var(--accent-soft);color:var(--accent);font-weight:700}.nav.on .no{color:var(--accent)}.nav.off{color:#a3aab0;cursor:default}.nav.off .tag{font-size:10px;margin-left:auto}.side .foot{margin-top:auto;padding:12px;font-size:11px;color:var(--muted);line-height:1.6}.main{min-width:0;flex:1;padding:30px 36px;display:flex;flex-direction:column;gap:22px}.head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.head .sub{font-size:12px;color:var(--muted);letter-spacing:.1em}.head h1{margin:6px 0 0;font-size:30px;font-weight:600}.spacer{flex:1}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{min-height:38px;padding:8px 16px;border-radius:8px;border:1px solid #d9dde1;background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.btn.danger{color:var(--warn)}.btn.small{min-height:30px;padding:5px 10px;font-size:12px}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:6px}.tile .k{font-size:11px;color:var(--muted);letter-spacing:.12em}.tile .v{font-size:42px;line-height:1.05}.tile .v small{font:16px "Hiragino Sans","Yu Gothic",sans-serif;margin-left:6px;color:var(--muted)}.tile.warn{background:var(--warn-soft);border-color:var(--warn-line)}.tile.warn .k,.tile.warn .v,.tile.warn small{color:var(--warn)}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel .bar{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.panel .bar h2{margin:0;font-size:18px;font-weight:600}.month-control{display:flex;align-items:center;gap:8px}.month-title{min-width:110px;text-align:center;font-weight:700}.muted,.hint{color:var(--muted);font-size:12px}.notice{display:none;padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px}.notice.show{display:block}.notice.error{color:var(--warn);background:var(--warn-soft);border-color:var(--warn-line)}.notice.ok{color:var(--accent);background:var(--accent-soft)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:860px}th{font-size:11px;font-weight:600;color:var(--muted);text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);letter-spacing:.08em;white-space:nowrap}td{padding:12px 14px;border-bottom:1px solid var(--row);font-size:14px;vertical-align:middle}tr:last-child td{border-bottom:0}tr.urgent td{background:var(--warn-soft);color:var(--warn)}tr.done td{color:var(--muted);text-decoration:line-through}.r{text-align:right}.amount-input{width:120px;text-align:right}.badge{display:inline-block;padding:3px 7px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700}.badge.estimate{background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn-line)}input,select,textarea{width:100%;border:1px solid #d9dde1;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:14px;padding:9px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.empty{padding:28px;text-align:center;color:var(--muted)}.master-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;color:var(--muted);font-weight:600}.field.wide{grid-column:span 2}.master-list{padding:0 16px 16px}.master-card{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--row);font-size:13px}.master-card:last-child{border-bottom:0}.import-area{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px}.import-area textarea{min-height:150px;resize:vertical}.mapping{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 16px 16px}.preview{padding:0 16px 16px}.preview-line{padding:7px 9px;border-bottom:1px solid var(--row);font-size:12px}.preview-line.error{color:var(--warn);background:var(--warn-soft)}.section-help{padding:0 18px 14px;color:var(--muted);font-size:12px;line-height:1.7}.hidden{display:none!important}.file-label{display:inline-flex;align-items:center}.file-label input{display:none}dialog{width:min(680px,calc(100% - 24px));border:1px solid var(--line);border-radius:12px;padding:0;background:#fff;color:var(--ink)}dialog::backdrop{background:rgba(27,33,38,.35)}.dialog-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center}.dialog-head h2{margin:0;font-size:18px}.dialog-body{padding:18px}.dialog-actions{padding:14px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .wide{grid-column:1/-1}.day-fields{display:flex;gap:8px}.day-fields>*{flex:1}.check-label{display:flex;align-items:center;gap:8px;font-size:13px}.check-label input{width:18px}.screen-only{}@media(max-width:1100px){.master-card{grid-template-columns:1.5fr 1fr 1fr auto}.master-card .memo{display:none}}@media(max-width:800px){.app{flex-direction:column}.side{width:auto;flex:0 0 auto;flex-direction:row;flex-wrap:nowrap;padding:10px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.side .foot,.brand{display:none}.nav{padding:9px}.nav .tag{display:none}.main{padding:18px;gap:16px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{padding:14px}.tile .v{font-size:34px}.head{align-items:flex-start}.head .spacer{display:none}.actions{width:100%}.actions .btn,.actions .file-label{flex:1}.master-grid,.import-area{grid-template-columns:1fr}.field.wide{grid-column:auto}.mapping{grid-template-columns:1fr 1fr}.master-card{grid-template-columns:1fr auto}.master-card .secondary{display:none}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}@media(max-width:430px){.main{padding:12px}.tiles{gap:8px}.tile .v{font-size:29px}.btn{padding:8px 10px}.mapping{grid-template-columns:1fr}}@media print{.side,.actions,.screen-only,#message,.import-panel,.master-actions{display:none!important}.main{padding:0;gap:10px}.tile,.panel{border-color:#000}.tiles{grid-template-columns:repeat(4,1fr)}body{background:#fff}.panel{break-inside:avoid}table{min-width:0;font-size:10px}th,td{padding:5px}}
tr.overdue td{background:var(--warn-soft);color:var(--warn);font-weight:600}.badge.overdue{background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn-line)}.overdue-notice{padding:10px 18px;color:var(--warn);background:var(--warn-soft);border-bottom:1px solid var(--warn-line);font-size:13px;font-weight:700}
