/* @loom-file release=0.15.75 revision=14 policy=package-priority */
/* LOOM v0.12.14 visual foundation — polished defaults, same semantics */
:root{
  color-scheme:light;
  --loom-bg:#f2f7f3;
  --loom-bg-deep:#eaf2ec;
  --loom-surface:#ffffff;
  --loom-surface-soft:#f7faf8;
  --loom-surface-glass:rgba(255,255,255,.82);
  --loom-ink:#142019;
  --loom-muted:#6e7d73;
  --loom-line:#dbe7de;
  --loom-line-strong:#cadbd0;
  --loom-accent:#168346;
  --loom-accent-2:#62bd73;
  --loom-accent-soft:#e9f6ec;
  --loom-danger:#a43232;
  --loom-warning:#936b00;
  --loom-focus:#32ae60;
  --loom-radius-xs:8px;
  --loom-radius-sm:12px;
  --loom-radius-md:17px;
  --loom-radius-lg:24px;
  --loom-radius-xl:32px;
  --loom-space-1:4px;
  --loom-space-2:8px;
  --loom-space-3:12px;
  --loom-space-4:16px;
  --loom-space-5:22px;
  --loom-space-6:30px;
  --loom-shadow-1:0 8px 28px rgba(19,58,30,.07);
  --loom-shadow-2:0 24px 76px rgba(17,55,29,.12);
  --loom-shadow-float:0 30px 90px rgba(17,55,29,.16);
  --loom-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --loom-control-h:44px;
  --loom-touch-min:44px;
}
[data-loom-theme="dark"]{
  color-scheme:dark;
  --loom-bg:#0f1511;
  --loom-bg-deep:#0b100d;
  --loom-surface:#171e19;
  --loom-surface-soft:#1d2620;
  --loom-surface-glass:rgba(23,30,25,.84);
  --loom-ink:#edf7f0;
  --loom-muted:#9caf9f;
  --loom-line:#2d3b31;
  --loom-line-strong:#3b4b40;
  --loom-accent:#47cb75;
  --loom-accent-2:#78db96;
  --loom-accent-soft:#193923;
  --loom-shadow-1:0 8px 28px rgba(0,0,0,.24);
  --loom-shadow-2:0 24px 76px rgba(0,0,0,.34);
}
html{scroll-behavior:smooth}
body{font-family:var(--loom-font);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;line-height:1.5}
:where(button,input,select,textarea){font:inherit}
:where(button,a,input,select,textarea){-webkit-tap-highlight-color:transparent}
:where(button,input,select,textarea):disabled{opacity:.52;cursor:not-allowed;filter:saturate(.72)}
::selection{background:color-mix(in srgb,var(--loom-accent) 22%,transparent)}
:where(button,a,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--loom-focus) 34%,transparent);outline-offset:3px}
.loom-ui-button{
  min-height:var(--loom-touch-min);
  border:1px solid color-mix(in srgb,var(--loom-accent) 30%,var(--loom-line));
  border-radius:var(--loom-radius-sm);
  padding:0 15px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--loom-accent) 92%,#fff),var(--loom-accent));
  color:#fff;
  box-shadow:0 7px 18px color-mix(in srgb,var(--loom-accent) 18%,transparent),inset 0 1px rgba(255,255,255,.18);
  font:900 11px/1 var(--loom-font);
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,border-color .16s ease;
}
.loom-ui-button:hover{transform:translateY(-1px);box-shadow:0 11px 24px color-mix(in srgb,var(--loom-accent) 22%,transparent);filter:saturate(1.06)}
.loom-ui-button:active{transform:translateY(0);box-shadow:0 4px 12px color-mix(in srgb,var(--loom-accent) 14%,transparent)}
.loom-ui-button:disabled{transform:none;box-shadow:none}
.loom-ui-button.secondary{background:linear-gradient(180deg,var(--loom-surface),var(--loom-surface-soft));color:var(--loom-ink);border-color:var(--loom-line);box-shadow:var(--loom-shadow-1)}
.loom-ui-input{
  min-height:var(--loom-control-h);
  border:1px solid var(--loom-line);
  border-radius:var(--loom-radius-sm);
  padding:9px 12px;
  background:linear-gradient(180deg,var(--loom-surface),var(--loom-surface-soft));
  color:var(--loom-ink);
  box-shadow:inset 0 1px 2px rgba(17,55,29,.025);
  font:inherit;
  outline:none;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.loom-ui-input:hover{border-color:var(--loom-line-strong)}
.loom-ui-input:focus{border-color:var(--loom-focus);box-shadow:0 0 0 4px color-mix(in srgb,var(--loom-focus) 14%,transparent);background:var(--loom-surface)}
.loom-ui-card{
  border:1px solid var(--loom-line);
  border-radius:var(--loom-radius-lg);
  background:linear-gradient(145deg,var(--loom-surface),var(--loom-surface-soft));
  box-shadow:var(--loom-shadow-1),inset 0 1px rgba(255,255,255,.8);
}
.loom-ui-glass{
  border:1px solid color-mix(in srgb,var(--loom-line) 78%,transparent);
  border-radius:var(--loom-radius-lg);
  background:var(--loom-surface-glass);
  box-shadow:var(--loom-shadow-1);
  backdrop-filter:blur(20px) saturate(125%);
  -webkit-backdrop-filter:blur(20px) saturate(125%);
}
.loom-ui-stack{display:grid;gap:var(--loom-space-4)}
.loom-ui-cluster{display:flex;align-items:center;gap:var(--loom-space-3);flex-wrap:wrap}
.loom-ui-muted{color:var(--loom-muted)}
.loom-ui-eyebrow{font-size:9px;font-weight:950;letter-spacing:.14em;text-transform:uppercase;color:var(--loom-accent)}
@media(hover:hover){
  .loom-ui-card[data-interactive="true"]{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
  .loom-ui-card[data-interactive="true"]:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--loom-accent) 24%,var(--loom-line));box-shadow:var(--loom-shadow-2)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* v0.15.57 global UX rhythm */
.loom-ui-card>:first-child{margin-top:0}
.loom-ui-card>:last-child{margin-bottom:0}
.loom-ui-cluster>:where(button,a,.loom-ui-button){flex:0 0 auto}
@media(max-width:720px){
  .loom-ui-cluster{gap:var(--loom-space-2)}
  .loom-ui-button{min-height:42px;padding-inline:13px}
  .loom-ui-card{border-radius:var(--loom-radius-md)}
}


/* LOOM 0.15.70 production UI pass — shared platform defaults only. */
:root{
  --loom-canvas:#f3f7f4;
  --loom-canvas-tint:#edf4ef;
  --loom-panel:#ffffff;
  --loom-panel-subtle:#f8fbf9;
  --loom-ink-strong:#101a14;
  --loom-border-subtle:rgba(31,78,45,.12);
  --loom-border-hover:rgba(22,131,70,.28);
  --loom-shadow-card:0 10px 34px rgba(18,54,29,.055),0 1px 2px rgba(18,54,29,.025);
  --loom-shadow-card-hover:0 18px 54px rgba(18,54,29,.10),0 2px 5px rgba(18,54,29,.04);
  --loom-shadow-panel:0 28px 90px rgba(17,55,29,.105),inset 0 1px rgba(255,255,255,.92);
  --loom-transition-fast:140ms cubic-bezier(.2,.8,.2,1);
  --loom-transition:190ms cubic-bezier(.2,.8,.2,1);
}
html{background:var(--loom-canvas);text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{min-width:280px;color:var(--loom-ink);background-color:var(--loom-canvas)}
body,button,input,select,textarea{font-feature-settings:"kern" 1,"liga" 1;font-variant-ligatures:common-ligatures}
button,input,select,textarea{border-color:var(--loom-line)}
input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--loom-muted) 72%,transparent)}
select{background-color:var(--loom-surface)}
textarea{line-height:1.55}
button{touch-action:manipulation}
hr{border:0;border-top:1px solid var(--loom-line)}
code,kbd,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}
code{font-size:.92em}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--loom-muted) 30%,transparent);border:3px solid transparent;background-clip:padding-box;border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--loom-muted) 44%,transparent);border:3px solid transparent;background-clip:padding-box}
.loom-ui-button,.loom-ui-input,.loom-ui-card{transition:border-color var(--loom-transition-fast),box-shadow var(--loom-transition-fast),background var(--loom-transition-fast),transform var(--loom-transition-fast)}
.loom-ui-card{box-shadow:var(--loom-shadow-card)}
.loom-ui-card[data-interactive="true"]:hover{box-shadow:var(--loom-shadow-card-hover)}
.loom-ui-input{min-height:46px;padding-inline:13px}
.loom-ui-button{min-height:42px;letter-spacing:-.005em}
.loom-ui-divider{height:1px;background:var(--loom-line);border:0;margin:var(--loom-space-4) 0}
.loom-ui-empty{display:grid;place-items:center;min-height:150px;padding:28px;border:1px dashed var(--loom-line-strong);border-radius:var(--loom-radius-lg);background:color-mix(in srgb,var(--loom-surface) 82%,transparent);color:var(--loom-muted);text-align:center}
.loom-ui-status{display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:5px 9px;border:1px solid var(--loom-line);border-radius:999px;background:var(--loom-surface-soft);color:var(--loom-muted);font-size:9px;font-weight:900;letter-spacing:.01em}
.loom-ui-status[data-tone="success"]{background:#ebf7ee;border-color:#d0ead7;color:#176b37}
.loom-ui-status[data-tone="warning"]{background:#fff7df;border-color:#ead89e;color:#765a0b}
.loom-ui-status[data-tone="danger"]{background:#fff0f0;border-color:#edcccc;color:#963636}
.loom-ui-table-wrap{overflow:auto;border:1px solid var(--loom-line);border-radius:var(--loom-radius-md);background:var(--loom-surface);box-shadow:var(--loom-shadow-1)}
.loom-ui-table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px}
.loom-ui-table th{position:sticky;top:0;z-index:1;padding:10px 12px;background:var(--loom-surface-soft);border-bottom:1px solid var(--loom-line);color:var(--loom-muted);font-size:9px;text-align:left;text-transform:uppercase;letter-spacing:.08em}
.loom-ui-table td{padding:11px 12px;border-bottom:1px solid color-mix(in srgb,var(--loom-line) 65%,transparent);vertical-align:top}
.loom-ui-table tr:last-child td{border-bottom:0}
.loom-ui-skeleton{position:relative;overflow:hidden;background:color-mix(in srgb,var(--loom-line) 54%,transparent);border-radius:8px;color:transparent!important}
.loom-ui-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:loomSkeleton 1.4s ease-in-out infinite}
@keyframes loomSkeleton{to{transform:translateX(100%)}}
@media(max-width:720px){:root{--loom-radius-xl:24px;--loom-radius-lg:20px}.loom-ui-input{min-height:44px}}
@media(prefers-reduced-motion:reduce){.loom-ui-skeleton::after{animation:none}}

/* LOOM 0.15.75 native file-picker polish. */
:where(input[type="file"]){min-height:46px;padding:5px 7px;border:1px solid var(--loom-line);border-radius:var(--loom-radius-sm);background:linear-gradient(180deg,var(--loom-surface),var(--loom-surface-soft));color:var(--loom-muted);cursor:pointer}
:where(input[type="file"])::file-selector-button{min-height:34px;margin:0 10px 0 0;padding:7px 11px;border:1px solid color-mix(in srgb,var(--loom-accent) 24%,var(--loom-line));border-radius:9px;background:var(--loom-accent-soft);color:color-mix(in srgb,var(--loom-accent) 72%,#102318);font:900 10px/1 var(--loom-font);cursor:pointer;transition:background var(--loom-transition-fast),border-color var(--loom-transition-fast),transform var(--loom-transition-fast)}
:where(input[type="file"]):hover::file-selector-button{background:color-mix(in srgb,var(--loom-accent-soft) 78%,#fff);border-color:var(--loom-border-hover)}

/* LOOM 0.15.75 restrained core-surface standardization. Project-owned UI is intentionally excluded. */
body:is(.loom-admin-page,.loom-admin-utility,.loom-admin-setup-page){--loom-core-control-radius:10px;--loom-core-control-height:44px}
body:is(.loom-admin-page,.loom-admin-utility,.loom-admin-setup-page) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),select,textarea){border-color:var(--loom-line);background-color:var(--loom-surface);color:var(--loom-ink);transition:border-color var(--loom-transition-fast),box-shadow var(--loom-transition-fast),background var(--loom-transition-fast)}
body:is(.loom-admin-page,.loom-admin-utility,.loom-admin-setup-page) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),select):not([type="file"]){min-height:var(--loom-core-control-height)}
body:is(.loom-admin-page,.loom-admin-utility,.loom-admin-setup-page) :where(button,.btn,a.btn){transition:transform var(--loom-transition-fast),border-color var(--loom-transition-fast),box-shadow var(--loom-transition-fast),background var(--loom-transition-fast),color var(--loom-transition-fast)}
body:is(.loom-admin-page,.loom-admin-utility,.loom-admin-setup-page) :where(button,.btn,a.btn):active:not(:disabled){transform:translateY(0)}
body:is(.loom-admin-page,.loom-admin-utility,.loom-admin-setup-page) :where(.empty,.loom-ui-empty){background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(247,251,248,.9));border-color:var(--loom-line);color:var(--loom-muted)}
body:is(.loom-admin-page,.loom-admin-utility,.loom-admin-setup-page) :where(.pill,.loom-ui-status){font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.user-refresh-icon{animation:none!important}}

