/* NiceMove UI 2.0
   Primitive → semantic → component tokens. Screen CSS owns composition only.
   TDS-informed hierarchy; NiceMove brand and content styles remain independent. */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css');
:root {
  color-scheme:light;
  --nm-gray-0:#ffffff;--nm-gray-50:#f5f6f8;--nm-gray-100:#f0f2f5;
  --nm-gray-200:#e5e8eb;--nm-gray-300:#d1d6db;--nm-gray-400:#b0b8c1;
  --nm-gray-500:#8b95a1;--nm-gray-600:#626d7a;--nm-gray-700:#4e5968;
  --nm-gray-800:#333d4b;--nm-gray-900:#191f28;
  --nm-amber-50:#fff8e6;--nm-amber-100:#fff0c2;--nm-amber-400:#ffbf28;
  --nm-amber-500:#f2ad0c;--nm-amber-700:#8b5c00;
  --nm-color-ink:var(--nm-gray-900);
  --nm-color-secondary:var(--nm-gray-700);
  --nm-color-muted:var(--nm-gray-600);
  --nm-color-subtle:var(--nm-gray-500);
  --nm-color-surface:var(--nm-gray-0);
  --nm-color-canvas:var(--nm-gray-50);
  --nm-color-hover:var(--nm-gray-100);
  --nm-color-border:var(--nm-gray-200);
  --nm-color-border-strong:var(--nm-gray-300);
  --nm-color-accent:var(--nm-amber-400);
  --nm-color-accent-hover:var(--nm-amber-500);
  --nm-color-accent-ink:var(--nm-gray-900);
  --nm-color-accent-soft:var(--nm-amber-50);
  --nm-color-accent-text:var(--nm-amber-700);
  --nm-color-focus:var(--nm-amber-700);
  --nm-color-info:var(--nm-gray-700);
  --nm-color-info-bg:var(--nm-gray-100);
  --nm-color-success:#15734e;--nm-color-success-bg:#e9f7ef;
  --nm-color-warning:#8b5c00;--nm-color-warning-bg:#fff4d8;
  --nm-color-danger:#bd3449;--nm-color-danger-bg:#fff0f2;
  --nm-color-inverse:var(--nm-gray-0);--nm-color-scrim:#191f2866;
  --nm-color-disabled:var(--nm-gray-500);--nm-color-disabled-bg:var(--nm-gray-100);
  /* Deprecated palette aliases retained while old screen compositions migrate. */
  --nm-color-lilac:var(--nm-color-info-bg);--nm-color-lilac-ink:var(--nm-color-info);
  --nm-space-1:4px;--nm-space-2:8px;--nm-space-3:12px;--nm-space-4:16px;
  --nm-space-5:20px;--nm-space-6:24px;--nm-space-8:32px;--nm-space-10:40px;
  --nm-space-12:48px;--nm-space-16:64px;
  --nm-radius-xs:8px;--nm-radius-sm:12px;--nm-radius-md:16px;
  --nm-radius-lg:20px;--nm-radius-xl:24px;--nm-radius-full:999px;
  --nm-font-body:'Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR',sans-serif;
  --nm-text-display:2rem;--nm-text-title:1.75rem;--nm-text-heading:1.5rem;
  --nm-text-xl:1.5rem;--nm-text-lg:1.25rem;--nm-text-base:1.0625rem;
  --nm-text-sm:.9375rem;--nm-text-control:.9375rem;--nm-text-meta:.8125rem;
  --nm-text-caption:.75rem;--nm-text-xs:var(--nm-text-meta);
  --nm-weight-regular:400;--nm-weight-medium:500;--nm-weight-semibold:600;--nm-weight-bold:700;
  --nm-tracking-body:-.01em;--nm-tracking-heading:-.025em;--nm-tracking-control:-.01em;
  --nm-line-body:1.6;--nm-line-heading:1.35;--nm-line-control:1.4;--nm-line-meta:1.5;
  --nm-control-height:44px;--nm-control-height-small:36px;
  --nm-button-radius:var(--nm-radius-sm);--nm-input-radius:var(--nm-radius-sm);
  --nm-card-radius:var(--nm-radius-lg);--nm-page-gutter:40px;
  --nm-button-bg:var(--nm-gray-100);--nm-button-foreground:var(--nm-color-secondary);
  --nm-input-border:var(--nm-color-border-strong);--nm-input-bg:var(--nm-color-surface);
  --nm-shadow-sm:none;
  --nm-shadow-md:0 8px 24px #191f2814;
  --nm-shadow-popover:0 16px 48px #191f2824;
  --nm-duration:160ms;--nm-easing:cubic-bezier(.2,.8,.2,1);
  /* Legacy renderer aliases. Do not introduce new uses. */
  --ink:var(--nm-color-ink);--muted:var(--nm-color-muted);--green:var(--nm-color-ink);
  --lime:var(--nm-color-accent);--paper:var(--nm-color-surface);--ground:var(--nm-color-canvas);
  --line:var(--nm-color-border);--red:var(--nm-color-danger);--radius:var(--nm-radius-md);
  font-family:var(--nm-font-body);color:var(--nm-color-ink);font-synthesis:none;
}
* {box-sizing:border-box;}
body {margin:0;background:var(--nm-color-canvas);font-size:var(--nm-text-base);line-height:var(--nm-line-body);letter-spacing:var(--nm-tracking-body);-webkit-font-smoothing:antialiased;}
button,input,textarea,select {font:inherit;}
button {color:inherit;cursor:pointer;border:0;}
select {cursor:pointer;}
button:disabled {cursor:not-allowed;}
button,a,input,textarea,select,summary {touch-action:manipulation;}
:is(button,a,input,textarea,select,summary,[tabindex]):focus-visible {outline:3px solid var(--nm-color-focus);outline-offset:3px;}
a {color:inherit;text-underline-offset:4px;}
svg {flex-shrink:0;vertical-align:middle;}
button svg {pointer-events:none;}
img {max-width:100%;}
[hidden] {display:none!important;}
/* Buttons: filled primary, weak secondary, text action. One primary per decision. */
.btn {
  display:inline-flex;align-items:center;justify-content:center;gap:var(--nm-space-2);
  min-height:var(--nm-control-height);padding:10px 16px;border-radius:var(--nm-button-radius);
  border:1px solid transparent;background:var(--nm-button-bg);color:var(--nm-button-foreground);
  font-size:var(--nm-text-control);font-weight:var(--nm-weight-semibold);line-height:var(--nm-line-control);
  letter-spacing:var(--nm-tracking-control);white-space:nowrap;text-decoration:none;
  transition:background var(--nm-duration) var(--nm-easing),color var(--nm-duration),transform var(--nm-duration);
}
.btn:hover:not(:disabled):not([aria-disabled=true]) {background:var(--nm-gray-200);}
.btn:active:not(:disabled):not([aria-disabled=true]) {transform:translateY(1px);}
.btn.primary {background:var(--nm-color-accent);color:var(--nm-color-accent-ink);border-color:transparent;}
.btn.primary:hover:not(:disabled):not([aria-disabled=true]) {background:var(--nm-color-accent-hover);}
.btn.soft {background:var(--nm-color-accent-soft);color:var(--nm-color-accent-text);}
.btn.soft:hover:not(:disabled):not([aria-disabled=true]) {background:var(--nm-amber-100);}
.btn.ghost {background:transparent;color:var(--nm-color-secondary);}
.btn.ghost:hover:not(:disabled):not([aria-disabled=true]) {background:var(--nm-color-hover);}
.btn.danger {background:var(--nm-color-danger-bg);color:var(--nm-color-danger);}
.btn.danger:hover:not(:disabled):not([aria-disabled=true]) {background:#ffe0e5;}
.btn.small {min-height:var(--nm-control-height-small);padding:7px 12px;font-size:var(--nm-text-meta);}
.btn:disabled,.btn[aria-disabled=true] {background:var(--nm-color-disabled-bg);color:var(--nm-color-disabled);border-color:transparent;opacity:1;transform:none;cursor:not-allowed;}
.btn[aria-busy=true] {cursor:wait;}
.btn[aria-busy=true]::before {content:'';display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:nm-spin 800ms linear infinite;}
@keyframes nm-spin {to {transform:rotate(360deg);}}
.icon-btn {display:inline-grid;place-items:center;width:var(--nm-control-height);height:var(--nm-control-height);padding:10px;background:transparent;color:var(--nm-color-secondary);border-radius:var(--nm-radius-sm);flex-shrink:0;}
.icon-btn:hover:not(:disabled) {background:var(--nm-color-hover);}
.icon-btn:disabled {color:var(--nm-color-disabled);opacity:1;}
/* Status colors communicate meaning. Neutral is the default, not an accent. */
.status {display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:4px 9px;border-radius:var(--nm-radius-xs);background:var(--nm-color-info-bg);color:var(--nm-color-info);font-size:var(--nm-text-meta);font-weight:var(--nm-weight-medium);line-height:var(--nm-line-meta);white-space:nowrap;}
.status::before {content:'';width:5px;height:5px;border-radius:50%;background:currentColor;}
.status.approved {background:var(--nm-color-success-bg);color:var(--nm-color-success);}
.status.changes_requested {background:var(--nm-color-warning-bg);color:var(--nm-color-warning);}
.status.error {background:var(--nm-color-danger-bg);color:var(--nm-color-danger);}
.role-tag {display:inline-flex;align-items:center;font-size:var(--nm-text-meta);line-height:var(--nm-line-meta);color:var(--nm-color-muted);padding:4px 8px;background:var(--nm-color-canvas);border:0;border-radius:var(--nm-radius-xs);}
/* Labels remain visible. Help/error states are linked with aria-describedby. */
.field {display:block;font-size:var(--nm-text-base);font-weight:var(--nm-weight-semibold);line-height:var(--nm-line-body);margin:0 0 var(--nm-space-6);}
.field :is(input,textarea,select) {display:block;margin-top:var(--nm-space-2);width:100%;min-width:0;min-height:var(--nm-control-height);padding:12px 14px;border:1px solid var(--nm-input-border);border-radius:var(--nm-input-radius);background:var(--nm-input-bg);color:var(--nm-color-ink);font-size:var(--nm-text-base);font-weight:var(--nm-weight-regular);line-height:var(--nm-line-body);transition:border-color var(--nm-duration),background var(--nm-duration);}
.field textarea {min-height:112px;resize:vertical;}
.field small {display:block;margin-top:6px;color:var(--nm-color-muted);font-size:var(--nm-text-meta);font-weight:var(--nm-weight-regular);line-height:var(--nm-line-meta);}
.field :is(input,textarea,select)::placeholder {color:var(--nm-color-muted);opacity:1;}
.field :is(input,textarea,select):hover:not(:disabled):not([readonly]) {border-color:var(--nm-color-muted);}
.field :is(input,textarea,select):focus {border-color:var(--nm-color-focus);}
.field :is(input,textarea,select)[aria-invalid=true] {border-color:var(--nm-color-danger);}
.field :is(input,textarea,select):disabled {background:var(--nm-color-disabled-bg);color:var(--nm-color-disabled);cursor:not-allowed;}
.field :is(input,textarea)[readonly] {background:var(--nm-color-canvas);border-color:var(--nm-color-border);color:var(--nm-color-secondary);}
.form-row {display:flex;gap:var(--nm-space-4);}
.form-row>* {flex:1;min-width:0;}
.error-text {color:var(--nm-color-danger);font-size:var(--nm-text-meta);line-height:var(--nm-line-meta);min-height:1em;}
.field .error-text {color:var(--nm-color-danger);}
.error-text:empty {display:none;}
input[type=checkbox],input[type=radio] {accent-color:var(--nm-color-accent-text);}
/* Reusable compositions. Use rows for repeated information; cards for boundaries. */
.nm-section-heading {display:flex;align-items:flex-start;justify-content:space-between;gap:var(--nm-space-4);margin-bottom:var(--nm-space-6);}
.nm-section-heading :is(h1,h2,h3) {margin:0;color:var(--nm-color-ink);font-size:var(--nm-text-heading);font-weight:var(--nm-weight-bold);line-height:var(--nm-line-heading);letter-spacing:var(--nm-tracking-heading);}
.nm-section-heading p {margin:var(--nm-space-2) 0 0;color:var(--nm-color-muted);font-size:var(--nm-text-base);line-height:var(--nm-line-body);}
.nm-list-row {display:flex;align-items:center;gap:var(--nm-space-4);min-height:72px;width:100%;padding:var(--nm-space-4) 0;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--nm-color-border);}
.nm-list-row:last-child {border-bottom:0;}
button.nm-list-row:hover {background:var(--nm-color-canvas);}
.nm-list-row-content {flex:1;min-width:0;}
.nm-list-row-content strong {display:block;font-size:var(--nm-text-base);line-height:var(--nm-line-body);font-weight:var(--nm-weight-semibold);}
.nm-list-row-content p,.nm-list-row-content small {display:block;margin:4px 0 0;color:var(--nm-color-muted);font-size:var(--nm-text-meta);line-height:var(--nm-line-meta);}
.nm-list-row-end {flex-shrink:0;color:var(--nm-color-muted);font-size:var(--nm-text-meta);}
.nm-notice {display:flex;align-items:flex-start;gap:var(--nm-space-3);padding:var(--nm-space-4);border-radius:var(--nm-radius-sm);background:var(--nm-color-info-bg);color:var(--nm-color-info);font-size:var(--nm-text-meta);line-height:var(--nm-line-meta);}
.nm-notice p {margin:0;}
.nm-notice.warning {background:var(--nm-color-warning-bg);color:var(--nm-color-warning);}
.nm-notice.error {background:var(--nm-color-danger-bg);color:var(--nm-color-danger);}
.nm-notice.success {background:var(--nm-color-success-bg);color:var(--nm-color-success);}
.muted {color:var(--nm-color-muted);}
.eyebrow {font-size:var(--nm-text-meta);font-weight:var(--nm-weight-medium);letter-spacing:var(--nm-tracking-body);color:var(--nm-color-muted);}
.count-bubble,.tab-count {display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:var(--nm-radius-xs);background:var(--nm-color-hover);color:var(--nm-color-muted);font-size:var(--nm-text-caption);font-weight:var(--nm-weight-medium);}
.shortcut {border:1px solid var(--nm-color-border);background:var(--nm-color-canvas);border-radius:4px;padding:2px 5px;font-size:var(--nm-text-caption);}
.sr-only {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media(max-width:670px) {
  :root {--nm-control-height:48px;--nm-control-height-small:44px;--nm-page-gutter:20px;}
  .field :is(input,textarea,select) {font-size:16px;}
  .form-row {display:block;}
  .nm-section-heading {flex-wrap:wrap;}
}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after {scroll-behavior:auto!important;transition:none!important;animation:none!important;}}
