:root{color-scheme:light dark;--font-family-body: Figtree, Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Segoe UI", Roboto, "Noto Sans KR", Helvetica, Arial, sans-serif;--font-family-heading: var(--font-family-body);--font-family-code: ui-monospace, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-size-xs: .625rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.8125rem;--font-size-4xl: 2.1875rem;--font-size-5xl: 2.625rem;--text-heading-1-size: 1.5rem;--text-heading-1-weight: 600;--text-heading-1-leading: 1.3333;--text-heading-2-size: 1.25rem;--text-heading-2-weight: 600;--text-heading-2-leading: 1.4;--text-heading-3-size: 1.0625rem;--text-heading-3-weight: 700;--text-heading-3-leading: 1.4118;--text-heading-4-size: .875rem;--text-heading-4-weight: 700;--text-heading-4-leading: 1.4286;--text-heading-5-size: .75rem;--text-heading-5-weight: 600;--text-heading-5-leading: 1.6667;--text-body-size: .875rem;--text-body-weight: 400;--text-body-leading: 1.4286;--text-large-size: 1.0625rem;--text-large-weight: 600;--text-large-leading: 1.4118;--text-label-size: .875rem;--text-label-weight: 500;--text-label-leading: 1.4286;--text-supporting-size: .75rem;--text-supporting-weight: 400;--text-supporting-leading: 1.6667;--text-display-2-size: 2.1875rem;--text-display-2-weight: 400;--text-display-2-leading: 1.2571;--duration-fast: 125ms;--duration-medium: .3s;--duration-slow: .7s;--color-background-surface: light-dark(#ffffff, #262626);--color-background-body: light-dark(#f1f1f1, #1b1b1b);--color-background-card: light-dark(#ffffff, #1b1b1b);--color-background-popover: light-dark(#ffffff, #1b1b1b);--color-background-muted: light-dark(#f1f1f1, #1b1b1b);--color-accent: light-dark(#262626, #ebebeb);--color-accent-muted: light-dark(#f1f1f1, #262626);--color-neutral: light-dark(#0000000f, #ffffff1a);--color-overlay: light-dark(#00000080, #000000cc);--color-overlay-hover: light-dark(#0000000d, #ffffff0d);--color-overlay-pressed: light-dark(#0000001a, #ffffff1a);--color-text-primary: light-dark(#171717, #fafafa);--color-text-secondary: light-dark(#525252, #a3a3a3);--color-text-disabled: light-dark(#a3a3a3, #525252);--color-text-accent: light-dark(#262626, #ebebeb);--color-on-dark: #ffffff;--color-on-light: #171717;--color-on-accent: light-dark(#ffffff, #171717);--color-on-success: light-dark(#ffffff, #171717);--color-on-error: light-dark(#ffffff, #171717);--color-on-warning: #171717;--color-icon-primary: light-dark(#171717, #fafafa);--color-icon-secondary: light-dark(#737373, #a3a3a3);--color-icon-disabled: light-dark(#a3a3a3, #525252);--color-icon-accent: light-dark(#262626, #ebebeb);--color-success: light-dark(#007004, #9fe59b);--color-error: light-dark(#a50c25, #ffc6c1);--color-warning: light-dark(#745b00, #fdcf4f);--color-success-muted: light-dark(#c5e5c0, #84c9803d);--color-error-muted: light-dark(#facecb, #ff9e973d);--color-warning-muted: light-dark(#f8da9d, #deb4333d);--color-border: light-dark(#00000014, #ffffff1a);--color-border-emphasized: light-dark(#d4d4d4, #525252);--color-skeleton: light-dark(#ebebeb, #525252);--color-shadow: light-dark(#0000001a, #0000004d);--color-background-red: light-dark(#facecb, #ff9e973d);--color-border-red: light-dark(#e6bab8, #ff6f6c);--color-icon-red: light-dark(#89001a, #ff9e97);--color-text-red: light-dark(#89001a, #ffc6c1);--color-background-orange: light-dark(#fad0b5, #ffa2583d);--color-border-orange: light-dark(#e6bda2, #e2883e);--color-icon-orange: light-dark(#6e3500, #ffa258);--color-text-orange: light-dark(#6e3500, #ffc9a2);--color-background-yellow: light-dark(#f8da9d, #deb4333d);--color-border-yellow: light-dark(#e4c279, #c0990e);--color-icon-yellow: light-dark(#584400, #deb433);--color-text-yellow: light-dark(#584400, #fdcf4f);--color-background-green: light-dark(#c5e5c0, #84c9803d);--color-border-green: light-dark(#b2d1ac, #69ad67);--color-icon-green: light-dark(#0c5700, #84c980);--color-text-green: light-dark(#0c5700, #9fe59b);--color-background-teal: light-dark(#a5e3d6, #7ec6b83d);--color-border-teal: light-dark(#94d6c8, #63ab9d);--color-icon-teal: light-dark(#005348, #7ec6b8);--color-text-teal: light-dark(#005348, #99e2d3);--color-background-cyan: light-dark(#a3e0ef, #83c2d43d);--color-border-cyan: light-dark(#91d3e3, #67a7b8);--color-icon-cyan: light-dark(#00505f, #83c2d4);--color-text-cyan: light-dark(#00505f, #9edef0);--color-background-blue: light-dark(#c4ddfb, #9eb7ff3d);--color-border-blue: light-dark(#b1c9e7, #6d9cfe);--color-icon-blue: light-dark(#00458c, #9eb7ff);--color-text-blue: light-dark(#00458c, #c7d3ff);--color-background-purple: light-dark(#eccef3, #f297ff3d);--color-border-purple: light-dark(#d8bbdf, #dd74f0);--color-icon-purple: light-dark(#700084, #f297ff);--color-text-purple: light-dark(#700084, #fac1ff);--color-background-gray: light-dark(#e5e5e5, var(--color-neutral));--color-border-gray: light-dark(#d4d4d4, #262626);--color-icon-gray: light-dark(#525252, #a3a3a3);--color-text-gray: light-dark(#262626, #e5e5e5);--radius-none: 0px;--radius-inner: .375rem;--radius-element: .625rem;--radius-container: .75rem;--radius-page: 1.75rem;--radius-full: 9999px;--shadow-low: 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)), 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%));--shadow-med: 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 35%)), 0 4px 12px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 12%));--shadow-high: 0 4px 6px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), 0 12px 24px light-dark(oklch(0 0 0 / 15%), oklch(0 0 0 / 70%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 15%));--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem}.mode-light{color-scheme:light}.mode-dark{color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}html{font-family:var(--font-family-body);font-size:16px}body{background:var(--color-background-body);color:var(--color-text-primary);font-size:var(--text-body-size);line-height:var(--text-body-leading);-webkit-font-smoothing:antialiased}a{color:var(--color-text-accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:var(--text-heading-1-size);font-weight:var(--text-heading-1-weight);line-height:var(--text-heading-1-leading)}h2{font-size:var(--text-heading-2-size);font-weight:var(--text-heading-2-weight);line-height:var(--text-heading-2-leading)}h3{font-size:var(--text-heading-3-size);font-weight:var(--text-heading-3-weight);line-height:var(--text-heading-3-leading)}h4{font-size:var(--text-heading-4-size);font-weight:var(--text-heading-4-weight);line-height:var(--text-heading-4-leading)}code,.mono{font-family:var(--font-family-code);font-size:var(--text-supporting-size)}.muted{color:var(--color-text-secondary)}.supporting{font-size:var(--text-supporting-size);color:var(--color-text-secondary);line-height:var(--text-supporting-leading)}.shell{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:var(--color-background-surface);border-right:1px solid var(--color-border);padding:var(--spacing-4) var(--spacing-3);display:flex;flex-direction:column;gap:var(--spacing-1);position:sticky;top:0;height:100vh;overflow-y:auto}:root{--brand-ink: #252b2f;--brand-paper: #f6f7f5;--brand-dark: #202629;--brand-reverse: #eff1ef;--brand-quiet: #697378}.logo-h,.logo-v,.logo-sym{display:block;flex:none}.sidebar .brand-block{display:flex;flex-direction:column;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-2) var(--spacing-5);color:var(--color-text-primary)}.sidebar .brand-block .workspace{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);margin:0 calc(var(--spacing-2) * -1);border:1px solid var(--color-border);border-radius:var(--radius-element);font-size:var(--text-body-size);font-weight:600}.sidebar .brand-block .workspace .ws-mark{width:22px;height:22px;flex:none;border-radius:var(--radius-inner);background:var(--color-accent);color:var(--color-on-accent);display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:700}.sidebar .brand-block .workspace .supporting{display:block;font-weight:400;line-height:1.3}.sidebar .brand-block .env{font-size:var(--font-size-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}.sidebar .section-label{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-disabled);padding:var(--spacing-3) var(--spacing-2) var(--spacing-1)}.nav-item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-2);border-radius:var(--radius-inner);color:var(--color-text-secondary);font-weight:500;font-size:var(--text-body-size);cursor:pointer}.nav-item:hover{background:var(--color-overlay-hover);text-decoration:none}.nav-item.active{background:var(--color-accent-muted);color:var(--color-text-accent);font-weight:600}.nav-item .count{margin-left:auto;font-size:var(--font-size-xs);font-weight:600;background:var(--color-neutral);border-radius:var(--radius-full);padding:1px 7px;color:var(--color-text-secondary)}.nav-item.locked{color:var(--color-text-disabled);cursor:not-allowed}.nav-item.locked:after{content:"🔒";margin-left:auto;font-size:var(--font-size-xs)}.sidebar .footer-user{margin-top:auto;display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);border-top:1px solid var(--color-border);font-size:var(--text-supporting-size);color:var(--color-text-secondary)}.avatar{width:28px;height:28px;border-radius:var(--radius-full);background:var(--color-background-gray);color:var(--color-text-gray);display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:700;flex-shrink:0}.main{flex:1;min-width:0;padding:var(--spacing-6) var(--spacing-8)}.main-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.main-header .actions{display:flex;gap:var(--spacing-2);flex-shrink:0}.breadcrumb{font-size:var(--text-supporting-size);color:var(--color-text-secondary);margin-bottom:var(--spacing-1)}.breadcrumb b{color:var(--color-text-primary);font-weight:500}.topbar{background:var(--color-background-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.topbar-inner{max-width:1200px;margin:0 auto;padding:0 var(--spacing-6);display:flex;align-items:center;gap:var(--spacing-6);height:60px}.topbar .brand{display:flex;align-items:center;gap:var(--spacing-2);font-weight:700;font-size:var(--font-size-lg)}.topbar .brand .logo{width:28px;height:28px;border-radius:var(--radius-inner);background:var(--color-accent);color:var(--color-on-accent);display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm)}.gnb{display:flex;gap:var(--spacing-1);flex:1}.gnb a{padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-inner);color:var(--color-text-secondary);font-weight:500}.gnb a:hover{background:var(--color-overlay-hover);text-decoration:none}.gnb a.active{color:var(--color-text-accent);background:var(--color-accent-muted);font-weight:600}.topbar .util{display:flex;align-items:center;gap:var(--spacing-2)}.page{max-width:1200px;margin:0 auto;padding:var(--spacing-6)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-1);font-family:inherit;font-size:var(--text-body-size);font-weight:600;border-radius:var(--radius-element);border:1px solid transparent;padding:var(--spacing-2) var(--spacing-4);min-height:36px;cursor:pointer;transition:background var(--duration-fast);background:var(--color-accent);color:var(--color-on-accent);white-space:nowrap}.btn:hover{opacity:.9}.btn.secondary{background:var(--color-background-surface);color:var(--color-text-primary);border-color:var(--color-border-emphasized)}.btn.secondary:hover{background:var(--color-overlay-hover);opacity:1}.btn.ghost{background:transparent;color:var(--color-text-secondary)}.btn.ghost:hover{background:var(--color-overlay-hover)}.btn.danger{background:var(--color-error);color:var(--color-on-error)}.btn.success{background:var(--color-success);color:var(--color-on-success)}.btn.sm{min-height:28px;padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-supporting-size);border-radius:var(--radius-inner)}.btn:disabled,.btn.disabled{background:var(--color-skeleton);color:var(--color-text-disabled);cursor:not-allowed}.card{background:var(--color-background-card);border:1px solid var(--color-border);border-radius:var(--radius-container);padding:var(--spacing-4)}.card.surface{background:var(--color-background-surface)}.card+.card{margin-top:var(--spacing-4)}.card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-3)}.grid{display:grid;gap:var(--spacing-4)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1100px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:1fr}}.stat{display:flex;flex-direction:column;gap:var(--spacing-1)}.stat .label{font-size:var(--text-supporting-size);color:var(--color-text-secondary);font-weight:500}.stat .value{font-size:var(--text-display-2-size);font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}.stat .delta{font-size:var(--text-supporting-size);font-weight:500}.delta.up{color:var(--color-success)}.delta.down{color:var(--color-error)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-sm);font-weight:600;line-height:1;border-radius:var(--radius-full);padding:4px 9px;border:1px solid transparent;white-space:nowrap}.badge.gray{background:var(--color-background-gray);color:var(--color-text-gray);border-color:var(--color-border-gray)}.badge.green{background:var(--color-background-green);color:var(--color-text-green);border-color:var(--color-border-green)}.badge.red{background:var(--color-background-red);color:var(--color-text-red);border-color:var(--color-border-red)}.badge.yellow{background:var(--color-background-yellow);color:var(--color-text-yellow);border-color:var(--color-border-yellow)}.badge.blue{background:var(--color-background-blue);color:var(--color-text-blue);border-color:var(--color-border-blue)}.badge.purple{background:var(--color-background-purple);color:var(--color-text-purple);border-color:var(--color-border-purple)}.badge.teal{background:var(--color-background-teal);color:var(--color-text-teal);border-color:var(--color-border-teal)}.badge.orange{background:var(--color-background-orange);color:var(--color-text-orange);border-color:var(--color-border-orange)}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-container);background:var(--color-background-card)}table.data{width:100%;border-collapse:collapse;font-size:var(--text-body-size)}table.data th{text-align:left;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);text-transform:none;padding:var(--spacing-2) var(--spacing-3);border-bottom:1px solid var(--color-border);background:var(--color-background-muted);white-space:nowrap}table.data td{padding:var(--spacing-3);border-bottom:1px solid var(--color-border);vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tr.clickable:hover td{background:var(--color-overlay-hover);cursor:pointer}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}label.field{display:block;font-size:var(--text-supporting-size);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--spacing-1)}.input,select.input,textarea.input{width:100%;font-family:inherit;font-size:var(--text-body-size);padding:var(--spacing-2) var(--spacing-3);min-height:38px;border:1px solid var(--color-border-emphasized);border-radius:var(--radius-element);background:var(--color-background-surface);color:var(--color-text-primary)}.input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.input::placeholder{color:var(--color-text-disabled)}.field-row{display:flex;gap:var(--spacing-3);align-items:flex-end;flex-wrap:wrap}.field-row>div{flex:1;min-width:140px}.checkbox-row{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-body-size)}.switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}.switch .track{position:absolute;inset:0;background:var(--color-skeleton);border-radius:var(--radius-full);transition:background var(--duration-fast)}.switch.on .track{background:var(--color-accent)}.switch .thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--color-background-surface);border-radius:var(--radius-full);box-shadow:var(--shadow-low);transition:left var(--duration-fast)}.switch.on .thumb{left:18px}.tabs{display:flex;gap:var(--spacing-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-4)}.tabs .tab{padding:var(--spacing-2) var(--spacing-3);font-weight:500;color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap}.tabs .tab:hover{color:var(--color-text-primary);text-decoration:none}.tabs .tab.active{color:var(--color-text-accent);border-bottom-color:var(--color-accent);font-weight:600}.tabs .tab .count{font-size:var(--font-size-sm);color:var(--color-text-disabled);margin-left:4px}.seg{display:inline-flex;background:var(--color-background-muted);border:1px solid var(--color-border);border-radius:var(--radius-element);padding:2px;gap:2px}.seg .seg-item{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-inner);font-size:var(--text-supporting-size);font-weight:600;color:var(--color-text-secondary);cursor:pointer}.seg .seg-item.active{background:var(--color-background-surface);color:var(--color-text-primary);box-shadow:var(--shadow-low)}.cal-strip{display:flex;gap:var(--spacing-1);overflow-x:auto;padding-bottom:var(--spacing-1)}.cal-day{flex:1;min-width:56px;text-align:center;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--radius-element);padding:var(--spacing-2) var(--spacing-1);background:var(--color-background-card)}.cal-day:hover{background:var(--color-overlay-hover)}.cal-day .dow{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.cal-day .date{font-weight:600;margin:2px 0}.cal-day .cnt{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-accent)}.cal-day.today{border-color:var(--color-accent);background:var(--color-accent-muted)}.cal-day.sun .dow,.cal-day.sun .date{color:var(--color-text-red)}.cal-day.sat .dow,.cal-day.sat .date{color:var(--color-text-blue)}.cal-day.empty .cnt{color:var(--color-text-disabled);font-weight:400}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.notice-table td{padding:var(--spacing-3) var(--spacing-4);vertical-align:top}.notice-table th{padding:var(--spacing-2) var(--spacing-4)}.notice-table .col-title{min-width:320px}.notice-table .col-title .t{color:var(--color-text-primary);font-weight:600}.notice-table .sub{font-size:var(--text-supporting-size);color:var(--color-text-secondary);margin-top:2px;font-weight:400}.notice-table .col-amt{white-space:nowrap;font-weight:500;font-variant-numeric:tabular-nums}.notice-table .col-due,.notice-table .col-open{white-space:nowrap;color:var(--color-text-secondary)}.notice-table .dday{font-size:var(--font-size-sm);font-weight:600;margin-left:var(--spacing-1)}.notice-table .col-due.urgent,.notice-table .col-due.urgent .dday{color:var(--color-error);font-weight:700}.dday{font-size:var(--font-size-sm);font-weight:600;margin-left:var(--spacing-2);color:var(--color-text-secondary)}.dday.urgent{color:var(--color-error);font-weight:700}.tag{display:inline-block;margin-left:var(--spacing-2);padding:1px 6px;font-size:var(--font-size-sm);font-weight:600;border:1px solid var(--color-border-emphasized);border-radius:var(--radius-inner);color:var(--color-text-secondary);vertical-align:1px}@media (max-width: 720px){.notice-table thead{display:none}.notice-table table.data tr{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-1) var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border)}.notice-table table.data td{padding:0;border:none}.notice-table .col-title,.notice-table .col-due{grid-column:1 / -1;min-width:0}.notice-table td:nth-child(4),.notice-table .col-open,.notice-table .col-act{display:none}}.notice-card{background:var(--color-background-card);border:1px solid var(--color-border);border-radius:var(--radius-container);padding:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-2)}.notice-card:hover{border-color:var(--color-border-emphasized);box-shadow:var(--shadow-low)}.notice-card+.notice-card{margin-top:var(--spacing-3)}.notice-title-row{display:flex;align-items:flex-start;gap:var(--spacing-2)}.notice-title-row h3{flex:1;font-size:var(--text-large-size);font-weight:600;line-height:1.35}.notice-title-row h3 a{color:var(--color-text-primary)}.notice-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-1) var(--spacing-4);font-size:var(--text-supporting-size);color:var(--color-text-secondary)}.notice-meta b{color:var(--color-text-primary);font-weight:500}.notice-prices{display:flex;gap:var(--spacing-6);font-variant-numeric:tabular-nums}.notice-prices .p .k{font-size:var(--font-size-xs);color:var(--color-text-secondary);display:block}.notice-prices .p .v{font-weight:600}.deadline{color:var(--color-error);font-weight:700}.notice-actions{display:flex;gap:var(--spacing-2);align-items:center}.pagination{display:flex;gap:var(--spacing-1);justify-content:center;margin-top:var(--spacing-6)}.pagination a{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-inner);color:var(--color-text-secondary);font-weight:500}.pagination a:hover{background:var(--color-overlay-hover);text-decoration:none}.pagination a.active{background:var(--color-accent);color:var(--color-on-accent);font-weight:600}.empty{text-align:center;padding:var(--spacing-12) var(--spacing-6);border:1px dashed var(--color-border-emphasized);border-radius:var(--radius-container);color:var(--color-text-secondary)}.empty .icon{font-size:28px;margin-bottom:var(--spacing-2)}.empty h3{color:var(--color-text-primary);margin-bottom:var(--spacing-1)}.alert{display:flex;gap:var(--spacing-2);align-items:flex-start;border-radius:var(--radius-element);padding:var(--spacing-3);font-size:var(--text-body-size);border:1px solid}.alert.warning{background:var(--color-warning-muted);border-color:var(--color-border-yellow);color:var(--color-text-yellow)}.alert.error{background:var(--color-error-muted);border-color:var(--color-border-red);color:var(--color-text-red)}.alert.info{background:var(--color-background-blue);border-color:var(--color-border-blue);color:var(--color-text-blue)}.alert.success{background:var(--color-success-muted);border-color:var(--color-border-green);color:var(--color-text-green)}.meter{height:8px;background:var(--color-skeleton);border-radius:var(--radius-full);overflow:hidden}.meter .fill{height:100%;background:var(--color-accent);border-radius:var(--radius-full)}.meter .fill.warn{background:var(--color-warning)}.meter .fill.over{background:var(--color-error)}.kv{display:grid;grid-template-columns:140px 1fr;row-gap:var(--spacing-2);column-gap:var(--spacing-4);font-size:var(--text-body-size)}.kv dt{color:var(--color-text-secondary)}.kv dd{font-weight:500}.divider{border:none;border-top:1px solid var(--color-border);margin:var(--spacing-4) 0}.modal-backdrop{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;padding:var(--spacing-6)}.modal{background:var(--color-background-popover);border-radius:var(--radius-container);box-shadow:var(--shadow-high);max-width:480px;width:100%;padding:var(--spacing-6)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-6)}.auth-card{width:100%;max-width:400px;background:var(--color-background-card);border:1px solid var(--color-border);border-radius:var(--radius-container);padding:var(--spacing-8);box-shadow:var(--shadow-low)}.auth-card .logo-row{display:flex;align-items:center;gap:var(--spacing-2);font-weight:700;font-size:var(--font-size-xl);margin-bottom:var(--spacing-6)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.placeholder{min-height:40vh;display:flex;align-items:center;justify-content:center;color:var(--color-text-disabled);font-size:var(--text-supporting-size)}footer.site-footer{border-top:1px solid var(--color-border);margin-top:var(--spacing-12);background:var(--color-background-surface)}footer.site-footer .inner{max-width:1200px;margin:0 auto;padding:var(--spacing-8) var(--spacing-6);font-size:var(--text-supporting-size);color:var(--color-text-secondary);display:flex;flex-direction:column;gap:var(--spacing-2)}footer.site-footer .powered-by{display:inline-flex;align-items:center;gap:var(--spacing-2);font-size:12px;color:var(--brand-quiet)}.i{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.125em;background:currentColor;-webkit-mask:var(--i) center / contain no-repeat;mask:var(--i) center / contain no-repeat}.i-lock{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%2211%22 width=%2216%22 height=%2210%22 rx=%222%22/%3E%3Cpath d=%22M8 11V7a4 4 0 0 1 8 0v4%22/%3E%3C/svg%3E")}.i-bell{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9%22/%3E%3Cpath d=%22M10.3 21a1.94 1.94 0 0 0 3.4 0%22/%3E%3C/svg%3E")}.i-doc{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z%22/%3E%3Cpath d=%22M14 3v6h6M8 13h8M8 17h5%22/%3E%3C/svg%3E")}.i-warning{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z%22/%3E%3Cpath d=%22M12 9v4M12 17h.01%22/%3E%3C/svg%3E")}.i-block{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22m5.6 5.6 12.8 12.8%22/%3E%3C/svg%3E")}.i-copy{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%229%22 y=%229%22 width=%2212%22 height=%2212%22 rx=%222%22/%3E%3Cpath d=%22M5 15H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1%22/%3E%3C/svg%3E")}.i-list{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01%22/%3E%3C/svg%3E")}.i-chart{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 3v18h18%22/%3E%3Cpath d=%22m7 15 4-4 3 3 5-6%22/%3E%3C/svg%3E")}.i-image{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%223%22 width=%2218%22 height=%2218%22 rx=%222%22/%3E%3Ccircle cx=%229%22 cy=%229%22 r=%222%22/%3E%3Cpath d=%22m21 15-5-5L5 21%22/%3E%3C/svg%3E")}.i-clock{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M12 7v5l3 2%22/%3E%3C/svg%3E")}.i-folder{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z%22/%3E%3C/svg%3E")}.i-check-circle{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22m8 12 3 3 5-6%22/%3E%3C/svg%3E")}.i-inbox{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 12h-6l-2 3h-4l-2-3H2%22/%3E%3Cpath d=%22M5.5 5.1 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.5-6.9A2 2 0 0 0 16.8 4H7.2a2 2 0 0 0-1.7 1.1z%22/%3E%3C/svg%3E")}.i-sliders{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6%22/%3E%3C/svg%3E")}.i-globe{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18%22/%3E%3C/svg%3E")}.i-users{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2%22/%3E%3Ccircle cx=%229%22 cy=%227%22 r=%224%22/%3E%3Cpath d=%22M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8%22/%3E%3C/svg%3E")}.i-edit{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 20h9%22/%3E%3Cpath d=%22M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z%22/%3E%3C/svg%3E")}.i-arrow-right{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E")}.i-download{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3v12M7 10l5 5 5-5M5 21h14%22/%3E%3C/svg%3E")}.i-check{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m5 12 5 5 9-10%22/%3E%3C/svg%3E")}.i-x{--i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 6l12 12M18 6 6 18%22/%3E%3C/svg%3E")}
