:root {
  --canvas:#f6f7f9; --paper:#fff; --ink:#202d3a; --muted:#7a8492; --line:#e7ebef;
  --green:#167b69; --green-dark:#173d3b; --green-soft:#eaf5ef; --nav-ink:#a9beba;
  --blue:#466ba5; --blue-soft:#edf2fc; --amber:#b5812b; --amber-soft:#fff5df;
  --red:#c35050; --red-soft:#fff0ee; --radius:7px; --shadow:0 5px 24px #173d3b06;
  --font:"Malgun Gothic","맑은 고딕","Apple SD Gothic Neo",system-ui,sans-serif;
}
*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--canvas);font-size:13px;line-height:1.6}
button,input,select,textarea{font:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent }
button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5eb9a6;outline-offset:3px}
button,input,select,textarea{border-radius:5px}input,select,textarea{border:1px solid #dce2e7;background:#fff;padding:9px 11px;color:var(--ink);width:100%;min-width:0}input[readonly],input:disabled,select:disabled{background:#f3f5f7;color:#65717f}textarea{resize:vertical;min-height:76px}
input[type=checkbox]{width:auto;accent-color:var(--green)}input[type=number]{font-variant-numeric:tabular-nums}
.button{border:1px solid #dce3e8;background:#fff;color:#485464;padding:9px 14px;display:inline-flex;gap:7px;align-items:center;justify-content:center;white-space:nowrap;font-weight:600}.button:hover:not(:disabled){background:#f5f8f7}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover:not(:disabled){background:#116b5b}.button.small{padding:5px 9px;font-size:11px}.button.danger{color:var(--red);border-color:#edd5d5}.button.ghost{border:0;background:none;padding:5px 8px;color:var(--green)}.button svg{width:16px;height:16px}.icon-button{background:none;border:0;padding:7px;color:inherit;font-size:18px}
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;background:#f0f3f5;color:#647081;font-size:11px;font-weight:600;white-space:nowrap}.badge.green{background:var(--green-soft);color:var(--green)}.badge.blue{background:var(--blue-soft);color:var(--blue)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.red{background:var(--red-soft);color:var(--red)}
.muted{color:var(--muted)}.positive{color:var(--green)}.negative{color:var(--red)}.mono,.numeric{font-variant-numeric:tabular-nums}.mono{font-family:Consolas,monospace;font-size:12px}.nowrap{white-space:nowrap}.small-text{font-size:11px}.helper{font-size:11px;color:var(--muted);margin-top:5px}.stack{display:grid;gap:16px}.flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.spacer{flex:1}.separator{color:#bdc5cd}.status-dot{display:inline-block;width:6px;height:6px;background:#52bb8b;border-radius:50%}.empty{padding:36px;text-align:center;color:var(--muted)}.hidden{display:none!important}
.svg-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}
