/* GOODWOOD 360 — editorial base styles (ported from v2) */
  :root{
    --ink:#1a1a18; --mute:#9a9a95; --faint:#cfcfca; --line:#eceae6; --bg:#fff;
    --serif:Georgia,"Iowan Old Style","Times New Roman",serif;
    --sans:system-ui,-apple-system,"Segoe UI",sans-serif;
    --logo:url("data:image/webp;base64,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");
  }
  *{box-sizing:border-box;}
  html,body{height:100%;}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);}

  .app{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:22px;}
  .block{width:min(96vw,80vh,940px);padding-bottom:108px;}

  .top{display:flex;justify-content:space-between;align-items:baseline;
       padding-bottom:14px;border-bottom:1px solid var(--line);animation:rise .6s ease both .05s;}
  .brand{display:flex;align-items:center;font-family:var(--sans);font-size:22px;font-weight:600;letter-spacing:-.005em;line-height:1;}
  .brand i{font-style:normal;font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;
           text-transform:uppercase;color:var(--mute);margin-left:10px;vertical-align:middle;}
  .actions{display:flex;gap:20px;}
  .ctl{font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
       color:var(--mute);background:none;border:0;padding:0;cursor:pointer;transition:color .2s;}
  .ctl:hover{color:var(--ink);}
  .res{display:flex;align-items:baseline;justify-content:center;gap:9px;}
  .res-lbl{font-family:var(--sans);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-right:4px;}
  .res-opt{font-family:var(--sans);font-size:10px;letter-spacing:.06em;color:var(--mute);
           background:none;border:0;padding:0 0 2px;cursor:pointer;transition:color .2s;border-bottom:1px solid transparent;}
  .res-opt:hover{color:var(--ink);}
  .res-opt.active{color:var(--ink);border-bottom-color:var(--ink);}
  .res-sep{color:var(--faint);font-size:9px;}

  .stagewrap{display:flex;justify-content:center;animation:rise .7s ease both .16s;}
  .stage{position:relative;
         width:calc(100% + 2 * var(--stage-overhang, 72px));
         max-width:none;
         margin-left:calc(-1 * var(--stage-overhang, 72px));
         margin-right:calc(-1 * var(--stage-overhang, 72px));
         height:min(96vw,80vh,940px);            /* keep vertical size exactly as before */
         background:var(--bg);
         overflow:hidden;cursor:grab;touch-action:none;user-select:none;}
  .stage.dragging{cursor:grabbing;}
  /* fullscreen: full viewport, centered, no horizontal overhang */
  .stage:fullscreen{width:100vw;height:100vh;margin:0;background:var(--bg);display:flex;align-items:center;justify-content:center;}
  .stage:fullscreen #frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
                           transform:scale(var(--fs-scale,0.92))!important;}
  #frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
         pointer-events:none;transform-origin:center center;will-change:transform;}
  .loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg);}
  .loader-box{display:flex;flex-direction:column;align-items:center;gap:12px;width:min(220px,60%);}
  .loader-box span{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);}
  .loader-bar{width:100%;height:2px;background:var(--line);border-radius:2px;overflow:hidden;}
  .loader-bar i{display:block;height:100%;width:0;background:var(--ink);border-radius:2px;
                transition:width .2s ease;}
  .loader-pct{font-style:normal;font-size:9px;letter-spacing:.16em;color:var(--faint);
              font-variant-numeric:tabular-nums;}

  /* fabric / resolution row — always reserves the same vertical space so the layout never shifts */
  /* fabric / resolution row — disabled in favor of the Library (apply flow) */
  .config{display:none !important;}
  .swatches{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;max-width:100%;}
  .swatch{width:30px;height:30px;border-radius:50%;padding:0;border:1px solid rgba(0,0,0,.12);
          cursor:pointer;flex:none;background:#e9e7e2;transition:transform .18s,box-shadow .18s;}
  .swatch:hover{transform:translateY(-2px);}
  .swatch.active{box-shadow:0 0 0 1.5px var(--bg),0 0 0 3px var(--ink);}
  .swatch.loading{animation:pulse 1s ease-in-out infinite;}
  .fabric-name{font-size:12px;letter-spacing:.02em;color:var(--ink);min-height:14px;}

  .bottom{display:flex;align-items:center;padding-top:16px;margin-top:22px;border-top:1px solid var(--line);
          animation:rise .6s ease both .26s;}
  .label{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);white-space:nowrap;}
  .num{color:var(--ink);font-variant-numeric:tabular-nums;}
  .prog{flex:1;height:1px;background:var(--line);position:relative;margin:0 24px;}
  .prog i{position:absolute;left:0;top:0;height:1px;background:var(--ink);width:0;}
  .panel{width:min(96vw,80vh,940px);margin-top:16px;font-size:12.5px;color:#c92a2a;text-align:center;line-height:1.6;display:none;}
  .back-home{display:block;margin:8px 0;font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
             color:var(--mute);background:none;border:0;padding:0;cursor:pointer;transition:color .2s;
             animation:rise .6s ease both .26s;}
  .back-home[hidden]{display:none;}
  .back-home:hover{color:var(--ink);}
  .aftermath{margin-top:6px;display:flex;justify-content:flex-end;animation:rise .6s ease both .3s;}
  .version{font-family:var(--sans);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);}

  /* uploader overlay */
  .uploader{position:fixed;inset:0;background:var(--bg);z-index:50;display:none;
            flex-direction:column;align-items:center;justify-content:center;padding:24px;}
  .uploader.show{display:flex;}
  .up-card{width:min(92vw,540px);text-align:center;}
  .up-title{font-family:var(--sans);font-size:18px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;}
  .up-sub{color:var(--mute);font-size:13px;margin:0 0 24px;line-height:1.5;}
  .dropzone{border:1.5px dashed #d9d8d2;border-radius:18px;padding:42px 26px;transition:.2s;}
  .dropzone.over{border-color:var(--ink);background:#fafaf8;}
  .dz-text{font-size:13px;color:var(--mute);margin:0 0 20px;}
  .up-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
  .btn{font:inherit;font-size:12px;letter-spacing:.06em;padding:11px 18px;border:1px solid var(--ink);
       border-radius:10px;background:var(--ink);color:#fff;cursor:pointer;}
  .btn.secondary{background:#fff;color:var(--ink);}
  .up-hint{font-size:11px;color:var(--faint);margin:20px 0 0;line-height:1.6;}
  .up-close{margin-top:22px;font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);
            background:none;border:0;cursor:pointer;}

  /* library overlay */
  /* library as a left side panel */
  .library{position:fixed;top:0;bottom:0;left:0;width:min(92vw,560px);background:var(--bg);z-index:60;
           display:flex;flex-direction:column;padding:26px 24px 20px;
           border-right:1px solid var(--line);box-shadow:0 0 40px rgba(0,0,0,.05);
           transform:translateX(-102%);transition:transform .3s ease;}
  .library.show{transform:translateX(0);}
  /* panel overlays the page — the product stays exactly where it is */
  .lib-head{display:flex;align-items:baseline;justify-content:space-between;
            border-bottom:1px solid var(--line);padding-bottom:14px;}
  .lib-title{font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);}
  .lib-title small{font-family:var(--sans);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-left:10px;}
  .lib-close{font-family:var(--sans);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);background:none;border:0;cursor:pointer;}
  .lib-close:hover{color:var(--ink);}
  .lib-hint{margin:12px 0 8px;font-family:var(--sans);font-size:10.5px;letter-spacing:.01em;color:var(--mute);line-height:1.55;}
  .lib-tree{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:6px 0 12px;
            font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1;}

  /* plain grouping folders (product root + fabric folders) — file-tree rows */
  .lib-row{position:relative;display:flex;align-items:center;gap:7px;padding:6px 4px;border-radius:6px;
           cursor:pointer;white-space:nowrap;color:var(--ink);}
  .lib-row:hover{background:#f5f5f3;}
  .lib-row .tw{color:#c4c4be;white-space:pre;}
  .lib-row .ic{flex:none;display:inline-flex;}
  .lib-row .nm{overflow:hidden;text-overflow:ellipsis;}
  .lib-fabric-row .nm{font-weight:400;}
  .lib-fabric-row .fb-dot{margin-left:8px;flex:none;width:7px;height:7px;border-radius:50%;background:#16a34a;
                          box-shadow:0 0 0 3px rgba(22,163,74,.15);display:none;}
  .lib-fabric-row.has-live .fb-dot{display:inline-block;}

  /* a 360 set folder — full-width rounded chip, click it to load. Smaller than the fabric folders above. */
  .lib-set{display:flex;align-items:center;gap:9px;margin:3px 0;padding:8px 11px;
           border:1px solid var(--line);border-radius:9px;background:#fafafa;cursor:pointer;
           font-size:11px;transition:border-color .15s,background .15s,box-shadow .15s;}
  .lib-set:hover{background:#f1f1ef;border-color:#cccbc4;}
  /* wrapper that puts a monospace tree-connector to the left of a set chip */
  .lib-setrow{display:flex;align-items:center;gap:0;margin:3px 0;}
  .lib-setrow .tw{color:#c4c4be;white-space:pre;flex:none;align-self:center;}
  .lib-setrow .lib-set{flex:1;min-width:0;margin:0;}
  .lib-set .ic{flex:none;display:inline-flex;}
  .lib-set .set-name{font-weight:400;font-size:11px;letter-spacing:.01em;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .lib-set .set-meta{margin-left:auto;flex:none;font-family:var(--sans);font-size:8.5px;letter-spacing:.14em;
                     text-transform:uppercase;color:var(--faint);}
  .lib-set .res-dot{flex:none;width:7px;height:7px;border-radius:50%;background:#d0d0ca;transition:background .15s,box-shadow .15s;}
  /* loaded state — monochrome card + green dot; meta text stays gray */
  .lib-set.live{background:#f3f3f1;border-color:#b6b6b0;box-shadow:0 0 0 1px #c4c4be;cursor:default;}
  .lib-set.live:hover{background:#f3f3f1;}
  .lib-set.live .res-dot{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.18);}
  .lib-set.live .set-name{color:var(--ink);}
  .lib-set.live .set-meta{color:var(--mute);}

  /* peek (show / hide frames) button — folder icon, no border box */
  .set-peek{flex:none;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
            border:0;border-radius:6px;background:none;color:#9a9a95;cursor:pointer;
            transition:background .15s,color .15s;}
  .set-peek:hover{background:rgba(0,0,0,.05);color:var(--ink);}
  .lib-set.open .set-peek{color:var(--ink);}

  /* frame list revealed by peek */
  .lib-frames{display:none;margin:0 0 6px 22px;padding:4px 0 6px;border-left:1px solid var(--line);}
  .lib-frames.open{display:block;}
  .lib-frame{display:flex;align-items:center;gap:8px;padding:4px 10px;border-radius:5px;cursor:pointer;
             font-size:11px;color:var(--faint);}
  .lib-frame:hover{background:#f5f5f3;color:var(--mute);}
  .lib-frame .ic{flex:none;display:inline-flex;opacity:.6;}
  .lib-empty{color:var(--mute);font-size:12px;text-align:center;padding:30px;font-family:var(--sans);}

  /* pin toggle on each set chip */
  .set-pin{flex:none;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
           border:0;border-radius:6px;background:none;color:#c4c4be;cursor:pointer;
           transition:background .15s,color .15s;}
  .set-pin:hover{background:rgba(0,0,0,.05);color:var(--ink);}
  .set-pin.pinned{color:var(--ink);}

  /* pinned · quick access (session only — cleared on refresh) */
  .lib-pinned{flex:none;margin:2px 0 10px;border:1px solid var(--line);border-radius:10px;
              background:#fff;padding:10px 12px 8px;max-height:30vh;overflow:auto;min-height:0;}
  .lib-pinned-title{font-family:var(--sans);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
                    color:var(--mute);padding-bottom:6px;border-bottom:1px solid var(--line);margin-bottom:4px;}
  .qa-row{display:flex;align-items:center;gap:9px;padding:6px 4px;border-radius:6px;cursor:pointer;
          font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;color:var(--mute);}
  .qa-row:hover{background:#f5f5f3;color:var(--ink);}
  .qa-row.live{color:var(--ink);cursor:default;}
  .qa-row .res-dot{flex:none;width:7px;height:7px;border-radius:50%;background:#d0d0ca;}
  .qa-row.live .res-dot{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.18);}
  .qa-row .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .qa-row .ctx{margin-left:auto;flex:none;font-family:var(--sans);font-size:8.5px;letter-spacing:.12em;
               text-transform:uppercase;color:var(--faint);max-width:38%;overflow:hidden;
               text-overflow:ellipsis;white-space:nowrap;}
  .qa-unpin{flex:none;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;
            border:0;border-radius:5px;background:none;color:#c4c4be;cursor:pointer;font-size:12px;line-height:1;
            transition:background .15s,color .15s;}
  .qa-unpin:hover{background:rgba(0,0,0,.06);color:var(--ink);}

  /* library footer — now just a status line + close */
  .lib-foot{padding-top:14px;border-top:1px solid var(--line);
            display:flex;align-items:center;justify-content:flex-end;gap:12px;}
  .lib-status{font-family:var(--sans);font-size:10px;letter-spacing:.04em;color:var(--mute);
              overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;}
  .lib-status b{color:#16a34a;font-weight:600;}
  .lib-actions{display:flex;gap:8px;justify-content:flex-end;flex:none;}
  .lib-btn{font:inherit;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:8px 16px;
           border-radius:7px;cursor:pointer;transition:background .2s,color .2s,border-color .2s,opacity .2s;}
  .lib-cancel{background:none;border:1px solid var(--line);color:var(--mute);}
  .lib-cancel:hover{color:var(--ink);border-color:var(--ink);}

  @keyframes rise{from{opacity:0;transform:translateY(9px);}to{opacity:1;transform:none;}}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}

  /* toast — slides in at the top-right when a set is loaded */
  .toast{position:fixed;right:28px;top:24px;bottom:auto;left:auto;transform:translateX(24px);
         background:var(--ink);color:#fff;font-family:var(--sans);font-size:11px;letter-spacing:.04em;
         padding:11px 16px;border-radius:10px;max-width:calc(100vw - 56px);text-align:left;
         display:flex;align-items:center;gap:9px;white-space:nowrap;
         pointer-events:none;opacity:0;transition:opacity .25s ease,transform .25s ease;z-index:200;
         box-shadow:0 8px 28px rgba(0,0,0,.22);}
  .toast.show{opacity:1;transform:translateX(0);}
  .toast .toast-lead{flex:none;font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:9px;color:#cfcfca;}
  .toast .toast-path{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:#fff;}

  /* brand logo (single embedded asset, reused in both screens) */
  .brand-logo{height:22px;aspect-ratio:1500/174;background:var(--logo) left center/contain no-repeat;}
  .gate-logo{height:30px;aspect-ratio:1500/174;background:var(--logo) center/contain no-repeat;margin:0 auto 8px;}

  /* password gate */
  .gate{position:fixed;inset:0;background:var(--bg);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;}
  .gate-card{width:min(90vw,360px);text-align:center;}
  .gate-title{font-family:var(--sans);font-size:24px;margin-bottom:6px;}
  .gate-sub{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin-bottom:24px;}
  .gate input{width:100%;font:inherit;font-size:14px;padding:12px 14px;border:1px solid var(--line);
              border-radius:10px;text-align:center;letter-spacing:.1em;outline:none;margin-bottom:12px;}
  .gate input:focus{border-color:var(--ink);}
  .gate .btn{width:100%;}
  .gate-err{margin-top:14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#c92a2a;opacity:0;transition:opacity .2s;}

  /* =====================  MOBILE  =====================
     Everything below only applies on narrow screens; the desktop layout
     above is left exactly as-is.                                          */
  @media (max-width:720px){
    .app{padding:14px;}
    .block{width:100%;padding-bottom:64px;}

    /* header: brand on top, nav row beneath, both centered */
    .top{flex-direction:column;align-items:center;gap:10px;padding-bottom:12px;text-align:center;}
    .brand{flex-direction:column;align-items:center;font-size:18px;}
    .brand i{display:block;margin-left:0;margin-top:6px;font-size:9px;}
    .actions{gap:22px;}
    .ctl{font-size:11px;}            /* a touch bigger = easier tap targets */

    /* stage: drop the big horizontal overhang so nothing bleeds off-screen,
       and use a square-ish area that fits the phone width */
    .stage{--stage-overhang:0px;width:100%;margin-left:0;margin-right:0;
           height:min(86vw,62vh);}

    /* bottom bar: smaller, tighter */
    .bottom{padding-top:12px;margin-top:14px;}
    .label{font-size:9px;letter-spacing:.12em;}
    .prog{margin:0 12px;}

    /* library becomes a full-width sheet */
    .library{width:100vw;max-width:100vw;padding:20px 16px 16px;}
    .lib-set{padding:9px 11px;}
    .lib-set .set-name{font-size:11px;}

    /* uploader + gate fit the screen */
    .up-card{width:92vw;}
    .up-title{font-size:15px;}
    .dropzone{padding:30px 16px;}
    .up-actions{flex-direction:column;}
    .btn{width:100%;}

    /* toast spans the top neatly instead of overflowing */
    .toast{right:12px;left:12px;top:12px;max-width:none;white-space:normal;font-size:10.5px;}
    .toast .toast-path{white-space:normal;word-break:break-word;}
  }

  /* very small phones — shave a little more */
  @media (max-width:380px){
    .actions{gap:16px;}
    .ctl{font-size:10px;letter-spacing:.12em;}
    .stage{height:min(92vw,58vh);}
  }

/* ============================================================================
   v3 ADDITIONS — hardened gate polish, viewer controls, fullscreen library,
   admin panel. Same editorial language: white, hairlines, serif accents.
   ========================================================================== */

/* ---- motion safety ---- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
}

/* ---- gate refinements ---- */
.gate.gate-out{opacity:0;transition:opacity .4s ease;}
.gate.shake .gate-card{animation:gwshake .4s ease;}
@keyframes gwshake{20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(2px)}}

/* ---- stage extras ---- */
.stage{aspect-ratio:1/1;height:auto;touch-action:none;}
.stage.zoomed{cursor:move;}
.stage img,.stage canvas{will-change:transform;}
.drag-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  display:flex;align-items:center;gap:9px;pointer-events:none;color:var(--mute);
  font-family:var(--sans);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  opacity:0;animation:hintIn .8s ease 1.2s forwards;}
.drag-hint svg{width:30px;height:16px;stroke:var(--mute);}
.drag-hint.gone{animation:none;opacity:0;transition:opacity .5s ease;}
@keyframes hintIn{to{opacity:1}}
.badge-360{position:absolute;top:14px;right:14px;font-family:var(--sans);font-size:9.5px;
  letter-spacing:.14em;color:var(--faint);border:1px solid var(--line);border-radius:999px;
  padding:4px 9px;pointer-events:none;background:rgba(255,255,255,.7);}
.fill-chip{position:absolute;top:14px;left:14px;font-family:var(--sans);font-size:9px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--mute);border:1px solid var(--line);
  border-radius:999px;padding:4px 9px;background:rgba(255,255,255,.75);
  opacity:0;transition:opacity .3s;pointer-events:none;}
.fill-chip.show{opacity:1;}
.ctl.on{color:var(--ink);border-bottom:1px solid var(--ink);}

/* pseudo-fullscreen (iPhone Safari has no element fullscreen) */
body.pseudo-full{overflow:hidden;}
body.pseudo-full .stage{position:fixed;inset:0;z-index:60;background:#fff;
  height:100vh;height:100dvh;aspect-ratio:auto;border:0;}
.stage:fullscreen{background:#fff;}

/* ---- spin controls (in the bottom bar) ---- */
.spin-controls{display:flex;align-items:center;gap:8px;flex:none;}
.spin-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);
  background:#fff;color:var(--mute);display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;padding:0;transition:color .2s,border-color .2s,background .2s;}
.spin-btn svg{width:10px;height:10px;fill:currentColor;}
.spin-btn:hover{color:var(--ink);border-color:#c9c8c1;}
.spin-btn.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.spin-btn:focus-visible{outline:1.5px solid var(--ink);outline-offset:2px;}

/* ============================================================================
   YSA — admin panel  (design matches the viewer: same tokens, same feel)
   ========================================================================== */

body.ysa-body{background:var(--bg);color:var(--ink);}
.ysa-page{min-height:100vh;display:flex;flex-direction:column;
  padding:22px 22px 0;max-width:1080px;margin:0 auto;}
.ysa-top{padding-top:2px;}
.ysa-main{flex:1;padding:32px 0 60px;display:flex;flex-direction:column;gap:22px;}
.ysa-bottom{max-width:1080px;margin:0 auto;padding:14px 22px 22px;width:calc(100% - 44px);
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--sans);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);
  border-top:1px solid var(--line);}
.ysa-bottom .num{color:var(--faint);}

.ysa-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 24px;
  animation:rise .5s ease both;}
.ysa-card + .ysa-card{margin-top:0;}
.ysa-h{font-family:var(--sans);font-size:18px;font-weight:400;margin:0 0 6px;letter-spacing:.005em;}
.ysa-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:2px;}
.ysa-card-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ysa-p{font-family:var(--sans);font-size:12.5px;color:var(--mute);line-height:1.8;margin:0 0 14px;}
.ysa-p-sub{margin:6px 0 18px;}
.ysa-p b{color:var(--ink);font-weight:600;}
.ysa-p code{font-size:11.5px;background:#f4f4f2;border:1px solid var(--line);border-radius:4px;padding:1px 6px;}
.ysa-hint{font-family:var(--sans);font-size:11px;color:var(--faint);line-height:1.75;margin:10px 0 0;}
.ysa-hint b{color:var(--mute);}

/* form field */
.ysa-fld{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.ysa-fld label{font-family:var(--sans);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);}
.ysa-fld input,.ysa-fld select{font-family:var(--sans);font-size:13px;color:var(--ink);
  border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;outline:none;
  transition:border-color .2s;}
.ysa-fld input:focus,.ysa-fld select:focus{border-color:var(--ink);}
.ysa-fld-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px 14px;}
@media (max-width:720px){.ysa-fld-row{grid-template-columns:1fr;}}

/* buttons */
.ysa-btn{font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  background:none;border:1px solid var(--line);color:var(--ink);border-radius:999px;
  padding:10px 20px;cursor:pointer;transition:background .18s,color .18s,border-color .18s,opacity .18s;}
.ysa-btn:hover{border-color:var(--ink);}
.ysa-btn:disabled{opacity:.35;cursor:default;border-color:var(--line);}
.ysa-btn-primary{background:var(--ink);color:#fff;border-color:var(--ink);}
.ysa-btn-primary:hover{opacity:.86;border-color:var(--ink);}
.ysa-btn-primary:disabled{background:#c9c8c1;border-color:#c9c8c1;color:#fff;}
.ysa-btn-ghost{color:var(--mute);border-color:var(--line);}
.ysa-btn-ghost:hover{color:var(--ink);}
.ysa-btn-danger{color:#8d3b3b;border-color:#dcc6c6;}
.ysa-btn-danger:hover{background:#faf3f3;border-color:#c99d9d;color:#8d3b3b;}
.ysa-btn-primary.ysa-btn-danger{background:#8d3b3b;color:#fff;border-color:#8d3b3b;}
.ysa-btn-mini{padding:6px 12px;font-size:9px;}

/* login card */
.ysa-login{max-width:400px;margin:8vh auto 0;}
.ysa-login .ysa-btn{margin-top:6px;}

/* messages */
.ysa-msg{font-family:var(--sans);font-size:11px;color:var(--mute);margin:0;min-height:16px;line-height:1.7;}
.ysa-msg-err{color:#8d3b3b;}
.ysa-msg-ok{color:#2f7a4f;}

/* storage indicator */
.ysa-usage{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;
  animation:rise .5s ease both;}
.ysa-usage-row{display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--sans);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);}
.ysa-usage-label{color:var(--ink);font-weight:600;}
.ysa-usage-num{color:var(--ink);letter-spacing:.06em;text-transform:none;font-size:12px;}
.ysa-usage-track{height:4px;background:var(--line);border-radius:99px;overflow:hidden;margin:9px 0 8px;}
.ysa-usage-track i{display:block;height:100%;width:0;background:var(--ink);border-radius:99px;transition:width .3s ease;}
.ysa-usage-track i.warn{background:#c69028;}
.ysa-usage-track i.crit{background:#8d3b3b;}
.ysa-usage-meta{font-size:9.5px;letter-spacing:.14em;color:var(--faint);}

/* dropzone */
.ysa-drop{border:1.5px dashed var(--faint);border-radius:14px;padding:44px 24px;text-align:center;
  cursor:pointer;transition:border-color .2s,background .2s;background:#fdfdfc;}
.ysa-drop:hover,.ysa-drop.over{border-color:var(--ink);background:#faf9f6;}
.ysa-drop-icon{color:var(--faint);margin-bottom:12px;transition:color .2s;}
.ysa-drop:hover .ysa-drop-icon,.ysa-drop.over .ysa-drop-icon{color:var(--ink);}
.ysa-drop-lead{font-family:var(--sans);font-size:15.5px;color:var(--ink);margin-bottom:6px;}
.ysa-drop-sub{font-family:var(--sans);font-size:11.5px;color:var(--mute);line-height:1.7;}
.ysa-drop-sub b{color:var(--ink);font-weight:600;}
.ysa-drop-actions{text-align:center;margin-top:10px;}

/* detected plan */
.ysa-plan{margin-top:18px;border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:#fbfbfa;}
.ysa-plan-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:12px;}
.ysa-plan-title{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);}
.ysa-plan-body{font-family:var(--sans);font-size:12px;color:var(--ink);max-height:280px;overflow:auto;padding-right:4px;}
.ysa-plan-col{margin-top:8px;color:var(--ink);}
.ysa-plan-col:first-child{margin-top:0;}
.ysa-plan-caret{color:var(--faint);}
.ysa-plan-prod{margin-left:16px;color:var(--mute);padding:4px 0;font-size:11.5px;}
.ysa-plan-var{margin-left:32px;padding:5px 8px;display:flex;align-items:baseline;gap:10px;
  border-radius:6px;font-size:11.5px;}
.ysa-plan-var:hover{background:rgba(0,0,0,.02);}
.ysa-plan-var-name{color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ysa-plan-var-meta{font-size:10px;letter-spacing:.06em;color:var(--faint);flex:none;}
.ysa-plan-var-meta em{color:#2f7a4f;font-style:normal;}
.ysa-plan-var-warn{flex:none;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#8d3b3b;}
.ysa-plan-var.incomplete{background:rgba(141,59,59,.04);}

/* overrides */
.ysa-overrides{margin-top:14px;padding:14px 16px;background:#fbfbfa;border:1px solid var(--line);border-radius:10px;}
.ysa-overrides .ysa-hint{margin:0 0 10px;color:var(--mute);}

/* options (radio groups) */
.ysa-opts{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:720px){.ysa-opts{grid-template-columns:1fr;}}
.ysa-opt{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff;}
.ysa-opt-label{font-family:var(--sans);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--mute);margin-bottom:8px;}
.ysa-opt-choices{display:flex;flex-direction:column;gap:4px;}
.ysa-radio{display:flex;align-items:baseline;gap:9px;font-family:var(--sans);font-size:12px;color:var(--ink);
  cursor:pointer;padding:4px 0;}
.ysa-radio input{margin:0;accent-color:var(--ink);}
.ysa-radio em{font-style:normal;color:var(--faint);font-size:10.5px;letter-spacing:.02em;}
.ysa-radio:hover em{color:var(--mute);}

/* progress dashboard */
.ysa-progress{margin-top:18px;border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:#fbfbfa;}
.ysa-progress-head{display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--sans);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);}
.ysa-progress-title{color:var(--ink);}
.ysa-progress-track{height:4px;background:var(--line);border-radius:99px;overflow:hidden;margin:8px 0 12px;}
.ysa-progress-track i{display:block;height:100%;width:0;background:var(--ink);border-radius:99px;transition:width .2s;}
.ysa-progress-list{display:flex;flex-direction:column;gap:5px;max-height:280px;overflow:auto;padding-right:4px;}
.ysa-prog-row{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-size:11.5px;color:var(--ink);}
.ysa-prog-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ysa-prog-bar{flex:none;width:120px;height:3px;background:var(--line);border-radius:99px;overflow:hidden;}
.ysa-prog-bar i{display:block;height:100%;width:0;background:var(--ink);transition:width .2s;}
.ysa-prog-row.done .ysa-prog-bar i{background:#2f7a4f;}
.ysa-prog-row.err{color:#8d3b3b;}
.ysa-prog-row.err .ysa-prog-bar i{background:#8d3b3b;}
.ysa-prog-count{flex:none;font-size:10px;letter-spacing:.06em;color:var(--mute);min-width:70px;text-align:right;}

.ysa-actions-row{margin-top:16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}

/* cloud tree */
.ysa-search{font-family:var(--sans);font-size:12px;color:var(--ink);
  border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 12px;width:200px;outline:none;
  transition:border-color .2s;}
.ysa-search:focus{border-color:var(--ink);}
.ysa-tree{font-family:var(--sans);font-size:12.5px;margin-top:6px;}
.ysa-tree-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line);}
.ysa-tree-row:last-child{border-bottom:0;}
.ysa-tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);}
.ysa-tree-meta{flex:none;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);}
.ysa-tree-col .ysa-tree-name{font-family:var(--sans);font-size:14px;}
.ysa-tree-prod{padding-left:24px;background:linear-gradient(90deg,#fafaf8 0,#fff 100%);}
.ysa-tree-prod .ysa-tree-name{font-weight:600;}
.ysa-tree-set{padding-left:48px;}
.ysa-tree-set .ysa-tree-name{color:var(--mute);}

.ysa-pill{font-family:var(--sans);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:3px 9px;background:#fff;}
.ysa-pill-def{color:#2f7a4f;border-color:#cfe3d4;background:#f4faf6;}

.ysa-empty{padding:24px 6px;color:var(--mute);font-family:var(--sans);font-size:12px;text-align:center;}

/* modal */
.ysa-modal{position:fixed;inset:0;background:rgba(26,26,24,.32);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;z-index:100;animation:fadein .18s ease;padding:22px;}
.ysa-modal[hidden]{display:none;}
body.ysa-modal-open{overflow:hidden;}
@keyframes fadein{from{opacity:0;}to{opacity:1;}}
.ysa-modal-card{background:#fff;border-radius:14px;padding:26px 28px 22px;max-width:480px;width:100%;
  box-shadow:0 20px 60px -20px rgba(26,26,24,.4);animation:rise .3s cubic-bezier(.22,.8,.3,1);}
.ysa-modal-title{font-family:var(--sans);font-size:19px;font-weight:400;margin:0 0 12px;}
.ysa-modal-body{font-family:var(--sans);font-size:13px;color:var(--ink);line-height:1.75;margin-bottom:20px;}
.ysa-modal-body p{margin:0 0 8px;}
.ysa-modal-body p:last-child{margin-bottom:0;}
.ysa-modal-body code{font-size:11.5px;background:#f4f4f2;border:1px solid var(--line);border-radius:4px;padding:2px 7px;
  display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;}
.ysa-modal-warn{color:#8d3b3b;font-size:11.5px;}
.ysa-modal-hint{color:var(--mute);font-size:12px;}
.ysa-modal-actions{display:flex;justify-content:flex-end;gap:10px;}

/* toast notifications */
.ysa-toast-wrap{position:fixed;top:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none;}
.ysa-toast{font-family:var(--sans);font-size:12.5px;padding:10px 18px;border-radius:10px;
  background:#fff;color:var(--ink);border:1px solid var(--line);
  box-shadow:0 8px 30px -10px rgba(26,26,24,.25);pointer-events:auto;
  animation:toastIn .3s cubic-bezier(.22,.8,.3,1);}
.ysa-toast-ok{border-color:#cfe3d4;background:#f4faf6;color:#2f7a4f;}
.ysa-toast-err{border-color:#e8cece;background:#fdf5f5;color:#8d3b3b;}
.ysa-toast.fade-out{animation:toastOut .25s ease forwards;}
@keyframes toastIn{from{opacity:0;transform:translateX(40px);}to{opacity:1;transform:translateX(0);}}
@keyframes toastOut{from{opacity:1;transform:translateX(0);}to{opacity:0;transform:translateX(40px);}}

/* set-default highlight */
.ysa-tree-set.is-default{background:#f4faf6;}
.ysa-tree-set.flash{animation:flashDefault .6s ease;}
@keyframes flashDefault{0%{background:#d9f0e0;}100%{background:#f4faf6;}}
