/* ==========================================================================
   CABLE OS — shared shell

   Three rules. Everything else this file once held has either moved into the
   design system or been deleted for fighting it.

   WHAT IS LEFT, AND WHY EACH ONE IS STILL HERE

     * { box-sizing }   the system sets this on *, *::before, *::after inside
                        its own base layer. Kept because it is free and because
                        a page that ever loads cable.css WITHOUT the system
                        should still lay out.
     body { }           the system styles body.asgt. Cable OS's sign-in view
                        renders before that class is meaningful, and this keeps
                        the canvas and the UI face on the element itself.
     .cable-hidden      the show/hide primitive both pages are built on. The
                        system has no equivalent, deliberately: what a given app
                        hides is that app's business.

   ORDER IS STILL LOAD-BEARING. This file loads AFTER
   /assets/ui/asgt-ui.v2.css and BEFORE each page's own <style>. Anything here
   can therefore beat the design system, which is exactly how six element
   selectors came to override the components they sat on — see the note below.
   Nothing should be added here that a cable- class in a page could carry.

   FONTS ARE NOT DECLARED HERE. They were, mirroring the system's @font-face
   rules for the period when the system was not yet linked. It is linked now,
   from both pages, and duplicate @font-face blocks are a second source of
   truth for a file path. Removed in prep step 5.

   THIS IS NOT THE DESIGN SYSTEM. /opt/asgt/ui/asgt-ui.v2.css is, both pages
   link it first, and every value in Cable OS is one of its tokens — there is
   no colour, size, radius or shadow literal left in this file or in either
   page's <style>, except the five IEC conductor colours, which are facts about
   cable rather than design decisions and are never themed.
   ========================================================================== */

/* --------------------------------------------------------------------------
   NO ELEMENT SELECTORS FOR CONTROLS. There used to be six here, left over
   from before the design system was linked, and every one of them beat the
   component it was sitting on top of:

     button:hover:not(:disabled)   (0,2,1) — beat .asgt-btn's `background:
                                   var(--_bg)` at (0,1,0). Every variant works
                                   by setting --_bg, so on hover EVERY button
                                   in Cable OS went flat accent-magenta: the
                                   primary lost its gradient, and --outline and
                                   --ghost kept magenta TEXT on it and became
                                   unreadable.
     button:focus-visible          (0,2,1) — beat the system's ring, so buttons
                                   and links had two different focus indicators
                                   in the same screen.
     button:disabled               dead. .asgt-btn[disabled] is (0,2,0) and
                                   wins, and css.test already insists every
                                   button carries a styling class.
     input:hover                   (0,1,1) — beat .asgt-input. The system has
                                   no input hover on purpose; since the patch
                                   the resting border is --asgt-edge-strong at
                                   3.7:1, so it no longer needs a hover to be
                                   findable.
     textarea:hover / :focus       replaced by .asgt-textarea on both boxes.
     textarea::placeholder         .asgt-textarea::placeholder covers it.

   Anything a control needs beyond the system belongs on a cable- class, not
   on the element.
   -------------------------------------------------------------------------- */

  * { box-sizing: border-box; }

  body {
    margin: 0;
    min-height: 100vh;
    background: var(--asgt-canvas);
    color: var(--asgt-text);
    font-family: var(--asgt-font-ui);
    -webkit-font-smoothing: antialiased;
  }

  .cable-hidden { display: none; }
