@import"https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700;800&display=swap";.busy-overlay[data-v-ae57682d]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;background:#1d211e52;cursor:progress}.busy-card[data-v-ae57682d]{display:flex;align-items:center;gap:12px;padding:16px 22px;background:var(--surface, #fff);border:1px solid var(--hairline, #e7e3da);border-radius:var(--radius-lg, 18px);box-shadow:var(--shadow);font-weight:600;font-size:14px;color:var(--ink, #1d211e)}.busy-spinner[data-v-ae57682d]{width:20px;height:20px;flex:none;border-radius:50%;border:2.5px solid color-mix(in srgb,var(--brand, #1f7a4d) 25%,transparent);border-top-color:var(--brand, #1f7a4d);animation:busy-spin-ae57682d .7s linear infinite}@keyframes busy-spin-ae57682d{to{transform:rotate(360deg)}}.busy-enter-active[data-v-ae57682d]{transition:opacity .12s ease .08s}.busy-leave-active[data-v-ae57682d]{transition:opacity .12s ease}.busy-enter-from[data-v-ae57682d],.busy-leave-to[data-v-ae57682d]{opacity:0}@media(prefers-reduced-motion:reduce){.busy-spinner[data-v-ae57682d]{animation-duration:1.4s}}.app-icon{width:1em;height:1em;flex:none;vertical-align:-.125em}.app-icon--spin{animation:app-icon-spin .9s linear infinite}@keyframes app-icon-spin{to{transform:rotate(360deg)}}.tip[data-v-634a37ee]{position:fixed;z-index:200;max-width:260px;padding:5px 9px;border-radius:var(--radius-sm, 9px);background:var(--ink, #1d211e);color:#fff;font-size:12px;font-weight:600;line-height:1.35;box-shadow:0 6px 20px #00000038;pointer-events:none;white-space:pre-line;word-break:break-word;opacity:0;transition:opacity .12s ease}.tip--ready[data-v-634a37ee]{opacity:1}.tip-arrow[data-v-634a37ee]{position:absolute;width:8px;height:8px;background:inherit;transform:translate(-50%) rotate(45deg)}.tip--top .tip-arrow[data-v-634a37ee]{bottom:-3px}.tip--bottom .tip-arrow[data-v-634a37ee]{top:-3px}.confirm-backdrop[data-v-b28ae2a7]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px;background:#14161473}.confirm-box[data-v-b28ae2a7]{width:100%;max-width:440px;background:var(--surface, #fff);border-radius:var(--radius, 12px);box-shadow:0 16px 48px #0000003d;padding:22px 22px 18px}.confirm-box--wide[data-v-b28ae2a7]{max-width:680px}.confirm-title[data-v-b28ae2a7]{margin:0 0 8px;font-size:17px;font-weight:700}.confirm-msg[data-v-b28ae2a7]{margin:0 0 18px;font-size:14px;line-height:1.5;color:var(--ink, #2b2f2b);white-space:pre-line}.confirm-list[data-v-b28ae2a7]{margin:0 0 18px;padding:10px 12px 10px 28px;max-height:40vh;overflow:auto;font-size:13px;line-height:1.5;color:var(--ink, #2b2f2b);background:color-mix(in srgb,var(--hairline, #e7e3da) 30%,transparent);border-radius:var(--radius-sm, 9px)}.confirm-list li+li[data-v-b28ae2a7]{margin-top:6px}.confirm-actions[data-v-b28ae2a7]{display:flex;justify-content:flex-end;gap:10px}.confirm-enter-active[data-v-b28ae2a7],.confirm-leave-active[data-v-b28ae2a7]{transition:opacity .15s ease}.confirm-enter-from[data-v-b28ae2a7],.confirm-leave-to[data-v-b28ae2a7]{opacity:0}:root,[data-theme=herb]{--brand: #1f7a4d;--brand-ink: #155f3b;--paper: #fbfaf7;--surface: #ffffff;--hairline: #e7e3da;--ink: #1d211e;--muted: #6b716c}[data-theme=clay]{--brand: #bc5a33;--brand-ink: #9a4525;--paper: #fbf6f1;--surface: #ffffff;--hairline: #ece2d8;--ink: #241d18;--muted: #7a6e64}[data-theme=slate]{--brand: #2d5fa6;--brand-ink: #244d86;--paper: #f5f7fb;--surface: #ffffff;--hairline: #dde3ec;--ink: #1a1f26;--muted: #69707b}:root{--committed: #97560f;--open: #15803d;--future: #3f5ca8;--danger: #b0281f;--accent-detox: #8a4fbf;--danger-soft: #fdf0ef;--ok-soft: #eef7f0;--radius: 14px;--radius-sm: 9px;--radius-lg: 18px;--shadow: 0 1px 2px rgba(29, 33, 30, .04), 0 8px 24px rgba(29, 33, 30, .06);--font-ui: "Noto Sans", system-ui, -apple-system, sans-serif;--font-head: "Noto Sans", var(--font-ui);--fs-base: 15px;--field-pad: 11px 13px;--btn-pad: 12px 16px;--row-pad: 12px 14px}[data-density=compact]{--fs-base: 13.5px;--field-pad: 8px 11px;--btn-pad: 9px 14px;--row-pad: 7px 10px}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}:root{color-scheme:light}body{font-family:var(--font-ui);font-size:var(--fs-base, 15px);color:var(--ink, #1d211e);background:var(--paper, #fbfaf7);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1}:root{--scroll-thumb: color-mix(in srgb, var(--ink, #1d211e) 22%, transparent);--scroll-thumb-hover: color-mix(in srgb, var(--ink, #1d211e) 38%, transparent)}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}*::-webkit-scrollbar{width:11px;height:11px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:999px;border:3px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}h1,h2,h3{font-family:var(--font-head);font-weight:800;letter-spacing:-.01em;margin:0}a{color:var(--brand-ink, #155f3b);text-decoration:none}a:hover{text-decoration:underline}.auth-shell{min-height:100%;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:408px;background:var(--surface, #fff);border:1px solid var(--hairline, #e7e3da);border-radius:var(--radius-lg, 18px);box-shadow:var(--shadow);padding:32px}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:24px}.auth-brand .mark{width:32px;height:32px;border-radius:var(--radius-sm, 9px);background:var(--brand, #1f7a4d);color:#fff;display:grid;place-items:center;font-family:var(--font-head);font-weight:800}.auth-brand .name{font-family:var(--font-head);font-weight:800;font-size:18px}.auth-brand .name small{display:block;font-family:var(--font-ui);font-weight:500;font-size:12px;color:var(--muted, #6b716c);letter-spacing:.02em}.auth-card h1{font-size:22px;margin-bottom:6px}.auth-sub{color:var(--muted, #6b716c);font-size:14px;margin:0 0 24px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.field input{width:100%;padding:var(--field-pad, 11px 13px);font:inherit;color:var(--ink, #1d211e);background:var(--surface, #fff);border:1px solid var(--hairline, #e7e3da);border-radius:var(--radius-sm, 9px);transition:border-color .12s ease,box-shadow .12s ease}.field input:focus{outline:none;border-color:var(--brand, #1f7a4d);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand, #1f7a4d) 18%,transparent)}.field input:disabled{background:color-mix(in srgb,var(--hairline, #e7e3da) 40%,var(--surface, #fff));color:var(--muted, #6b716c)}.row-between{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.row-between label{margin-bottom:0}.link-sm{font-size:13px;font-weight:600}.btn{width:100%;padding:var(--btn-pad, 12px 16px);font:inherit;font-weight:700;border-radius:var(--radius-sm, 9px);border:1px solid transparent;cursor:pointer;transition:background .12s ease,border-color .12s ease,opacity .12s ease}.btn-primary{background:var(--brand, #1f7a4d);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-ink, #155f3b)}.btn-ghost{background:var(--surface, #fff);color:var(--ink, #1d211e);border-color:var(--hairline, #e7e3da);display:flex;align-items:center;justify-content:center;gap:10px}.btn-ghost:hover:not(:disabled){border-color:color-mix(in srgb,var(--ink, #1d211e) 18%,var(--hairline, #e7e3da));background:color-mix(in srgb,var(--brand, #1f7a4d) 4%,var(--surface, #fff))}.btn:disabled{opacity:.6;cursor:not-allowed}.divider{display:flex;align-items:center;gap:12px;color:var(--muted, #6b716c);font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin:20px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--hairline, #e7e3da)}.alert{font-size:13.5px;line-height:1.45;padding:11px 13px;border-radius:var(--radius-sm, 9px);margin-bottom:18px}.alert-error{background:var(--danger-soft, #fdf0ef);color:var(--danger, #b0281f);border:1px solid color-mix(in srgb,var(--danger, #b0281f) 25%,transparent)}.alert-ok{background:var(--ok-soft, #eef7f0);color:var(--brand-ink, #155f3b);border:1px solid color-mix(in srgb,var(--open, #15803d) 25%,transparent)}.auth-foot{margin-top:22px;font-size:13px;color:var(--muted, #6b716c);text-align:center}.gicon{width:18px;height:18px;display:block}.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid currentColor;background:var(--surface, #fff)}.badge--committed{color:var(--committed, #97560f)}.badge--open{color:var(--open, #15803d)}.badge--future{color:var(--future, #3f5ca8)}.card{background:var(--surface, #fff);border:1px solid var(--hairline, #e7e3da);border-radius:var(--radius, 14px);box-shadow:var(--shadow)}.card-head{padding:16px 18px;border-bottom:1px solid var(--hairline, #e7e3da)}.card-head h2{font-size:16px;margin:0}.card-head p{margin:4px 0 0;font-size:13px;color:var(--muted, #6b716c)}.card-body{padding:18px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--hairline, #e7e3da);margin-bottom:22px}.tab{border:0;background:transparent;font:inherit;font-weight:600;font-size:14px;color:var(--muted, #6b716c);padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--ink, #1d211e)}.tab--on{color:var(--brand-ink, #155f3b);border-bottom-color:var(--brand, #1f7a4d)}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px}.toolbar .spacer{margin-left:auto}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted, #6b716c);padding:var(--row-pad, 12px 14px);border-bottom:1px solid var(--hairline, #e7e3da);white-space:nowrap;position:sticky;top:0;z-index:2;background:var(--surface, #fff);box-shadow:inset 0 -1px 0 var(--hairline, #e7e3da)}.data-table td{padding:var(--row-pad, 12px 14px);border-bottom:1px solid color-mix(in srgb,var(--hairline, #e7e3da) 60%,transparent);vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:color-mix(in srgb,var(--brand, #1f7a4d) 3%,transparent)}.row-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:6px}.btn-sm{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;padding:7px 13px;font-size:13px}.btn-danger{background:var(--surface, #fff);color:var(--danger, #b0281f);border-color:color-mix(in srgb,var(--danger, #b0281f) 35%,var(--hairline, #e7e3da))}.btn-danger:hover:not(:disabled){background:var(--danger-soft, #fdf0ef)}.input-inline{font:inherit;color:var(--ink, #1d211e);background:var(--surface, #fff);border:1px solid var(--hairline, #e7e3da);border-radius:var(--radius-sm, 9px);padding:7px 10px}.input-inline:focus{outline:none;border-color:var(--brand, #1f7a4d);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand, #1f7a4d) 18%,transparent)}select.input-inline{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%236b716c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px}.input-inline:disabled{background:color-mix(in srgb,var(--hairline, #e7e3da) 40%,var(--surface, #fff));color:var(--muted, #6b716c)}.input-inline[type=date],.input-inline[type=time],.input-inline[type=datetime-local]{accent-color:var(--brand, #1f7a4d);min-height:38px;cursor:text}.input-inline[type=date]::-webkit-calendar-picker-indicator,.input-inline[type=time]::-webkit-calendar-picker-indicator,.input-inline[type=datetime-local]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.5;padding:3px;margin-left:4px;border-radius:var(--radius-sm, 9px);transition:opacity .12s ease,background .12s ease}.input-inline[type=date]:hover::-webkit-calendar-picker-indicator,.input-inline[type=time]:hover::-webkit-calendar-picker-indicator,.input-inline[type=datetime-local]:hover::-webkit-calendar-picker-indicator{opacity:1;background:color-mix(in srgb,var(--brand, #1f7a4d) 14%,transparent)}.input-inline[type=datetime-local]:invalid,.input-inline[type=date]:invalid{color:var(--muted, #6b716c)}.switch{position:relative;display:inline-block;width:40px;height:23px;flex:none}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink, #1d211e) 18%,var(--surface, #fff));border-radius:999px;transition:background .14s ease}.switch .track:before{content:"";position:absolute;height:17px;width:17px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .14s ease;box-shadow:0 1px 2px #0003}.switch input:checked+.track{background:var(--brand, #1f7a4d)}.switch input:checked+.track:before{transform:translate(17px)}.switch input:disabled+.track{opacity:.5}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1d211e6b;display:grid;place-items:center;padding:24px}.modal{width:100%;max-width:560px;max-height:calc(100vh - 48px);overflow:auto;background:var(--surface, #fff);border:1px solid var(--hairline, #e7e3da);border-radius:var(--radius-lg, 18px);box-shadow:var(--shadow)}.modal--wide{max-width:860px}.modal--xwide{max-width:min(1560px,96vw)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--hairline, #e7e3da);position:sticky;top:0;background:var(--surface, #fff)}.modal-head h2{font-size:17px;margin:0}.modal-body{padding:20px}.modal-close{border:0;background:transparent;font-size:22px;line-height:1;color:var(--muted, #6b716c);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm, 9px)}.modal-close:hover{color:var(--ink, #1d211e);background:color-mix(in srgb,var(--ink, #1d211e) 6%,transparent)}.toast-host{position:fixed;right:18px;top:18px;z-index:100;display:flex;flex-direction:column;gap:10px;align-items:flex-end;max-width:min(400px,calc(100vw - 36px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;width:100%;padding:12px 12px 12px 14px;border-radius:var(--radius-sm, 9px);border:1px solid var(--hairline, #e7e3da);background:var(--surface, #fff);box-shadow:var(--shadow);font-size:13.5px;line-height:1.45}.toast--error{background:var(--danger-soft, #fdf0ef);border-color:color-mix(in srgb,var(--danger, #b0281f) 30%,transparent);color:var(--danger, #b0281f)}.toast--success{background:var(--ok-soft, #eef7f0);border-color:color-mix(in srgb,var(--open, #15803d) 30%,transparent);color:var(--brand-ink, #155f3b)}.toast--info{background:color-mix(in srgb,var(--brand, #1f7a4d) 7%,var(--surface, #fff));border-color:color-mix(in srgb,var(--brand, #1f7a4d) 28%,transparent);color:var(--brand-ink, #155f3b)}.toast-glyph{font-weight:700;line-height:1.45}.toast-msg{flex:1;font-weight:500}.toast-x{border:0;background:transparent;color:inherit;opacity:.6;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.toast-x:hover{opacity:1}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(24px)}.toast-enter-active,.toast-leave-active{transition:opacity .22s ease,transform .22s ease}.toast-leave-active{position:absolute;right:0}.toast-move{transition:transform .22s ease}.muted{color:var(--muted, #6b716c)}.spin{color:var(--muted, #6b716c);font-size:14px;padding:20px 0}
