:root{--page: #F3F6F1;--surface: #FCFEFB;--surface-2: #EBF0E8;--surface-3: #DFE7DA;--border: #D9E0D8;--border-2: #838c81;--divider: #E9EFE7;--text: #1f251f;--text-2: #3c413b;--text-3: #595e58;--text-4: #666d66;--ok: #176e3a;--ok-soft: rgba(23, 110, 58, .13);--warn: #7f5a00;--warn-soft: rgba(127, 90, 0, .13);--danger: #ac362e;--danger-soft: rgba(172, 54, 46, .13);--action: #1f251f;--action-fg: #FCFEFB;--action-hover: #2b322b;--action-active: #101510;--focus: #595e58;--chart-1: #8b9689;--chart-2: #626c61;--chart-3: #3c453b;--chart-4: #192218;--cat-work: #ff197a;--cat-family: #af7600;--cat-health: #2f9d00;--cat-study: #009696;--cat-social: #0080f7;--cat-rest: #c200fa;--ink-on-cat: #020402;--cal-weekend: #2f7fc9;--tl-lead: rgba(89, 94, 88, .3);--fs-meta: 12px;--fs-sm: 12.5px;--fs-table: 13.5px;--fs-body: 14px;--fs-lg: 15px;--fs-h2: 19px;--fs-h1: 21px;--fs-kpi: 28px;--fs-doc: 16px;--fs-doc-h3: 18px;--fs-doc-h2: 21px;--fs-doc-h1: 24px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--row-h: 36px;--ctl-h: 32px;--ctl-sm: 28px;--sidebar: 220px;--r-sm: 3px;--r-input: 4px;--r-btn: 4px;--r-card: 5px;--r-pill: 3px;--font-ui: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-num: "JetBrains Mono", "Cascadia Mono", Consolas, ui-monospace, "Noto Sans SC", monospace}*{box-sizing:border-box}body{margin:0;font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.55;background:var(--page);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--text-2);text-decoration:none}a:hover{color:var(--text)}h1,h2,h3{margin:0;font-weight:600;line-height:1.35}h1,h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-lg)}p{margin:0}button{font:inherit;cursor:pointer}.row{display:flex;align-items:center;gap:var(--sp-2)}.row-wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:var(--sp-2)}.spacer{flex:1}.page-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-4)}.page-title{font-size:var(--fs-h2);font-weight:600}.toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-3)}.timebar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-input)}.timebar-name{color:var(--text);font-weight:600}.timebar-period{color:var(--text-3);font-size:var(--fs-sm)}.timebar-clock{font-family:var(--font-num);font-variant-numeric:tabular-nums;color:var(--text);font-size:var(--fs-lg)}.timebar.is-over{background:var(--danger-soft);border-color:var(--danger)}.timebar-err{color:var(--danger);font-size:var(--fs-sm)}.timebar.is-over .pill-danger{background:var(--danger);color:var(--page)}.timebar.is-over .timebar-err{color:var(--text)}.timehead{min-width:12em;text-align:center;color:var(--text-2)}.timeaxis{position:relative;height:28px;margin-bottom:var(--sp-1);background:var(--surface-2);border-radius:var(--r-sm)}.timeaxis-bar{position:absolute;top:4px;bottom:4px;min-width:2px;background:var(--action);border-radius:var(--r-sm)}.timeaxis-scale{display:flex;justify-content:space-between}.row-error{color:var(--danger);font-size:var(--fs-sm);margin-right:var(--sp-2)}.muted{color:var(--text-4);font-size:var(--fs-sm)}.error{color:var(--danger);font-size:var(--fs-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid transparent;border-radius:var(--r-btn);font-size:var(--fs-body);font-weight:600;white-space:nowrap;transition:background-color .12s,border-color .12s,color .12s}.btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn:disabled{cursor:not-allowed}.btn-primary{background:var(--action);color:var(--action-fg)}.btn-primary:hover:not(:disabled){background:var(--action-hover)}.btn-primary:active:not(:disabled){background:var(--action-active)}.btn-primary:disabled{opacity:.38}.btn-secondary{background:transparent;color:var(--text-2);border-color:var(--border-2)}.btn-secondary:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn-secondary:disabled{opacity:.45}.btn-ghost{background:transparent;color:var(--text-3)}.btn-ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn-ghost:disabled{opacity:.45}.btn-sm{height:var(--ctl-sm);padding:0 10px;font-size:var(--fs-sm);border-radius:var(--r-sm)}.btn-danger-ghost{background:transparent;color:var(--danger)}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-soft)}.btn-danger-ghost:disabled{opacity:.45}.segmented{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:3px;height:var(--ctl-h);background:var(--surface-2);border-radius:var(--r-input)}.segmented-item{display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 12px;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);font-size:var(--fs-body);font-weight:600;color:var(--text-3);white-space:nowrap;transition:background-color .12s,border-color .12s,color .12s}.segmented-item:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.segmented-item[aria-pressed=true]{background:var(--surface-3);border-color:var(--border-2);color:var(--text)}.segmented-item:disabled{opacity:.45;cursor:not-allowed}.segmented-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.field{height:var(--ctl-h);width:100%;padding:0 11px;border:1px solid var(--border-2);border-radius:var(--r-input);background:var(--surface-2);color:var(--text);font-size:var(--fs-body);transition:border-color .12s}.field::placeholder{color:var(--text-4)}.field:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--text-4)}.field:disabled{background:var(--page);color:var(--text-4);cursor:not-allowed}.field-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:28px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M3 4.75L6 7.75L9 4.75' stroke='%23595e58' stroke-width='1.4' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center}.field-area{height:auto;min-height:68px;padding:8px 11px;resize:vertical;line-height:1.55}.field-row{display:flex;flex-direction:column;gap:var(--sp-1)}.field-label{font-size:var(--fs-sm);font-weight:500;color:var(--text-2)}.field-hint{font-size:var(--fs-sm);color:var(--text-4)}.field-inline{width:auto}.field-sm{height:var(--ctl-sm);padding:0 8px;font-size:var(--fs-sm)}.field-sm.field-select{padding-right:28px}.field-file{width:100%;height:var(--ctl-h);padding:0 11px;border:1px solid var(--border-2);border-radius:var(--r-input);background:var(--surface-2);color:var(--text-3);font-size:var(--fs-sm)}.field-file:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.field-file::file-selector-button{font:inherit;margin-right:var(--sp-2);padding:5px 10px;border:1px solid var(--border-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);cursor:pointer}.field-file::file-selector-button:hover{background:var(--surface-3)}.field.is-warn{border-color:var(--warn)}.choice{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-body);color:var(--text-2)}.choice-box,.choice-radio{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:16px;height:16px;margin:0;background:var(--surface-2);border:1.5px solid var(--border-2);position:relative;cursor:pointer;transition:background-color .12s,border-color .12s}.choice-box{border-radius:4px}.choice-radio{border-radius:50%}.choice-box:checked,.choice-radio:checked{background:var(--action);border-color:var(--action)}.choice-box:checked:after{content:"";position:absolute;left:4.5px;top:2px;width:4px;height:8px;border:solid var(--action-fg);border-width:0 2px 2px 0;transform:rotate(45deg)}.choice-radio:checked:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--action-fg)}.choice-box:focus-visible,.choice-radio:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.choice-box:disabled,.choice-radio:disabled{opacity:.45;cursor:not-allowed}.check-circle{flex:none;width:18px;height:18px;padding:0;margin:0;background:transparent;border:1.5px solid var(--border-2);border-radius:50%;cursor:pointer;transition:background-color .12s,border-color .12s}.check-circle:hover:not(:disabled){border-color:var(--action);background:var(--surface-3)}.check-circle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.check-circle:disabled{opacity:.45;cursor:not-allowed}.pill{display:inline-flex;align-items:center;flex:none;padding:2px 8px;border-radius:var(--r-pill);font-size:var(--fs-meta);font-weight:500;white-space:nowrap}.pill-danger{background:var(--danger-soft);color:var(--danger)}.pill-warn{background:var(--warn-soft);color:var(--warn)}.pill-ok{background:var(--ok-soft);color:var(--ok)}.pill-neutral{background:var(--surface-3);color:var(--text-3)}.pill-outline{background:transparent;border:1px solid var(--border-2);color:var(--text-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:0;overflow:hidden}.card-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--divider)}.card-head h3{font-size:var(--fs-lg)}.card-head-toggle{background:none;border:0;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:var(--r-sm)}.card-head-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.card-body{padding:var(--sp-4)}.card-gap{margin-bottom:var(--sp-4)}.card-gap-sm{margin-bottom:var(--sp-3)}.card-clickable{cursor:pointer;transition:border-color .12s}.card-clickable:hover{border-color:var(--border-2)}.card-clickable[aria-current=true]{border-color:var(--border-2);background:var(--surface-3)}.card-clickable[aria-current=true] .item-name{font-weight:600}.card-clickable[aria-current=true] .item-meta{color:var(--text-3)}.card-button{display:block;width:100%;padding:var(--sp-4);text-align:left;font:inherit;color:inherit}.card-button .item-name,.card-button .item-meta{display:block}.card>.card-head:last-child{border-bottom:0}.empty{padding:var(--sp-8) 0;text-align:center;color:var(--text-4);font-size:var(--fs-body)}.list-item{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--row-h);padding:var(--sp-1) var(--sp-4);border-top:1px solid var(--divider)}.card-head+div>.list-item{border-top:0}.item-name{font-size:var(--fs-body);font-weight:500;color:var(--text)}.item-meta{font-size:var(--fs-sm);color:var(--text-4)}.item-sub{padding:var(--sp-1) var(--sp-4) var(--sp-2) calc(var(--sp-4) + 8px);font-size:var(--fs-sm);color:var(--text-4)}.steps{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2) var(--sp-4) var(--sp-3) calc(var(--sp-4) + 8px)}.item-line{display:flex;align-items:center;gap:var(--sp-2)}.item-line-end{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.item-toggle{background:none;border:0;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:var(--r-sm)}.item-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr;grid-template-rows:1fr auto}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar);overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:var(--sp-4) var(--sp-3);background:var(--surface);border-right:1px solid var(--border)}.side-brand{padding:0 var(--sp-2) var(--sp-4);font-size:var(--fs-lg);font-weight:600;color:var(--text);letter-spacing:.02em}.side-link{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:var(--r-input);font-size:var(--fs-body);color:var(--text-3);text-decoration:none;transition:background-color .12s,color .12s}.side-link:hover{background:var(--surface-3);color:var(--text)}.side-link.is-active{background:var(--surface-3);color:var(--text);font-weight:600}.nav-badge{margin-left:auto;padding:1px 6px;border-radius:var(--r-pill);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-meta);font-weight:700}.side-foot{margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--divider)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-table)}.table th{text-align:left;padding:8px var(--sp-3);font-size:var(--fs-meta);font-weight:500;color:var(--text-3);background:var(--surface-2);border-bottom:1px solid var(--border)}.table td{height:var(--row-h);padding:0 var(--sp-3);color:var(--text-2);border-bottom:1px solid var(--divider)}.table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table td.num{font-family:var(--font-num)}.nowrap{white-space:nowrap}.table .amount-in{color:var(--ok)}.table .amount-out{color:var(--danger)}.table-scroll{overflow-x:auto}.num-tab{font-variant-numeric:tabular-nums;white-space:nowrap;font-family:var(--font-num)}.markdown{line-height:1.9;color:var(--text-2);font-size:var(--fs-doc)}.markdown h1{font-size:var(--fs-doc-h1);margin:var(--sp-8) 0 var(--sp-3);color:var(--text)}.markdown h2{font-size:var(--fs-doc-h2);margin:var(--sp-8) 0 var(--sp-3);padding-top:var(--sp-5);border-top:1px solid var(--divider);color:var(--text)}.markdown h2:first-child{margin-top:0;padding-top:0;border-top:0}.markdown h3{font-size:var(--fs-doc-h3);margin:var(--sp-5) 0 var(--sp-2);color:var(--text)}.markdown h4,.markdown h5,.markdown h6{font-size:var(--fs-doc);font-weight:600;margin:var(--sp-4) 0 var(--sp-2);color:var(--text)}.markdown h1,.markdown h2,.markdown h3{text-wrap:balance}.markdown p{margin:0 0 var(--sp-3);text-wrap:pretty}.markdown ul,.markdown ol{margin:0 0 var(--sp-3);padding-left:var(--sp-5)}@media (min-width: 640px){.markdown p,.markdown li{text-align:justify}}.markdown strong{color:var(--text);font-weight:600}.markdown a{text-decoration:underline}.markdown code{background:var(--surface-2);padding:1px 5px;border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text);font-family:var(--font-num)}.markdown pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-3);margin:0 0 var(--sp-3);overflow-x:auto}.markdown pre code{background:none;padding:0;border-radius:0}.markdown table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin:0 0 var(--sp-3);font-variant-numeric:tabular-nums}.markdown th{text-align:left;padding:8px var(--sp-3);font-weight:500;color:var(--text-3);background:var(--surface-2);border-bottom:1px solid var(--border)}.markdown td{padding:8px var(--sp-3);border-bottom:1px solid var(--divider)}.meter{height:8px;background:var(--surface-3);border-radius:var(--r-pill);overflow:hidden;margin:var(--sp-3) 0}.meter-fill{height:100%;background:var(--action);border-radius:var(--r-pill)}.meter-fill.is-over{background:var(--warn)}.table .meter{margin:0;min-width:72px}.report{max-width:720px}.report-meta{padding-bottom:var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-4)}.split{display:grid;grid-template-columns:240px 1fr;gap:var(--sp-4)}@media (max-width: 640px){.split{grid-template-columns:1fr}}.narrow{max-width:480px}.pre-wrap{white-space:pre-wrap}.shell-main{grid-column:2;grid-row:1;width:100%;min-width:0;padding:var(--sp-5) var(--sp-6) var(--sp-6)}.footer{grid-column:1 / -1;grid-row:2;padding:var(--sp-4) var(--sp-6);text-align:center;font-size:var(--fs-sm);color:var(--text-4);border-top:1px solid var(--border)}.footer a{margin:0 var(--sp-2)}@media (max-width: 900px){.shell{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.sidebar{position:static;width:auto;height:auto;flex-direction:row;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--border)}.shell-main{grid-column:1;grid-row:2}.footer{grid-column:1;grid-row:3}.side-brand{padding:0 var(--sp-3) 0 var(--sp-1);flex:none}.side-link{flex:none}.side-foot{margin-top:0;margin-left:auto;padding-top:0;padding-left:var(--sp-2);border-top:0;border-left:1px solid var(--divider);flex:none}}.login-shell{min-height:100vh;display:flex;flex-direction:column}.login-center{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--sp-6) var(--sp-4)}.login-card{width:100%;max-width:380px}.login-card h1{font-size:var(--fs-h1)}.login-sub{color:var(--text-4);font-size:var(--fs-body);margin:var(--sp-1) 0 var(--sp-4)}.login-form{display:flex;flex-direction:column;gap:var(--sp-3)}.form-grid{display:grid;gap:var(--sp-3);max-width:560px}.budget-targets{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.form-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.step-row{display:flex;gap:var(--sp-1)}.step-row>.field{flex:1;width:auto}.history{border-top:1px solid var(--divider);padding:var(--sp-2) var(--sp-4) var(--sp-3)}.history-row{display:block;font-size:var(--fs-sm);color:var(--text-4);padding:2px 0}.holiday-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;font-size:var(--fs-body)}.holiday-day{width:110px;color:var(--text-2);font-variant-numeric:tabular-nums;font-family:var(--font-num)}.rule-group-label{font-size:var(--fs-meta);letter-spacing:.08em;color:var(--text-4);margin:var(--sp-2) 0}.kpi-grid{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-4)}.kpi-label{font-size:var(--fs-meta);font-weight:500;color:var(--text-3)}.kpi-value{margin-top:6px;font-size:var(--fs-kpi);font-weight:600;letter-spacing:-.01em;color:var(--text);font-family:var(--font-num);font-variant-numeric:tabular-nums}.kpi-sub{margin-top:4px;font-size:var(--fs-sm);color:var(--text-3)}.tool-grid{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.tool-card{display:block;color:var(--text)}.tool-card h3{color:var(--text)}.tool-desc{margin-top:6px;line-height:1.6}.tool-open{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--text-3)}.tool-card:hover .tool-open{color:var(--text)}.page-desc{margin-bottom:var(--sp-4)}.chart .recharts-cartesian-axis-tick-value{font-size:var(--fs-meta);fill:var(--text-3)}.chart .recharts-cartesian-grid line{stroke:var(--divider)}.chart .recharts-legend-item-text{font-size:var(--fs-sm);color:var(--text-2)}.chart .recharts-default-tooltip{background:var(--surface-2)!important;border:1px solid var(--border)!important;border-radius:var(--r-input);font-size:var(--fs-sm)}.chart .recharts-default-tooltip .recharts-tooltip-item{color:var(--text-2)!important}.cal-toolbar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}.cal-nav{display:flex;align-items:center;gap:var(--sp-2)}.cal-period{font-size:var(--fs-lg);font-weight:600;min-width:118px;text-align:center;font-variant-numeric:tabular-nums}.cal-legend{display:flex;flex-wrap:wrap;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-3)}.cal-legend>span{display:inline-flex;align-items:center;gap:var(--sp-1)}.cal-swatch{width:10px;height:10px;border-radius:var(--r-sm);flex:none}.cal-swatch.cat-work{background:var(--cat-work)}.cal-swatch.cat-family{background:var(--cat-family)}.cal-swatch.cat-health{background:var(--cat-health)}.cal-swatch.cat-study{background:var(--cat-study)}.cal-swatch.cat-social{background:var(--cat-social)}.cal-swatch.cat-rest{background:var(--cat-rest)}.cal-grid,.cal-heat{display:grid;list-style:none;margin:0;padding:0}.cal-grid{grid-template-columns:repeat(7,1fr);gap:var(--sp-1)}.cal-grid-wrap{overflow-x:visible}@media (max-width: 640px){.cal-grid-wrap{overflow-x:auto}.cal-grid{grid-template-columns:repeat(7,minmax(80px,1fr))}}.cal-head{text-align:center;font-size:var(--fs-meta);color:var(--text-3);padding-bottom:var(--sp-1)}.cal-cell{display:flex;flex-direction:column;gap:2px;align-items:stretch;min-height:72px;padding:var(--sp-1);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:inherit;font:inherit;text-align:left;cursor:pointer;overflow:hidden;transition:border-color .12s}.cal-cell:hover{border-color:var(--border-2)}.cal-cell:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.cal-cell[aria-current=true]{border-color:var(--border-2)}.cal-cell.is-today .cal-daynum{color:var(--text);font-weight:700}.cal-cell.is-neutral{opacity:.42}.cal-daynum{font-size:var(--fs-sm);font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums}.cal-cell.st-weekend{background:var(--page)}.cal-cell.st-holiday{background:var(--ok-soft)}.cal-cell.st-makeup_workday{background:var(--warn-soft)}.cal-cell.st-unrecorded{background:repeating-linear-gradient(45deg,var(--surface-2) 0 4px,var(--surface) 4px 8px)}.cal-event{display:block;width:100%;padding:1px var(--sp-1);border:0;border-radius:var(--r-sm);font-size:var(--fs-meta);font-weight:600;text-align:left;color:var(--ink-on-cat);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.cal-event.cat-work{background:var(--cat-work)}.cal-event.cat-family{background:var(--cat-family)}.cal-event.cat-health{background:var(--cat-health)}.cal-event.cat-study{background:var(--cat-study)}.cal-event.cat-social{background:var(--cat-social)}.cal-event.cat-rest{background:var(--cat-rest)}.cal-mark{font-size:var(--fs-meta);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-mark:before{content:"◦";margin-right:.3em}.cal-mark.is-done{text-decoration:line-through}.cal-mark.is-done:before{display:inline-block}.cal-mark.is-skipped:before{content:"⊘"}.cal-mark.is-overdue{color:var(--danger)}.cal-inv{font-size:var(--fs-meta);color:var(--text-4);white-space:nowrap}.cal-inv:before{content:"票 ×"}.cal-more{font-size:var(--fs-meta);color:var(--text-4);white-space:nowrap;cursor:help}.cal-heat-wrap{overflow-x:auto}.cal-heat{display:flex;flex-direction:column;gap:2px;min-width:340px}.cal-heat-row{display:flex;align-items:center;gap:var(--sp-2)}.cal-heat-month{width:34px;flex:none;text-align:right;font-size:var(--fs-meta);color:var(--text-3)}.cal-heat-cells{display:flex;gap:2px}.cal-heat-cell{width:10px;height:10px;border-radius:2px;background:repeating-linear-gradient(45deg,var(--border-2) 0 2px,var(--page) 2px 4px);flex:none}.cal-heat-cell.st-weekend{background:var(--cal-weekend)}.cal-heat-cell.st-holiday{background:var(--ok)}.cal-heat-cell.st-makeup_workday{background:var(--warn)}.cal-heat-cell.st-unrecorded{background:var(--surface-3)}.cal-panel{margin-top:var(--sp-4)}.cal-panel-date{font-size:var(--fs-lg);font-weight:600}.cal-panel-sub{font-size:var(--fs-sm);color:var(--text-4);margin-bottom:var(--sp-3)}.cal-panel-group{margin-top:var(--sp-4)}.cal-panel-group-label{font-size:var(--fs-meta);letter-spacing:.08em;color:var(--text-4);margin-bottom:var(--sp-2)}.cal-event-row{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--row-h);border-top:1px solid var(--divider)}.cal-event-row .item-name{flex:1}.cal-system-row{font-size:var(--fs-body);color:var(--text-2);padding:var(--sp-1) 0}.cal-system-row .muted{color:var(--text-4)}.study-card-total{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);margin-bottom:var(--sp-3)}.study-card-total .meter{flex:1}.study-subject-row{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-body)}.study-subject-row .item-name{flex:none;min-width:72px}.study-subject-row .meter{flex:1}.study-subject-meta{flex:none;min-width:76px;text-align:right}.chapter-row .item-name{flex:1;min-width:0}.chapter-row .item-meta{flex:none}a.chapter-row:hover .item-name{text-decoration:underline}.chapter-row-static{cursor:default}.chapter-row-static .item-name{color:var(--text-3)}.study-archived{margin-top:var(--sp-4)}.study-archived>summary{cursor:pointer;color:var(--text-3);font-size:var(--fs-sm)}.study-archived[open]>summary{margin-bottom:var(--sp-3)}.study-subjects{margin-top:var(--sp-2)}.study-subjects>summary{cursor:pointer;color:var(--text-3);font-size:var(--fs-sm)}.study-subjects[open]>summary{margin-bottom:var(--sp-2)}.study-subject-adder{margin-top:var(--sp-1)}.study-subject-adder .field{flex:1}.study-adder-trigger{align-self:flex-start}.study-node-row{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-table);padding:var(--sp-1) 0}.study-node-row .item-name{flex:1}.study-node-hours{width:72px;flex:none}.study-node-minutes{width:196px;flex:none;display:flex;align-items:center;gap:var(--sp-1)}.study-node-minutes .field{flex:1;min-width:0}.study-node-round{width:96px;flex:none}.study-preview{max-height:260px;overflow-y:auto}.study-preview tr.is-dim{opacity:.55}.study-paste-note{white-space:normal;display:block;line-height:1.5}.study-log-row{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-table);margin-bottom:var(--sp-2)}.study-log-row .item-name{flex:1}.cal-study{font-size:var(--fs-meta);color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-study:before{content:"学 "}.study-tree{display:flex;flex-direction:column;gap:var(--sp-1)}.study-tree-node{display:flex;align-items:center;gap:var(--sp-2)}.study-tree-node .item-name{flex:1}.study-tree-node a.item-name:hover,.study-tree-node a.item-name:focus-visible{text-decoration:underline}.study-tree-node a.item-name:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.study-tree-node.is-depth-1{padding-left:0}.study-tree-node.is-depth-2{padding-left:var(--sp-4)}.study-tree-node.is-depth-3{padding-left:var(--sp-6)}.study-tree-node.is-depth-4,.study-tree-node.is-depth-5{padding-left:var(--sp-8)}.study-tree-node.is-depth-1 .item-name{font-weight:600}.study-tree-node.is-depth-5 .item-name{font-size:var(--fs-sm)}.study-tree-toggle{width:20px;flex:none;color:var(--text-3)}.study-import-subject,.study-import-result{margin-top:var(--sp-3)}.study-import-result .study-import-subject{padding-top:var(--sp-2);border-top:1px solid var(--divider)}.study-node-results{display:flex;flex-direction:column;max-height:220px;overflow-y:auto;border:1px solid var(--border-2);border-radius:var(--r-input);background:var(--surface-2)}.study-node-result{text-align:left;padding:6px 10px;background:none;border:0;color:var(--text-2);font:inherit;font-size:var(--fs-sm);cursor:pointer;white-space:normal}.study-node-result:hover{background:var(--surface-3);color:var(--text)}.upload-failed{margin-bottom:var(--sp-3);padding:var(--sp-3);border:1px solid var(--danger);border-radius:var(--r-card);background:var(--danger-soft)}.upload-list{display:flex;flex-direction:column;gap:var(--sp-2)}.upload-line{display:flex;gap:var(--sp-2);align-items:baseline;flex-wrap:wrap}.upload-line code{font-family:var(--font-num);font-size:var(--fs-meta)}.table .company-link{color:var(--text);text-decoration:none}.table .company-link:hover{color:var(--text);text-decoration:underline}.quiz-meta{font-size:var(--fs-sm);color:var(--text-4);margin-bottom:var(--sp-2)}.quiz-stem{font-size:var(--fs-body);line-height:1.7;color:var(--text);margin-bottom:var(--sp-4)}.quiz-options{display:flex;flex-direction:column;gap:var(--sp-2)}.quiz-option{display:flex;align-items:flex-start;gap:var(--sp-2);width:100%;text-align:left;padding:var(--sp-3);border-radius:var(--r-input);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-size:var(--fs-body);line-height:1.6;white-space:normal;transition:background-color .12s,border-color .12s,color .12s}.quiz-option:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-2)}.quiz-option:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.quiz-option:disabled{cursor:default}.quiz-option.is-picked{background:var(--surface-3);border-color:var(--border-2);color:var(--text)}.quiz-option.is-correct{background:var(--ok-soft);border-color:var(--ok);color:var(--text)}.quiz-option.is-wrong{background:var(--danger-soft);border-color:var(--danger);color:var(--text)}.quiz-key{flex:none;font-family:var(--font-num);font-weight:600;color:var(--text-3)}.quiz-answer{font-size:var(--fs-table);color:var(--text-2);margin-top:var(--sp-4)}.quiz-answer .is-ok{color:var(--ok);font-weight:600}.quiz-answer .is-bad{color:var(--danger);font-weight:600}.quiz-explain{margin-top:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--surface-2);border-radius:var(--r-card);font-size:var(--fs-table);line-height:1.75;color:var(--text-2);white-space:pre-wrap}.quiz-explain-lead{margin-bottom:var(--sp-4)}.quiz-explain-label{display:block;margin-bottom:var(--sp-1);font-weight:600;color:var(--text)}.quiz-context{margin-bottom:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-card);font-size:var(--fs-sm);line-height:1.75;color:var(--text-2);white-space:pre-wrap}.quiz-context-folded{display:inline-flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-3);padding:2px 8px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-pill);color:var(--text-3);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap}.quiz-context-folded:hover{background:var(--surface-3);color:var(--text)}.quiz-context-folded:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.quiz-node{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-3);font-size:var(--fs-table);color:var(--text-2)}.node-select{width:auto;max-width:min(320px,100%)}.wrong-row{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--row-h);padding:var(--sp-1) var(--sp-4);border-top:1px solid var(--divider);font-size:var(--fs-table)}.wrong-row .item-name{flex:1}.wrong-no{flex:none;font-family:var(--font-num);color:var(--text-2)}.wrong-answer{flex:none;font-family:var(--font-num);color:var(--text-3)}.wrong-stem{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wrong-row:first-child{border-top:0}.wrong-row-static{color:var(--text-3);cursor:default}.tree-weakness{flex:none;min-width:84px;text-align:right;font-size:var(--fs-meta);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-4)}.tree-weakness.is-weak-ok{color:var(--ok)}.tree-weakness.is-weak-warn{color:var(--warn)}.tree-weakness.is-weak-danger{color:var(--danger)}@media (max-width: 640px){.tree-weakness{display:none}.study-tree-node{flex-wrap:wrap;row-gap:var(--sp-1)}.study-tree-node .item-name{flex:1 1 50%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.cal-tl-scroll{overflow-x:auto}.cal-tl{min-width:720px}.cal-tl-row{display:flex;align-items:center;gap:var(--sp-2)}.cal-tl-gutter{width:122px;flex:none}.cal-tl-axis,.cal-tl-track{flex:1;position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr}.cal-tl-axis{border-bottom:1px solid var(--border);padding-bottom:var(--sp-1)}.cal-tl-slot{text-align:center;font-size:var(--fs-meta);color:var(--text-3);font-variant-numeric:tabular-nums}.cal-tl-slot.is-first{color:var(--text-2);font-weight:600}.cal-tl-slot.is-out{opacity:.42}.cal-tl-slot.st-weekend{background:var(--page)}.cal-tl-slot.st-holiday{background:var(--ok-soft)}.cal-tl-slot.st-makeup_workday{background:var(--warn-soft)}.cal-tl-slot.st-unrecorded{background:repeating-linear-gradient(45deg,var(--surface-2) 0 4px,var(--surface) 4px 8px)}.cal-tl-body{display:flex;gap:var(--sp-2)}.cal-tl-labelcol{width:122px;flex:none}.cal-tl-trackcol{flex:1;position:relative}.cal-tl-grouplabel,.cal-tl-groupgap{height:18px;margin:var(--sp-2) 0 var(--sp-1)}.cal-tl-grouplabel{font-size:var(--fs-meta);letter-spacing:.08em;color:var(--text-4);line-height:18px}.cal-tl-lanelabel,.cal-tl-track{height:18px;margin:var(--sp-1) 0}.cal-tl-lanelabel{font-size:var(--fs-sm);color:var(--text-2);line-height:18px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-tl-track{background:var(--surface-2);border-radius:var(--r-sm)}.cal-tl-lead{position:absolute;top:4px;bottom:4px;background:var(--tl-lead);border-radius:var(--r-sm)}.cal-tl-lead.is-clipped{border-top-left-radius:0;border-bottom-left-radius:0;background:linear-gradient(90deg,transparent,var(--tl-lead) 40%)}.cal-tl-due{position:absolute;top:0;bottom:0;width:14px;padding:0;transform:translate(-50%);background:none;border:0;cursor:pointer;color:var(--text)}.cal-tl-due.st-done{color:var(--ok)}.cal-tl-due.st-skipped{color:var(--text-4)}.cal-tl-due.is-overdue{color:var(--danger)}.cal-tl-due:before{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:2px;margin-left:-1px;border-radius:1px;background:currentColor}.cal-tl-due:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.cal-tl-done{position:absolute;top:50%;width:7px;height:7px;margin-top:-3.5px;transform:translate(-50%);border-radius:50%;background:var(--ok)}.cal-tl-dot{position:absolute;top:0;bottom:0;width:16px;padding:0;transform:translate(-50%);background:none;border:0;cursor:pointer;color:var(--cat-work)}.cal-tl-dot.cat-work{color:var(--cat-work)}.cal-tl-dot.cat-family{color:var(--cat-family)}.cal-tl-dot.cat-health{color:var(--cat-health)}.cal-tl-dot.cat-study{color:var(--cat-study)}.cal-tl-dot.cat-social{color:var(--cat-social)}.cal-tl-dot.cat-rest{color:var(--cat-rest)}.cal-tl-dot:before{content:"";position:absolute;left:50%;top:4px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:currentColor}.cal-tl-dot:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.cal-tl-today{position:absolute;top:0;bottom:0;width:1px;border-left:1px dashed var(--text-3)}.cal-tl-legend{display:flex;flex-wrap:wrap;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-3);margin-top:var(--sp-3)}.cal-tl-legend>span{display:inline-flex;align-items:center;gap:var(--sp-1)}.cal-tl-swatch{width:10px;height:10px;border-radius:var(--r-sm);flex:none}.cal-tl-swatch.is-due{width:2px;background:var(--text)}.cal-tl-swatch.is-lead{background:var(--tl-lead)}.cal-tl-swatch.is-done{background:var(--ok)}.cal-tl-swatch.is-overdue{background:var(--danger)}.cal-tl-empty{margin-top:var(--sp-4)}.cal-tl-hidden{font-size:var(--fs-sm);color:var(--text-4);margin-top:var(--sp-3)}.rule-tl-toggle{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-3);cursor:pointer;white-space:nowrap}.rule-star{background:none;border:0;padding:0 var(--sp-1) 0 0;cursor:pointer;font-size:var(--fs-body);line-height:1;color:var(--text-3)}.rule-star[aria-pressed=true]{color:var(--text)}.rule-star:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.rule-star:disabled{opacity:.5;cursor:default}.item-important{color:var(--text);font-size:var(--fs-sm);line-height:1;margin-right:var(--sp-1)}
