/* Generado por `manage.py sync_design` desde docs/design/assets/prototypes/lib/bundle.css. No editar a mano. */
/* HANGAR — component styles. Every value comes from tokens.css; class names are shared by the Django partials and the React islands. */
.hg-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.hg-col{display:flex;flex-direction:column;gap:var(--space-3)}
.hg-i{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.hg-num{font-family:var(--font-ui);font-variant-numeric:tabular-nums}
.hg-label{font:500 12px/16px var(--font-ui);color:var(--ink-2)}
/* Foco. Especificidad 0,2,0: gana a los all:unset de los componentes (un :where() pierde y deja outline-style:none). */
.hg-btn:focus-visible,.hg-tab:focus-visible,.hg-nav:focus-visible,.hg-switcher:focus-visible,.hg-swatch:focus-visible,.hg-field:focus-within{outline:2px solid var(--focus);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Button */
.hg-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:36px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--bg-panel);color:var(--neutral-text);font:500 14px/1 var(--font-ui);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast)}
.hg-btn:hover{background:var(--bg-sunken)}
.hg-btn--sm{height:28px;padding:0 10px;font-size:12px}
.hg-btn--lg{height:40px;padding:0 18px;font-size:14px;font-weight:600}
.hg-btn--primary{background:var(--cta);color:var(--cta-ink);border-color:var(--cta)}
.hg-btn--primary:hover{background:var(--cta-hover);border-color:var(--cta-hover)}
.hg-btn--ghost{background:transparent;border-color:transparent}
.hg-btn--danger{color:var(--err-text)}
.hg-btn[disabled],.hg-btn[aria-disabled="true"]{color:var(--ink-3);border-color:var(--line);background:var(--bg-sunken);cursor:not-allowed;opacity:1}
.hg-btn--primary[disabled]{background:var(--bg-sunken);color:var(--ink-3);border-color:var(--line)}
.hg-btn .hg-spin{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:hg-spin .8s linear infinite}
@keyframes hg-spin{to{transform:rotate(360deg)}}

/* Badge */
.hg-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px;border-radius:var(--radius-full);font:500 12px/1 var(--font-ui);white-space:nowrap;border:1px solid transparent}
.hg-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.hg-badge--neutral{background:var(--badge-neutral-bg);color:var(--badge-neutral-ink);border-color:var(--line)}
.hg-badge--info{background:var(--badge-info-bg);color:var(--badge-info-ink)}
.hg-badge--warning{background:var(--badge-warning-bg);color:var(--badge-warning-ink)}
.hg-badge--success{background:var(--badge-success-bg);color:var(--badge-success-ink)}
.hg-badge--danger{background:var(--badge-danger-bg);color:var(--badge-danger-ink)}
.hg-badge--inactive{background:var(--badge-inactive-bg);color:var(--badge-inactive-ink);border-color:var(--line-strong)}
.hg-badge--inactive::before{background:transparent;border:1.5px solid currentColor;width:5px;height:5px}

/* DPI pill */
.hg-dpi{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px 0 7px;border-radius:var(--radius-sm);background:var(--bg-sunken);border:1px solid var(--line);font:500 11.5px/1 var(--font-ui);color:var(--ink);white-space:nowrap}
.hg-dpi__bars{display:inline-flex;gap:2px}
.hg-dpi__bars i{width:4px;height:10px;border-radius:1px;background:var(--line-strong)}
.hg-dpi--excellent .hg-dpi__bars i{background:var(--ok)}
.hg-dpi--acceptable .hg-dpi__bars i:nth-child(-n+2){background:var(--ink-2)}
.hg-dpi--low{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn-text)}
.hg-dpi--low .hg-dpi__bars i:first-child{background:var(--warn)}

/* Estimated / official tag */
.hg-vtag{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:var(--radius-sm);font:600 10.5px/1 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.hg-vtag--estimate{border:1px dashed var(--line-strong);color:var(--ink-2);font-weight:500}
.hg-vtag--official{border:1px solid var(--ok-text);color:var(--ok-text)}
.hg-vtag .hg-i{width:12px;height:12px}

/* Price matrix cell */
.hg-pcell{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px;padding:6px 8px;min-width:76px;border-radius:var(--radius-sm);border:1px solid transparent}
.hg-pcell__price{font:600 12.5px/1.2 var(--font-ui);color:var(--ink)}
.hg-pcell__meta{font:400 10.5px/1.2 var(--font-ui);color:var(--ink-2);white-space:nowrap}
.hg-pcell--low{background:var(--err-soft);border-color:var(--err)}
.hg-pcell--low .hg-pcell__meta{color:var(--err-text);font-weight:500}
.hg-pcell--estimate .hg-pcell__price::before{content:"≈ ";color:var(--ink-2);font-weight:400}

/* Garment swatch */
.hg-swatch{position:relative;width:28px;height:28px;border-radius:var(--radius-round);border:1px solid var(--swatch-ring);padding:0;cursor:pointer;background:var(--sw)}
.hg-swatch[aria-pressed="true"]::after{content:"";position:absolute;inset:-5px;border-radius:var(--radius-round);border:2px solid var(--accent-text)}
.hg-swatch--off{opacity:.35}
.hg-swatch__wb{position:absolute;right:-3px;bottom:-3px;width:11px;height:11px;border-radius:var(--radius-round);background:var(--nav-ink-active);border:1.5px solid var(--bg-panel)}

/* Number field with unit */
.hg-field{box-sizing:border-box;display:inline-flex;align-items:center;height:30px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg-field);padding:0 8px;gap:6px;min-width:120px}
.hg-field__k{color:var(--ink-2);font-size:11px;min-width:14px;white-space:nowrap}
.hg-field input{all:unset;flex:1;min-width:0;font:500 12.5px/1 var(--font-ui);color:var(--ink);text-align:left}
.hg-field__u{color:var(--ink-2);font:400 11px/1 var(--font-ui)}
.hg-field--error{border-color:var(--err)}
.hg-field-wrap{display:inline-flex;flex-direction:column;gap:4px}
.hg-field-msg{font-size:12px;color:var(--err-text);display:flex;gap:4px;align-items:center}
.hg-field-msg .hg-i{width:13px;height:13px}

/* Autosave */
.hg-autosave{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2)}
.hg-autosave--saved .hg-i{color:var(--ok-text)}
.hg-autosave--error{color:var(--err-text)}
.hg-autosave--conflict{color:var(--warn-text)}
.hg-autosave button{all:unset;cursor:pointer;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.hg-autosave button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* Banner */
.hg-banner{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:var(--radius-md);font-size:13px;border:1px solid;color:var(--ink)}
.hg-banner .hg-i{margin-top:1px}
.hg-banner__body{flex:1}
.hg-banner__title{font-weight:600}
.hg-banner a{color:var(--ink);font-weight:500;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.hg-banner--info{background:var(--info-soft);border-color:var(--info-soft)}.hg-banner--info .hg-i{color:var(--info-text)}
.hg-banner--warning{background:var(--warn-soft);border-color:var(--warn-line)}.hg-banner--warning .hg-i{color:var(--warn-text)}
.hg-banner--error{background:var(--err-soft);border-color:var(--err)}.hg-banner--error .hg-i{color:var(--err-text)}
.hg-banner--success{background:var(--ok-soft);border-color:var(--ok-soft)}.hg-banner--success .hg-i{color:var(--ok-text)}

/* Tabs (segmented) */
.hg-tabs{display:inline-flex;gap:2px;padding:2px;background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius-md)}
.hg-tab{all:unset;box-sizing:border-box;height:26px;padding:0 10px;display:inline-flex;align-items:center;gap:5px;border-radius:3px;font:500 12px/1 var(--font-ui);color:var(--ink-2);cursor:pointer}
.hg-tab[aria-selected="true"]{background:var(--bg-panel);color:var(--accent-text);box-shadow:inset 0 -2px 0 var(--accent-text),0 0 0 1px var(--line-strong)}

/* Nav item — fondo claro por defecto (drawer móvil, /menu/); en el sidebar navy, los tokens nav-* */
.hg-nav{all:unset;box-sizing:border-box;position:relative;width:100%;height:40px;display:flex;align-items:center;gap:10px;padding:0 10px;border-radius:var(--radius-md);color:var(--ink-2);font:500 14px/1 var(--font-ui);cursor:pointer}
.hg-nav .hg-i{width:20px;height:20px;stroke-width:1.5}
.hg-nav:hover{background:var(--bg-sunken);color:var(--ink)}
.hg-nav[aria-current="page"]{background:var(--accent-soft);color:var(--accent-text);box-shadow:inset 3px 0 0 var(--accent-text)}
.hg-nav__count{margin-left:auto;font:500 11px/1 var(--font-ui);padding:3px 6px;border-radius:var(--radius-full);background:var(--neutral-soft);color:var(--neutral-text)}
.hg-nav[aria-current="page"] .hg-nav__count{background:var(--accent-fill);color:var(--accent-on)}
.hg-shell__nav .hg-nav{color:var(--nav-ink)}
.hg-shell__nav .hg-nav:hover{background:var(--nav-hover-bg);color:var(--nav-ink-active)}
.hg-shell__nav .hg-nav[aria-current="page"]{background:var(--nav-active-bg);color:var(--nav-ink-active);box-shadow:none}
.hg-shell__nav .hg-nav[aria-current="page"]::before{content:"";position:absolute;left:-12px;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0;background:var(--nav-indicator)}
.hg-shell__nav .hg-nav__count{background:var(--nav-active-bg);color:var(--nav-ink-active)}
.hg-shell__nav .hg-nav[aria-current="page"] .hg-nav__count{background:var(--nav-indicator);color:var(--bg-nav)}
.hg-shell__nav :focus-visible{outline-color:var(--nav-focus)}
.hg-shell__nav .hg-nav:focus-visible{outline-offset:-2px}

/* Store / mode switcher */
.hg-switcher{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-panel);cursor:pointer}
.hg-switcher__mark{width:28px;height:28px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;font:700 11px/1 var(--font-ui);flex:none;background:var(--bg-sunken);color:var(--ink);border:1px solid var(--line)}
.hg-switcher--staff .hg-switcher__mark{background:var(--nav-ink-active);color:var(--brand-navy);border-color:transparent}
.hg-switcher__k{font:500 10.5px/14px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.hg-switcher__v{font:600 12.5px/16px var(--font-ui);color:var(--ink)}
.hg-switcher .hg-i{margin-left:auto;color:var(--ink-2)}
.hg-shell__nav .hg-switcher{background:var(--nav-active-bg);border-color:var(--nav-line)}
.hg-shell__nav .hg-switcher__k{color:var(--nav-ink)}
.hg-shell__nav .hg-switcher__v{color:var(--nav-ink-active)}
.hg-shell__nav .hg-switcher .hg-i{color:var(--nav-ink)}
.hg-shell__nav .hg-switcher .hg-switcher__mark{background:var(--nav-ink-active);color:var(--brand-navy);border-color:transparent}
.hg-switcher__mark .hg-brand{color:inherit}
.hg-switcher--staff .hg-switcher__mark .hg-brand{color:var(--brand-logo)}
.hg-switcher__mark .hg-brand--mark svg{height:11px}
.hg-shell__mk .hg-brand--mark svg{height:8px}

/* Brand: logo de HANGAR (wordmark o isotipo) en currentColor. Nunca texto. */
.hg-brand{display:inline-flex;align-items:center;color:var(--logo-ink)}
.hg-brand svg{display:block;height:19px;width:auto}
.hg-brand--mark svg{height:22px}

/* ---- Forms ---- */
.hg-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hg-grow{flex:1}
.hg-fld{display:flex;flex-direction:column;gap:6px;min-width:240px}
.hg-fld__label{font:500 12.5px/16px var(--font-ui);color:var(--ink)}
.hg-fld__opt{color:var(--ink-2);font-weight:400}
.hg-fld__hint{font-size:12px;line-height:16px;color:var(--ink-2)}
.hg-input{box-sizing:border-box;width:100%;height:36px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--bg-field);color:var(--ink);font:400 14px/20px var(--font-ui);transition:border-color var(--duration-fast)}
.hg-input::placeholder{color:var(--ink-2)}
.hg-input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hg-input:disabled{background:var(--bg-sunken);color:var(--ink-3);border-color:var(--line)}
.hg-textarea{height:auto;padding:8px 10px;resize:vertical;min-height:72px}
.hg-fld--error .hg-input{border-color:var(--err)}
.hg-select{position:relative;display:block}
.hg-select select{appearance:none;padding-right:32px}
.hg-select .hg-i{position:absolute;right:10px;top:9px;pointer-events:none;color:var(--ink-2)}
.hg-check,.hg-radio,.hg-switch{position:relative;display:inline-flex;align-items:flex-start;gap:8px;font-size:13px;line-height:18px;color:var(--ink);cursor:pointer}
.hg-check input,.hg-radio input,.hg-switch input{position:absolute;opacity:0;width:18px;height:18px;margin:0}
.hg-check__box{width:16px;height:16px;margin-top:1px;flex:none;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg-field);display:inline-flex;align-items:center;justify-content:center;color:transparent}
.hg-check__box .hg-i{width:12px;height:12px;stroke-width:3}
.hg-check input:checked+.hg-check__box{background:var(--cta);border-color:var(--cta);color:var(--cta-ink)}
.hg-check input:indeterminate+.hg-check__box{background:var(--cta);border-color:var(--cta)}
.hg-check input:indeterminate+.hg-check__box::after{content:"";width:8px;height:2px;background:var(--cta-ink);position:absolute}
.hg-check input:indeterminate+.hg-check__box .hg-i{display:none}
.hg-radio__dot{width:16px;height:16px;margin-top:1px;flex:none;border:1px solid var(--line-strong);border-radius:50%;background:var(--bg-field);display:inline-flex;align-items:center;justify-content:center}
.hg-radio input:checked+.hg-radio__dot{border:5px solid var(--cta)}
.hg-radio__desc{display:block;color:var(--ink-2);font-size:12px}
.hg-switch__track{width:30px;height:18px;flex:none;border-radius:9px;background:var(--line-strong);position:relative;transition:background var(--duration-fast)}
.hg-switch__thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--bg-panel);transition:transform var(--duration-fast) var(--ease-standard)}
.hg-switch input:checked+.hg-switch__track{background:var(--cta)}
.hg-switch input:checked+.hg-switch__track .hg-switch__thumb{transform:translateX(12px);background:var(--cta-ink)}
.hg-check input:focus-visible+span,.hg-radio input:focus-visible+span,.hg-switch input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.is-disabled{color:var(--ink-3);cursor:not-allowed}
.is-disabled .hg-check__box,.is-disabled .hg-radio__dot,.is-disabled .hg-switch__track{background:var(--bg-sunken);border-color:var(--line)}

/* ---- Upload ---- */
.hg-upload{width:100%;max-width:520px}
.hg-upload__drop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px 16px;border:1.5px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--bg-panel);color:var(--ink-2);cursor:pointer;text-align:center}
.hg-upload__drop:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.hg-upload__drop .hg-i{width:20px;height:20px}
.hg-upload__title{font-weight:500;color:var(--ink)}
.hg-upload__title u{color:var(--accent-text);text-underline-offset:2px}
.hg-upload--dragover .hg-upload__drop{border-color:var(--accent-text);border-style:solid;background:var(--accent-soft)}
.hg-upload__file{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-panel)}
.hg-upload--error .hg-upload__file{border-color:var(--err)}
.hg-upload__thumb{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--bg-sunken);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);flex:none}
.hg-upload__meta{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.hg-upload__name{display:flex;gap:8px;font-weight:500}
.hg-upload__size{color:var(--ink-2);font-weight:400;font-size:11.5px}
.hg-progress{height:6px;border-radius:var(--radius-full);background:var(--line);overflow:hidden}
.hg-progress i{display:block;height:100%;background:var(--cta);transition:width var(--duration-base)}
.hg-icon-btn{all:unset;box-sizing:border-box;width:28px;height:28px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);cursor:pointer;flex:none}
.hg-icon-btn:hover{background:var(--bg-sunken);color:var(--ink)}
.hg-icon-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hg-icon-btn:disabled,.hg-icon-btn[aria-disabled="true"]{color:var(--ink-3);cursor:not-allowed;background:transparent}

/* ---- Table ---- */
.hg-table-wrap{border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);background:var(--bg-panel);overflow:auto}
.hg-table{width:100%;border-collapse:collapse;font-size:14px}
.hg-table th{font:500 12px/16px var(--font-ui);color:var(--ink-2);text-align:left;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--bg-sunken);white-space:nowrap}
.hg-table td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.hg-table tr:last-child td{border-bottom:0}
.hg-table .is-num{text-align:right;font-family:var(--font-ui);font-variant-numeric:tabular-nums}
.hg-table tbody tr:hover{background:var(--bg-page)}
.hg-table tr.is-selected{background:var(--accent-soft)}
.hg-table__sel{width:32px}
.hg-table__exp{width:36px;text-align:right}
.hg-table tr.is-open .hg-table__exp .hg-i{transform:rotate(180deg);color:var(--accent-text)}
.hg-table__detail td{background:var(--bg-page);padding:12px 16px 16px 44px;color:var(--ink-2)}
.hg-th-sort{all:unset;display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.hg-th-sort:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hg-th-sort .hg-i{width:12px;height:12px}
.hg-th-sort.is-sorted{color:var(--accent-text)}

/* ---- Card ---- */
.hg-card{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}
.hg-card__h{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 16px;border-bottom:1px solid var(--line)}
.hg-card__t{margin:0;font:600 16px/22px var(--font-ui)}
.hg-card__meta{font-size:12px;color:var(--ink-2)}
.hg-card__b{padding:16px}
.hg-card__b.is-flush{padding:0}
.hg-card__b.is-flush > .hg-table-wrap{border:0;border-radius:0;box-shadow:none}

/* ---- Overlays ---- */
.hg-overlay{position:fixed;inset:0;z-index:var(--z-modal);background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;padding:24px}
.hg-overlay.is-inline{position:relative;inset:auto;min-height:100%;border-radius:var(--radius-lg)}
.hg-overlay--drawer{justify-content:flex-end;align-items:stretch;padding:0;z-index:var(--z-drawer)}
.hg-modal{width:100%;max-width:480px;background:var(--bg-raised);color:var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);display:flex;flex-direction:column}
.hg-modal__h{display:flex;align-items:center;gap:8px;padding:14px 12px 10px 20px}
.hg-modal__t{margin:0;flex:1;font:600 16px/22px var(--font-ui)}
.hg-modal__b{padding:4px 20px 16px;display:flex;flex-direction:column;gap:12px;color:var(--ink)}
.hg-modal__f{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--line)}
.hg-drawer{width:420px;max-width:100%;background:var(--bg-raised);box-shadow:var(--shadow-modal);display:flex;flex-direction:column}
.hg-drawer__b{flex:1;overflow:auto;padding:4px 20px 16px;display:flex;flex-direction:column;gap:12px}

/* ---- Toast ---- */
.hg-toast{display:flex;align-items:center;gap:10px;min-width:320px;max-width:440px;padding:10px 8px 10px 14px;border-radius:var(--radius-md);background:var(--toast-bg);color:var(--toast-ink);box-shadow:var(--shadow-pop);font-size:13px}
.hg-toast .hg-icon-btn{color:var(--toast-ink)}
.hg-toast:not(.hg-toast--error) :focus-visible{outline-color:var(--nav-focus)}
.hg-toast .hg-icon-btn:hover{background:transparent;opacity:.75}
.hg-toast--success>.hg-i{color:var(--toast-ok)}
.hg-toast--error{background:var(--err-soft);color:var(--err-text);border:1px solid var(--err)}
.hg-toast--error .hg-icon-btn{color:var(--err-text)}
.hg-toast a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* ---- Empty / skeleton ---- */
.hg-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:40px 24px;max-width:420px;margin:0 auto}
.hg-empty__mark{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:6px;border-radius:var(--radius-round);background:var(--neutral-soft);color:var(--ink-2)}
.hg-empty__mark .hg-i{width:22px;height:22px}
.hg-empty__t{margin:0;font:600 16px/22px var(--font-ui)}
.hg-empty__d{margin:0;color:var(--ink-2);font-size:13px;line-height:19px}
.hg-empty__a{margin-top:10px;display:flex;gap:8px}
.hg-skel{display:flex;gap:12px;align-items:flex-start}
.hg-skel__lines{flex:1;display:flex;flex-direction:column;gap:8px}
.hg-skel__b{display:block;height:12px;border-radius:var(--radius-sm);background:var(--bg-sunken);background-image:linear-gradient(90deg,transparent,var(--line),transparent);background-size:200% 100%;animation:hg-shimmer 1.4s ease-in-out infinite}
.hg-skel__media{width:56px;height:56px;flex:none}
@keyframes hg-shimmer{from{background-position:100% 0}to{background-position:-100% 0}}

/* ---- Pagination / breadcrumbs ---- */
.hg-pager{display:flex;align-items:center;gap:4px;font-size:12.5px}
.hg-pager__info{color:var(--ink-2);margin-right:8px;font-size:12px}
.hg-pager__n{all:unset;box-sizing:border-box;min-width:28px;height:28px;padding:0 6px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);font-size:12px}
.hg-pager__n:hover{background:var(--bg-sunken)}
.hg-pager__n:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hg-pager__n[aria-current="page"]{background:var(--accent-fill);color:var(--accent-on);font-weight:600}
.hg-pager__gap{color:var(--ink-2);padding:0 4px}
.hg-crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px}
.hg-crumbs li{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}
.hg-crumbs a{color:var(--ink-2);text-decoration:none}
.hg-crumbs a:hover{color:var(--ink);text-decoration:underline}
.hg-crumbs [aria-current="page"]{color:var(--accent-text);font-weight:500}
.hg-crumbs .hg-i{width:12px;height:12px}

/* ---- Menu / tooltip / avatar ---- */
.hg-dd{position:relative;display:inline-block}
.hg-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:var(--z-dropdown);min-width:220px;padding:4px;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}
.hg-menu__it{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:10px;height:32px;padding:0 10px;border-radius:var(--radius-md);font-size:13px;color:var(--ink);cursor:pointer}
.hg-menu__it:hover,.hg-menu__it:focus-visible{background:var(--bg-sunken)}
.hg-menu__it:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.hg-menu__it .hg-i{color:var(--ink-2)}
.hg-menu__it.is-active .hg-i{color:var(--accent-text)}
.hg-menu__it.is-danger{color:var(--err-text)}
.hg-menu__it.is-danger .hg-i{color:var(--err-text)}
.hg-menu__it:disabled{color:var(--ink-3);cursor:not-allowed}
.hg-menu__hint{font:400 11px/1 var(--font-ui);color:var(--ink-2)}
.hg-menu__sep{height:1px;background:var(--line);margin:4px 2px}
.hg-tip{position:relative;display:inline-flex}
.hg-tip__b{position:absolute;z-index:var(--z-tooltip);left:50%;transform:translateX(-50%);bottom:calc(100% + 8px);max-width:240px;width:max-content;padding:6px 9px;border-radius:var(--radius-sm);background:var(--cta);color:var(--cta-ink);font-size:12px;line-height:16px;box-shadow:var(--shadow-pop)}
.hg-tip__b--bottom{bottom:auto;top:calc(100% + 8px)}
.hg-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-sunken);border:1px solid var(--line);color:var(--ink);font:600 11px/1 var(--font-ui);overflow:hidden;flex:none}
.hg-avatar img{width:100%;height:100%;object-fit:cover}
.hg-avatar--sm{width:24px;height:24px;font-size:10px}
.hg-avatar--md{width:32px;height:32px}
.hg-avatar--lg{width:44px;height:44px;font-size:14px}
.hg-avatar.is-square{border-radius:var(--radius-sm)}

/* ---- App shell ---- */
.hg-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100%;background:var(--bg-page);color:var(--ink)}
.hg-shell__nav{position:sticky;top:0;height:100vh;height:100dvh;box-sizing:border-box;align-self:start;display:flex;flex-direction:column;gap:12px;padding:16px 12px 12px;background:var(--bg-nav);border-right:0;color:var(--nav-ink)}
.hg-shell__brand{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 8px 4px}
.hg-shell__home{display:inline-flex;align-items:center;border-radius:var(--radius-sm);color:inherit}
.hg-shell__home:focus-visible{outline:2px solid var(--nav-focus);outline-offset:2px}
.hg-shell__brand .hg-brand{color:var(--nav-ink-active)}
.hg-shell__modetag{font:600 10.5px/1 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;padding:4px 6px;border-radius:var(--radius-sm);background:var(--brand-aero);color:var(--cta-ink);border:0}
.hg-shell__sw{position:relative}
.hg-shell__groups{display:flex;flex-direction:column;gap:14px;flex:1}
.hg-shell__nav .hg-shell__groups{min-height:0;overflow-y:auto;margin:0 -12px;padding:0 12px}
.hg-shell__group{display:flex;flex-direction:column;gap:2px}
.hg-shell__gl{font:500 10.5px/14px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding:0 10px 4px}
.hg-shell__ro{margin-left:6px;vertical-align:-1px;display:inline-flex;color:var(--ink-2)}
.hg-shell__nav .hg-shell__gl,.hg-shell__nav .hg-shell__ro{color:var(--nav-muted)}
.hg-shell__ro .hg-i{width:13px;height:13px}
.hg-shell__user{position:relative}
.hg-shell__ubtn{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-md);cursor:pointer}
.hg-shell__ubtn:hover{background:var(--bg-sunken)}
.hg-shell__ubtn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hg-shell__un{display:block;font:600 14px/20px var(--font-ui)}
.hg-shell__ur{display:block;font-size:12px;line-height:16px;color:var(--ink-2)}
.hg-shell__umenu{top:calc(100% + 6px);bottom:auto;left:auto;right:0;width:300px}
.hg-shell__urow{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 10px;font-size:13px}
.hg-shell__urow>.hg-i{color:var(--ink-2)}
.hg-shell__swmenu{left:0;width:320px}
.hg-menu__label{font:500 10.5px/14px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding:8px 10px 4px}
.hg-shell__mk{width:22px;height:22px;font-size:9.5px}
.hg-shell__mk.is-staff{background:var(--brand-navy);color:var(--nav-ink-active);border-color:var(--brand-navy)}
.hg-shell__main{display:flex;flex-direction:column;min-width:0}
.hg-shell__top{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:flex-end;gap:12px;height:var(--shell-top-h);padding:0 24px;background:var(--bg-panel);border-bottom:1px solid var(--line)}
.hg-shell__top .hg-shell__ubtn{width:auto;min-width:200px}
.hg-shell__banner{padding:12px 24px 0}
.hg-shell__content{padding:20px 24px 24px;display:flex;flex-direction:column;gap:16px}
/* mobile */
.hg-mshell{display:flex;flex-direction:column;min-height:100%;background:var(--bg-page);color:var(--ink)}
.hg-mshell__top{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:8px;height:var(--mshell-top-h);padding:0 8px 0 4px;background:var(--bg-nav);border-bottom:0;color:var(--nav-ink-active)}
.hg-mshell__menu{width:44px;height:44px}
.hg-mshell__top .hg-brand{color:var(--nav-ink-active)}
.hg-mshell__top .hg-brand svg{height:22px}
.hg-mshell__top .hg-icon-btn{color:var(--nav-ink-active)}
.hg-mshell__top .hg-icon-btn:hover{background:var(--nav-hover-bg)}
.hg-mshell__top :focus-visible,.hg-mshell__tabs :focus-visible{outline-color:var(--nav-focus)}
.hg-mshell__store{all:unset;box-sizing:border-box;margin-left:auto;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 8px;border:1px solid var(--nav-line);border-radius:var(--radius-md);background:var(--nav-active-bg);color:var(--nav-ink-active);font:500 13px/1 var(--font-ui);cursor:pointer;max-width:200px}
.hg-mshell__store .hg-i{color:var(--nav-ink)}
.hg-mshell__store:focus-visible{outline:2px solid var(--nav-focus);outline-offset:2px}
.hg-mshell__banner{padding:12px 16px 0}
.hg-mshell__content{flex:1;padding:16px;display:flex;flex-direction:column;gap:14px}
.hg-mshell__tabs{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg-nav);border-top:0}
.hg-mshell__tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:var(--mshell-tabs-h);font:500 11px/1 var(--font-ui);color:var(--nav-ink);text-decoration:none}
.hg-mshell__tab .hg-i{width:20px;height:20px}
.hg-mshell__tab[aria-current="page"]{color:var(--nav-ink-active);box-shadow:inset 0 3px 0 var(--nav-indicator)}
.hg-mshell__tab[aria-current="page"] .hg-i{color:var(--nav-ink-active)}
/* page helpers used by shell showcases */
.hg-ph{display:flex;align-items:flex-end;gap:12px}
.hg-ph__t{margin:0;font:600 24px/32px var(--font-ui);letter-spacing:-.01em}
.hg-ph__s{margin:4px 0 0;font-size:13px;color:var(--ink-2)}
.hg-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.hg-stat{display:flex;flex-direction:column;gap:6px;padding:20px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);text-decoration:none;color:var(--ink)}
.hg-stat__n{font:600 30px/36px var(--font-ui)}
.hg-stat__l{font-size:12.5px;color:var(--ink-2)}
.hg-btn--block{width:100%}

/* ---- Domain viewers ---- */
.hg-mock{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11.5px;min-width:0}
.hg-mock__ph{width:100%;aspect-ratio:1/1.02;background:var(--canvas-stage);border:1px solid var(--line);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}
.hg-mock__ph svg{height:92%;width:auto}
.hg-mock__n{font-weight:500;color:var(--ink);line-height:1.1}
.hg-mock__b{font-size:10.5px;color:var(--ink-2);line-height:1}
.hg-canvas{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:var(--canvas-stage);overflow:hidden}
.hg-canvas__svg{position:absolute;inset:2%;width:96%;height:96%}
.hg-canvas__empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-30%);display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 18px;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}
.hg-canvas__loading{display:flex;flex-direction:column;gap:10px;width:260px;align-items:center}
.hg-canvas__loading .hg-skel{width:100%}
.hg-pfv{position:relative;background:var(--canvas-stage);display:flex;align-items:center;justify-content:center;padding:12px;min-height:0}
.hg-pfv svg{height:100%;max-height:420px;width:auto}
.hg-pfv__zoom{position:absolute;right:8px;bottom:8px;display:flex;align-items:center;gap:2px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-md);font-size:11.5px}
.hg-matrix__t{width:100%;border-collapse:collapse}
.hg-matrix__t th{font:500 11px/1 var(--font-ui);color:var(--ink-2);text-align:right;padding:8px 6px;border-bottom:1px solid var(--line)}
.hg-matrix__t thead th:first-child{text-align:left;font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase}
.hg-matrix__t tbody th{font:400 12.5px/1 var(--font-ui);color:var(--ink);text-align:left;white-space:nowrap;padding:4px 6px 4px 12px}
.hg-matrix__t td{padding:2px;text-align:right;border-bottom:1px solid var(--line)}
.hg-matrix__t tr:last-child td,.hg-matrix__t tr:last-child th{border-bottom:0}
.hg-matrix__t .hg-pcell{min-width:0;width:100%;padding:5px 4px}
.hg-matrix__sw{display:inline-block;width:13px;height:13px;border-radius:50%;border:1px solid var(--swatch-ring);margin-right:7px;vertical-align:-2px}
.hg-matrix__meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:10px 12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-2)}
.hg-matrix__meta b{color:var(--ink)}
.hg-matrix__low{display:inline-flex;align-items:center;gap:6px}
.hg-matrix__low i{width:14px;height:12px;border-radius:2px;background:var(--err-soft);border:1px solid var(--err)}
.hg-warnpill{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn-text);font:500 11.5px/1 var(--font-ui);white-space:nowrap}
.hg-warnpill .hg-i{width:13px;height:13px}
.hg-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hg-grid2 .hg-field{min-width:0;width:100%}
.hg-grid2 .hg-field-wrap,.hg-grid6 .hg-field-wrap{display:flex;width:100%;min-width:0}
.hg-grid2 .hg-field input,.hg-grid6 .hg-field input{width:0;flex:1 1 0;min-width:0}
.hg-grid2>*,.hg-grid6>*{min-width:0}
.hg-grid6{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hg-grid6 .hg-field{min-width:0;width:100%}
.hg-chips{display:inline-flex;gap:4px;flex-wrap:wrap}
.hg-chip{all:unset;box-sizing:border-box;min-width:32px;height:28px;padding:0 6px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;cursor:pointer}
.hg-chip.is-on{background:var(--accent-fill);color:var(--accent-on);border-color:var(--accent-fill)}
.hg-chip:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hg-swl{display:inline-flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;color:var(--ink-2);width:64px;text-align:center}

/* ---- Design editor frame ---- */
.hg-ed{position:relative;display:flex;flex-direction:column;height:100%;background:var(--bg-page);color:var(--ink);overflow:hidden}
.hg-ed__top{height:52px;display:flex;align-items:center;gap:6px;padding:0 12px;background:var(--bg-panel);border-bottom:1px solid var(--line)}
.hg-ed__name{font:600 14px/1.2 var(--font-ui)}
.hg-ed__rev{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:12px;color:var(--ink-2)}
.hg-ed__title{margin-left:2px}
.hg-ed__sep{width:1px;height:24px;background:var(--line);margin:0 6px}
.hg-ed__top .hg-autosave{margin-right:8px}
.hg-ed__banner{padding:8px 12px;background:var(--bg-panel);border-bottom:1px solid var(--line)}
.hg-ed__main{flex:1;display:grid;grid-template-columns:88px 328px minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-height:0}
.hg-ed__rail{display:flex;flex-direction:column;gap:2px;padding:8px;background:var(--bg-panel);border-right:1px solid var(--line)}
.hg-ed__tool{all:unset;box-sizing:border-box;height:60px;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font:500 10.5px/1 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);cursor:pointer}
.hg-ed__tool .hg-i{width:20px;height:20px}
.hg-ed__tool:hover{background:var(--bg-sunken)}
.hg-ed__tool:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.hg-ed__tool[aria-pressed="true"]{color:var(--ink);background:
 linear-gradient(var(--accent-text),var(--accent-text)) left top/9px 2px no-repeat,linear-gradient(var(--accent-text),var(--accent-text)) left top/2px 9px no-repeat,
 linear-gradient(var(--accent-text),var(--accent-text)) right bottom/9px 2px no-repeat,linear-gradient(var(--accent-text),var(--accent-text)) right bottom/2px 9px no-repeat,var(--bg-sunken)}
.hg-ed__tool[aria-pressed="true"] .hg-i{color:var(--accent-text)}
.hg-ed__tool:disabled{color:var(--ink-3);cursor:not-allowed;background:transparent}
.hg-ed__panel{background:var(--bg-panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.hg-ed__ph{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 16px;border-bottom:1px solid var(--line)}
.hg-ed__pt{font:600 15px/1 var(--font-ui)}
.hg-ed__pb{padding:14px 16px;display:flex;flex-direction:column;gap:16px;overflow:auto}
.hg-asset{display:flex;align-items:center;gap:10px}
.hg-lib{display:flex;flex-direction:column;gap:6px}
.hg-lib__it{all:unset;box-sizing:border-box;display:grid;grid-template-columns:44px 1fr auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:6px;border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer}
.hg-lib__it:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hg-lib__it:hover{background:var(--bg-sunken)}
.hg-lib__it:disabled{cursor:default}
.hg-lib__it .hg-lib__th{grid-row:1/3}
.hg-lib__it .hg-badge{grid-row:1/3;grid-column:3}
.hg-lib__th{width:44px;height:44px;border-radius:var(--radius-sm);background:var(--brand-navy);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);overflow:hidden;flex:none}
.hg-lib__it:disabled .hg-lib__th,.hg-lib__it:not(:first-child) .hg-lib__th{background:var(--bg-sunken)}
.hg-lib__th svg{width:100%;height:100%}
.hg-lib__n{font:500 12.5px/16px var(--font-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hg-lib__px{font-size:11px;color:var(--ink-2)}
.hg-ed__stage{display:flex;flex-direction:column;min-width:0;min-height:0}
.hg-ed__sides{height:44px;display:flex;align-items:center;gap:4px;padding:0 12px;background:var(--bg-panel);border-bottom:1px solid var(--line)}
.hg-side{all:unset;box-sizing:border-box;height:44px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;font:500 13px/1 var(--font-ui);color:var(--ink-2);border-bottom:2px solid transparent;cursor:pointer}
.hg-side:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.hg-side[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent-text)}
.hg-side__st{width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.hg-side__st .hg-i{width:11px;height:11px;stroke-width:3}
.hg-side__st.is-ok{background:var(--accent-fill);color:var(--accent-on)}
.hg-side__st.is-empty{border:1px dashed var(--line-strong);color:var(--ink-2)}
.hg-ed__cbar{height:40px;display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--bg-panel);border-top:1px solid var(--line);font-size:12px;color:var(--ink-2)}
.hg-zoom{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-md);height:30px;color:var(--ink)}
.hg-zoom .hg-num{padding:0 6px;font-size:12px}
.hg-ed__bottom{min-height:76px;display:flex;align-items:center;gap:22px;padding:8px 16px;background:var(--bg-panel);border-top:1px solid var(--line)}
.hg-bb{display:flex;flex-direction:column;gap:5px}
.hg-bb--sep{padding-left:22px;border-left:1px solid var(--line)}
.hg-bb__v{font:600 15px/20px var(--font-ui)}
.hg-bb__v.is-low{color:var(--err-text)}
.hg-bb--cta{align-items:flex-end}
.hg-bb__why{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-2)}
.hg-bb__why .hg-i{width:13px;height:13px}
.hg-ed__bottom .hg-swatch{width:22px;height:22px}
.hg-ed.is-readonly .hg-ed__panel{opacity:.85}
.hg-ed__overlay{position:absolute;z-index:var(--z-drawer)}
.hg-drawer--wide{width:720px}
.hg-drawer--wide .hg-drawer__b{overflow-x:hidden}

/* ---- Review detail layout ---- */
.hg-rv{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px;align-items:start}
.hg-mocks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.hg-pf{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:400px}
.hg-pf .hg-pfv{border-right:1px solid var(--line);border-bottom-left-radius:var(--radius-lg)}
.hg-meas{margin:0;padding:12px 16px}
.hg-meas>div:not(.hg-label){display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.hg-meas>div:last-child{border-bottom:0}
.hg-meas dt{color:var(--ink-2);white-space:nowrap}
.hg-meas dd{margin:0;font-weight:500}
.hg-cmp{display:grid;grid-template-columns:104px 104px 1fr;gap:14px;align-items:start}
.hg-diffs{list-style:none;margin:0;padding:0;font-size:12.5px}
.hg-diffs li{display:grid;grid-template-columns:16px 1fr;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}
.hg-diffs li:last-child{border-bottom:0}
.hg-diffs b{font:600 12px/1.4 var(--font-ui);text-align:center}
.hg-diffs .is-add b{color:var(--ok-text)}
.hg-diffs .is-chg b{color:var(--info-text)}
.hg-diffs .is-same{color:var(--ink-2)}
.hg-ed__bottom .hg-row,.hg-ed__bottom .hg-chips{flex-wrap:nowrap}
.hg-bb__v,.hg-bb .hg-fld__hint{white-space:nowrap}
.hg-ed__bottom{gap:18px}

/* ---- Products ---- */
.hg-pthumb{width:40px;height:40px;flex:none;border-radius:var(--radius-sm);background:var(--canvas-stage);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center}
.hg-pthumb svg{height:88%;width:auto}
.hg-prow{display:inline-flex;align-items:center;gap:10px}
.hg-prow b{font-weight:600}
.hg-search{box-sizing:border-box;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--bg-field);color:var(--ink-2);width:220px}
.hg-search input{all:unset;flex:1;min-width:0;font-size:13px;color:var(--ink)}
.hg-search:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.hg-search input::placeholder{color:var(--ink-2)}
.hg-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent-text);font-weight:500;font-size:13px;text-decoration:none}
.hg-link:hover{text-decoration:underline;text-underline-offset:2px}
.hg-link .hg-i{width:14px;height:14px}
.hg-pd{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}
.hg-revs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hg-revcard{display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-lg)}
.hg-revcard.is-open{border-color:var(--line-strong)}
.hg-revcard.is-none{justify-content:flex-start;border-style:dashed}
.hg-proofgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:16px}
.hg-proofgrid__pf{display:grid;grid-template-columns:300px minmax(0,1fr);gap:8px 20px;align-items:start}
.hg-proofgrid__pf>:first-child{grid-column:1/-1}
.hg-proofgrid .hg-pfv{border:1px solid var(--line);border-radius:var(--radius-lg);height:330px}
.hg-meas--inline{padding:0}
.hg-hist{list-style:none;margin:0;padding:0}
.hg-hist li{display:flex;flex-direction:column;gap:4px;padding:10px 0 10px 14px;border-left:2px solid var(--line);position:relative}
.hg-hist li::before{content:"";position:absolute;left:-5px;top:15px;width:8px;height:8px;border-radius:50%;background:var(--bg-panel);border:2px solid var(--line-strong)}
.hg-hist li:first-child::before{border-color:var(--accent-text);background:var(--accent-text)}
.hg-rendering{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:8px 0 4px}
.hg-spin--lg{width:22px;height:22px;border-width:3px;color:var(--ink)}
.hg-rendering__sk{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%}
.hg-plist{list-style:none;margin:0;padding:0;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-lg)}
.hg-plist li+li{border-top:1px solid var(--line)}
.hg-plist a{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 12px;color:var(--ink);text-decoration:none}
.hg-plist b{font-weight:600;font-size:13.5px}
.hg-msum{list-style:none;margin:0;padding:0;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-lg)}
.hg-msum li{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:13px}
.hg-msum li+li{border-top:1px solid var(--line)}
.hg-mshell .hg-mocks{grid-template-columns:repeat(3,1fr)}
.hg-mshell .hg-ph{flex-wrap:wrap}
.hg-matrix{overflow:hidden}
.hg-matrix__t tbody th{padding-left:10px}
.hg-matrix__t td{padding:2px 2px}
.hg-matrix__t td:last-child{padding-right:6px}

/* ---- Auth ---- */
.hg-auth{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:100%;background:var(--bg-page);color:var(--ink)}
.hg-auth.is-mobile{grid-template-columns:1fr}
.hg-auth__brand{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:var(--brand-navy);color:var(--nav-ink-active);padding:48px}
.hg-auth__mark .hg-brand{color:var(--nav-ink-active)}
.hg-auth__mark .hg-brand svg{height:40px}
.hg-auth__rule{width:120px;height:3px;background:var(--brand-aero)}
.hg-auth__tag{margin:0;max-width:360px;text-align:center;font:700 36px/40px var(--font-ui);letter-spacing:-.02em;color:var(--nav-ink-active)}
.hg-auth__line{margin:0;max-width:300px;text-align:center;font:400 14px/21px var(--font-ui);color:var(--nav-ink)}
.hg-auth__main{display:flex;flex-direction:column;align-items:center;padding:32px 24px}
.hg-auth.is-mobile .hg-auth__main{align-items:stretch;padding:20px 16px}
.hg-auth__mlogo{padding:4px 0 20px}
.hg-auth__slot{flex:1;display:flex;align-items:center;justify-content:center;width:100%}
.hg-auth.is-mobile .hg-auth__slot{align-items:flex-start}
.hg-auth__foot{padding-top:16px}
.hg-acard{width:100%;max-width:400px;display:flex;flex-direction:column;gap:10px}
.hg-acard__ic{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-panel);border:1px solid var(--line);color:var(--ink);margin-bottom:4px}
.hg-acard__ic .hg-i{width:22px;height:22px}
.hg-acard__ic.is-ok{border-color:transparent;background:var(--ok-soft);color:var(--ok-text)}
.hg-acard__ic.is-warn{border-color:transparent;background:var(--warn-soft);color:var(--warn-text)}
.hg-acard__ic.is-err{border-color:transparent;background:var(--err-soft);color:var(--err-text)}
.hg-acard__ic.is-info{border-color:transparent;background:var(--info-soft);color:var(--info-text)}
.hg-acard__t{margin:0;font:600 24px/30px var(--font-ui);letter-spacing:-.015em}
.hg-acard__s{margin:0;font:400 14px/21px var(--font-ui);color:var(--ink-2)}
.hg-acard__s b{color:var(--ink);font-weight:600}
.hg-acard__b{display:flex;flex-direction:column;gap:14px;margin-top:10px}
.hg-acard__b .hg-fld{min-width:0}
.hg-acard__f{margin:8px 0 0;font-size:13px;color:var(--ink-2)}
.hg-quote{margin:0;padding:12px 14px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-md);font-size:14px;line-height:21px}
.hg-quote cite{display:block;margin-top:6px;font-style:normal;font-size:12px;color:var(--ink-2)}
.hg-aboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);min-height:100%}
.hg-aboard__cell{background:var(--bg-page);padding:28px 32px 32px;display:flex;flex-direction:column;gap:14px}
.hg-aboard__k{font:500 11px/1 var(--font-ui);color:var(--ink-2)}
.hg-form2{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.hg-form2 .hg-fld{min-width:0}
.hg-form2 .hg-upload{max-width:none}
.hg-sr2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.hg-dl{margin:0}
.hg-dl>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
.hg-dl>div:last-child{border-bottom:0}
.hg-dl dt{color:var(--ink-2)}
.hg-dl dd{margin:0}

/* ---- Page patterns ---- */
.hg-pghead{display:flex;flex-direction:column;gap:6px}
.hg-fsec{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;padding:20px 0;border-top:1px solid var(--line)}
.hg-fsec:first-of-type{border-top:0}
.hg-fsec__t{margin:0;font:600 14px/20px var(--font-ui)}
.hg-fsec__d{margin:4px 0 0;font-size:12.5px;line-height:18px;color:var(--ink-2)}
.hg-fsec__body{display:flex;flex-direction:column;gap:14px;max-width:560px}
.hg-fsec__body .hg-fld{min-width:0}
.hg-fsec__f{display:flex;justify-content:flex-end;gap:8px}
.hg-bulk{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 14px;border-radius:var(--radius-md);background:var(--cta);color:var(--cta-ink);font-size:13px}
.hg-bulk__clear{color:var(--cta-ink);opacity:.8;font-size:12.5px}
.hg-bulk .hg-btn{background:transparent;color:var(--cta-ink);border-color:var(--cta-ink)}
.hg-bulk :focus-visible{outline-color:var(--cta-ink)}
.hg-checklist{list-style:none;margin:0;padding:0}
.hg-checklist li{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.hg-checklist li:last-child{border-bottom:0}
.hg-checklist__ic{width:20px;height:20px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.hg-checklist__ic .hg-i{width:12px;height:12px;stroke-width:3}
.is-done .hg-checklist__ic{background:var(--ok-soft);color:var(--ok-text)}
.is-todo .hg-checklist__ic{color:var(--warn)}
.is-todo .hg-checklist__ic .hg-i{width:18px;height:18px;stroke-width:2;stroke-dasharray:3 3}
.hg-checklist__t{display:block;font-weight:500;font-size:13px}
.hg-checklist__d{display:block;font-size:12px;color:var(--ink-2);margin-top:2px}
.hg-ecell{position:relative;display:block}
.hg-ecell input{all:unset;box-sizing:border-box;width:100%;height:30px;padding:0 8px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:13px;color:var(--ink)}
.hg-ecell.is-num input{text-align:right;font-family:var(--font-ui)}
.hg-ecell input:hover{border-color:var(--ink-2)}
.hg-ecell input:focus{border-color:var(--line-strong);background:var(--bg-field);outline:2px solid var(--focus);outline-offset:1px}
.hg-ecell.is-dirty input{background:var(--info-soft);border-color:var(--info-soft)}
.hg-ecell.is-error input{background:var(--err-soft);border-color:var(--err)}
.hg-ecell__err{position:absolute;right:0;top:calc(100% + 4px);z-index:var(--z-tooltip);padding:4px 8px;border-radius:var(--radius-sm);background:var(--err-soft);color:var(--err-text);border:1px solid var(--err);font-size:11.5px;white-space:nowrap}
.hg-savebar{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--bg-raised);box-shadow:var(--shadow-pop);font-size:13px}
.hg-vh{list-style:none;margin:0;padding:0}
.hg-vh li{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.hg-vh li.is-selected{background:var(--bg-sunken);box-shadow:inset 3px 0 0 var(--accent-text)}
.hg-vh__n{font-size:12.5px}
.hg-diff{width:100%;border-collapse:collapse;font-size:13px}
.hg-diff th{font:500 12px/16px var(--font-ui);color:var(--ink-2);text-align:left;padding:8px 12px;border-bottom:1px solid var(--line)}
.hg-diff td{padding:9px 12px;border-bottom:1px solid var(--line)}
.hg-diff .is-num{text-align:right;font-family:var(--font-ui)}
.hg-diff .old{color:var(--ink-2);text-decoration:line-through}
.hg-diff .up{color:var(--err-text)}
.hg-diff .down{color:var(--ok-text)}
.hg-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.hg-steps li{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-lg)}
.hg-steps li.is-next{border-color:var(--line-strong)}
.hg-steps__n{width:24px;font-size:13px;color:var(--ink-2)}
.hg-steps li.is-next .hg-steps__n{color:var(--accent-text);font-weight:600}
.hg-steps__ic{width:36px;height:36px;border-radius:var(--radius-md);background:var(--bg-sunken);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2)}
.hg-steps b{font-size:14px}
.hg-steps p{margin:2px 0 0;font-size:12.5px;color:var(--ink-2)}
.hg-agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.hg-acell{margin:0;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.hg-acell__th{height:130px;display:flex;align-items:center;justify-content:center;background:var(--canvas-check-b);color:var(--ink-2);background-image:linear-gradient(45deg,var(--canvas-check-a) 25%,transparent 25%,transparent 75%,var(--canvas-check-a) 75%),linear-gradient(45deg,var(--canvas-check-a) 25%,transparent 25%,transparent 75%,var(--canvas-check-a) 75%);background-size:16px 16px;background-position:0 0,8px 8px}
.hg-acell__th svg{height:80%}
.hg-acell__th .hg-i{width:28px;height:28px}
.hg-acell figcaption{display:flex;flex-direction:column;gap:3px;padding:10px 12px}
.hg-colorrow{display:grid;grid-template-columns:28px minmax(0,1fr) 120px 28px;gap:8px;align-items:center}
.hg-hexsw{width:28px;height:28px;border-radius:50%;border:1px solid var(--swatch-ring)}
.hg-errsum{padding:12px 14px;border:1px solid var(--err);background:var(--err-soft);border-radius:var(--radius-md);font-size:13px}
.hg-errsum b{display:block;margin-bottom:4px}
.hg-errsum ul{margin:0;padding-left:18px}
.hg-errsum a{color:var(--err-text)}

/* ---- Editor panels ---- */
.hg-sep{height:1px;background:var(--line);margin:2px 0}
.hg-tabs--icons .hg-tab{padding:0 8px}
.hg-tabs--icons .hg-tab .hg-i{width:15px;height:15px}
.hg-tab[aria-checked="true"]{background:var(--bg-panel);color:var(--accent-text);box-shadow:inset 0 -2px 0 var(--accent-text),0 0 0 1px var(--line-strong)}
.hg-fontlist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.hg-fontlist__it{all:unset;box-sizing:border-box;display:grid;grid-template-columns:76px 1fr 16px;align-items:center;gap:8px;height:38px;padding:0 10px;cursor:pointer;border-bottom:1px solid var(--line)}
.hg-fontlist__it:last-child{border-bottom:0}
.hg-fontlist__it:hover{background:var(--bg-sunken)}
.hg-fontlist__it[aria-selected="true"]{background:var(--accent-soft)}
.hg-fontlist__it[aria-selected="true"] .hg-i{color:var(--accent-text)}
.hg-fontlist__it:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.hg-fontlist__pv{font-size:18px;line-height:1;color:var(--ink)}
.hg-fontlist__n{font-size:12.5px;color:var(--ink-2)}
.hg-swatch--ink{width:24px;height:24px}
.hg-field--hex{min-width:0;width:96px}
.hg-adv{border-top:1px solid var(--line);padding-top:10px}
.hg-adv summary{list-style:none;display:flex;align-items:center;gap:6px;font:600 12.5px/1 var(--font-ui);cursor:pointer}
.hg-adv summary::-webkit-details-marker{display:none}
.hg-adv[open] summary .hg-i{transform:rotate(90deg)}
.hg-adv summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hg-slider{display:grid;grid-template-columns:84px 1fr 44px;align-items:center;gap:10px;font-size:12.5px}
.hg-slider__track{height:4px;border-radius:2px;background:var(--line);position:relative}
.hg-slider__track i{position:absolute;left:0;top:0;bottom:0;background:var(--accent-text);border-radius:2px}
.hg-slider__track b{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--bg-panel);border:2px solid var(--accent-text)}
.hg-slider__v{text-align:right;color:var(--ink-2);font-size:12px}
.hg-chips--wrap{flex-wrap:wrap}
.hg-chip:not(.hg-num){font:500 12px/1 var(--font-ui);padding:0 10px}
.hg-clipgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hg-clip{all:unset;box-sizing:border-box;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:76px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-panel);color:var(--ink);cursor:pointer}
.hg-clip .hg-i{width:26px;height:26px;stroke-width:1.75}
.hg-clip:hover{background:var(--bg-sunken)}
.hg-clip:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hg-clip.is-selected{border-color:var(--accent-text);box-shadow:inset 0 0 0 1px var(--accent-text)}
.hg-clip__n{font-size:11px;color:var(--ink-2)}
.hg-clip__fee{position:absolute;top:4px;right:4px;font-size:10px;padding:2px 4px;border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn-text)}
.hg-clipgrid--shapes .hg-clip{height:64px}
.hg-layers{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.hg-layer{display:grid;grid-template-columns:20px 28px minmax(0,1fr) 28px 28px 28px;align-items:center;gap:4px;min-height:48px;padding:4px 6px;border-bottom:1px solid var(--line)}
.hg-layer:last-child{border-bottom:0}
.hg-layer.is-selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent-text)}
.hg-layer.is-hidden .hg-layer__n{opacity:.5}
.hg-layer__grip{all:unset;cursor:grab;color:var(--ink-3);display:inline-flex}
.hg-layer__grip:focus-visible{outline:2px solid var(--focus)}
.hg-layer__ic{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--bg-sunken);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2)}
.hg-layer__ic .hg-i{width:14px;height:14px}
.hg-layer__n{display:flex;flex-direction:column;min-width:0;font-size:12.5px;font-weight:500}
.hg-layer__n>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hg-layer__t{font-size:11px;font-weight:400;color:var(--ink-2)}
.hg-layer__warn{color:var(--warn-text);font-weight:500}
.hg-icon-btn.is-on{color:var(--accent-text)}

/* ---- Zone editor ---- */
.hg-ze{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-panel);overflow:hidden}
.hg-ze__bar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}
.hg-ze__main{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:520px}
.hg-ze__stage{position:relative;display:flex;align-items:center;justify-content:center;background:var(--canvas-stage);border-right:1px solid var(--line)}
.hg-ze__stage svg{height:500px;width:auto}
.hg-ze__legend{position:absolute;left:12px;bottom:12px;display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-2);background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 8px}
.hg-ze__legend i{display:inline-block;width:14px;height:0;border-top:2px solid var(--canvas-select);margin-left:6px}
.hg-ze__legend i:first-child{margin-left:0}
.hg-ze__legend i.is-ovr{border-top:2px dashed var(--canvas-snap)}
.hg-ze__panel{display:flex;flex-direction:column;gap:18px;padding:16px}
.hg-ovr{width:100%;border-collapse:collapse;font-size:12.5px}
.hg-ovr th{font:500 11px/14px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}
.hg-ovr td{padding:4px;border-bottom:1px solid var(--line)}
