/* gSender Plugin UI Standard — shared visual tokens and reusable object patterns */
:root{color-scheme:dark;--ui-bg:#0d1319;--ui-sidebar:#111920;--ui-panel:#151e27;--ui-panel-raised:#1b2631;--ui-input:#0d151c;--ui-border:#2b3946;--ui-border-soft:#24313c;--ui-text:#e7edf3;--ui-muted:#91a0ae;--ui-subtle:#647585;--ui-blue:#3d9bff;--ui-blue-bright:#63b0ff;--ui-blue-wash:#173450;--ui-green:#49c58a;--ui-amber:#f0b753;--ui-red:#f06e6e;--ui-radius-sm:7px;--ui-radius:11px;--ui-radius-lg:15px;--ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;--ui-space-5:20px;--ui-space-6:24px;--ui-font:Inter,"Segoe UI",system-ui,sans-serif;--ui-mono:"Cascadia Code",Consolas,monospace;--ui-shadow:0 12px 36px #0003;font:14px/1.5 var(--ui-font);color:var(--ui-text);background:var(--ui-bg)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:22px}body{margin:0;min-width:320px;background:var(--ui-bg)}button,input,select{font:inherit}button{color:inherit}a{color:inherit}.library-shell{min-height:100vh}.library-sidebar{position:fixed;inset:0 auto 0 0;width:246px;padding:26px 17px;background:var(--ui-sidebar);border-right:1px solid var(--ui-border-soft);display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:10px;letter-spacing:.13em;line-height:1.35;color:#91a0ae}.brand strong{font-size:12px;letter-spacing:.16em;color:var(--ui-text)}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(140deg,#41a6ff,#2764bc);font-size:25px;font-weight:800;color:white;letter-spacing:-.08em}.sidebar-label,.eyebrow,.card-kicker{font-size:10px;letter-spacing:.14em;font-weight:750;color:var(--ui-subtle)}.sidebar-label{margin:38px 0 10px 10px}.library-sidebar nav{display:grid;gap:3px}.library-sidebar nav a{padding:9px 10px;border-radius:7px;text-decoration:none;color:#aeb9c3;font-size:12px;transition:.15s}.library-sidebar nav a:hover,.library-sidebar nav a.active{background:#1d2b38;color:#fff}.library-sidebar nav a.active{box-shadow:inset 2px 0 var(--ui-blue)}.sidebar-note{margin-top:auto;padding:12px 10px;border-top:1px solid var(--ui-border-soft);font-size:11px;color:#bdc7d0}.sidebar-note span{color:var(--ui-subtle);font-size:10px}.library-main{max-width:1240px;margin-left:246px;padding:36px clamp(24px,5vw,70px) 30px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:8px 0 28px}.page-header h1{font-size:clamp(28px,3vw,38px);line-height:1.15;letter-spacing:-.035em;margin:8px 0}.page-header p{max-width:700px;margin:0;color:var(--ui-muted);font-size:14px}.version-pill,.source-tag,.state-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ui-border);border-radius:999px;padding:6px 10px;color:#b8c4cf;font-size:10px;white-space:nowrap;background:#151e27}.version-pill i,.state-chip i{width:7px;height:7px;border-radius:50%;background:var(--ui-amber);display:inline-block}.intro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:44px}.intro-card{min-height:152px;padding:17px 18px;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:linear-gradient(145deg,#19232d,#131b23)}.card-kicker{color:var(--ui-blue-bright)}.intro-card h2{margin:8px 0 5px;font-size:15px}.intro-card p{margin:0 0 11px;color:var(--ui-muted);font-size:11px;line-height:1.55}.intro-card a{font-size:11px;color:var(--ui-blue-bright);text-decoration:none}.intro-card a span{margin-left:4px}.intro-card code{color:#c0d9ed;background:#0c151e;padding:2px 4px;border-radius:4px}.specimen-section{padding:0 0 35px;margin-bottom:34px;border-bottom:1px solid var(--ui-border-soft)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:6px}.section-heading h2{font-size:20px;letter-spacing:-.025em;margin:3px 0}.section-copy{max-width:800px;color:var(--ui-muted);font-size:12px;margin:0 0 15px}.source-tag{font-size:9px;padding:5px 9px;color:#a9bac9}.specimen{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-panel);padding:19px;box-shadow:var(--ui-shadow)}.source-note{margin:9px 2px 0;color:var(--ui-subtle);font-size:10px}.group-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:12px;font-weight:700}.help-dot{display:grid;place-items:center;width:17px;height:17px;border:1px solid #607282;border-radius:50%;color:#9fb1bf;font-size:10px;cursor:help}.field-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.field-grid label,.jog-top label,.map-controls label{display:grid;gap:5px;color:#c6d0d9;font-size:10px;font-weight:650}.field-grid label small{display:inline;color:var(--ui-subtle);font-size:9px}.field-grid input,.jog-top select{width:100%;min-width:0;padding:8px 9px;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);color:var(--ui-text);background:var(--ui-input);font-family:var(--ui-mono);font-size:11px;outline:none}.field-grid input:focus,.jog-top select:focus{border-color:var(--ui-blue);box-shadow:0 0 0 2px #3d9bff24}.second-group{margin-top:21px}.segmented{display:flex;gap:8px}.segmented button{min-width:130px;display:grid;text-align:left;gap:1px;padding:8px 12px;border:1px solid var(--ui-border);border-radius:8px;background:#111920;font-size:11px;cursor:pointer}.segmented button.selected{border-color:#357fc2;background:#142d43;box-shadow:0 0 0 1px #317bb633}.segmented small{color:var(--ui-muted);font-size:9px}.object-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}.object-title h3{font-size:14px;margin:0 0 2px}.object-title p{margin:0;color:var(--ui-muted);font-size:10px}.state-chip{font-size:9px}.state-chip.good{color:#83d9ae;border-color:#2b5e48;background:#12271e}.state-chip.good i{background:var(--ui-green)}.stock-wrap{position:relative;max-width:510px;margin:2px auto 10px;padding:8px 37px 25px}.stock{position:relative;height:228px;border:1px solid #46596a;border-radius:7px;background:linear-gradient(140deg,#293a47,#202e39);box-shadow:inset 0 0 0 7px #111920,inset 0 0 0 8px #506171;background-image:linear-gradient(0deg,transparent 24%,#ffffff08 25%,transparent 26%,transparent 49%,#ffffff08 50%,transparent 51%,transparent 74%,#ffffff08 75%,transparent 76%),linear-gradient(90deg,transparent 24%,#ffffff08 25%,transparent 26%,transparent 49%,#ffffff08 50%,transparent 51%,transparent 74%,#ffffff08 75%,transparent 76%),linear-gradient(140deg,#293a47,#202e39);background-size:100% 100%;}.stock-label{position:absolute;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:.16em;color:#8293a2}.stock-label.rear{top:14px}.stock-label.front{bottom:9px}.axis{position:absolute;color:var(--ui-subtle);font:10px var(--ui-mono)}.axis-y{left:4px;top:46%;writing-mode:vertical-rl}.axis-x{right:4px;bottom:6px}.axis-x span{color:var(--ui-blue-bright)}.origin-choice{position:absolute;display:grid;justify-items:center;gap:4px;transform:translate(-50%,-50%);cursor:pointer}.origin-choice input{position:absolute;opacity:0}.origin-choice span{width:18px;height:18px;border:2px solid #a3b3bf;border-radius:50%;background:#202c36;box-shadow:0 0 0 4px #121b22}.origin-choice input:checked+span{background:var(--ui-blue);border-color:#c5e3ff;box-shadow:inset 0 0 0 4px #1b4d7a,0 0 0 4px #5caeff22,0 0 13px #3d9bff9c}.origin-choice input:focus-visible+span{outline:2px solid white;outline-offset:4px}.origin-choice em{font-style:normal;font-size:9px;color:#c2cdd6;white-space:nowrap}.rear-left{left:14%;top:28%}.rear-right{left:86%;top:28%}.center{left:50%;top:51%}.front-left{left:14%;top:75%}.front-right{left:86%;top:75%}.object-footer{display:flex;justify-content:space-between;gap:10px;max-width:510px;margin:auto;border-top:1px solid var(--ui-border-soft);padding-top:10px;color:var(--ui-muted);font-size:10px}.object-footer strong{color:var(--ui-text)}.helper-text{color:var(--ui-subtle);font-size:10px}.jog-specimen{max-width:840px;margin:auto}.jog-top{display:grid;grid-template-columns:minmax(150px,1fr) auto auto;align-items:end;gap:10px}.jog-top select{font-family:var(--ui-font)}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 11px;border:1px solid transparent;border-radius:7px;font-size:10px;font-weight:700;cursor:pointer;transition:filter .15s,transform .1s}.button:hover{filter:brightness(1.13)}.button:active{transform:translateY(1px)}.button-primary{background:#287ac0;color:white;box-shadow:inset 0 1px #ffffff1a}.button-outline{border-color:#3a4c5a;background:#17222b;color:#d5dfe7}.button-quiet{border-color:var(--ui-border);background:#131c24;color:#b7c4cf}.button-danger{border-color:#733e43;background:#382125;color:#ffb5b5}.homed-state{padding-bottom:8px;color:var(--ui-amber);font-size:9px}.dro{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:10px;align-items:center;margin:12px 0;padding:9px 11px;border:1px solid var(--ui-border);border-radius:8px;background:#0e161d;font:11px var(--ui-mono);font-variant-numeric:tabular-nums}.dro-mode{border:0;border-radius:4px;background:#172b3b;color:var(--ui-blue-bright);padding:4px 7px;font-size:10px;font-weight:800;cursor:pointer}.dro span{display:flex;justify-content:space-between;gap:6px}.dro b{color:var(--ui-muted);font-weight:500}.dro output{text-align:right}.jog-layout{display:grid;grid-template-columns:minmax(210px,1fr) 68px minmax(140px,.8fr);gap:16px;align-items:center;max-width:620px;margin:14px auto}.xy-pad{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,43px);gap:6px;justify-content:center}.xy-pad button,.z-pad button{border:1px solid #384b59;border-radius:7px;background:#1c2a35;color:#d8e6f1;font-size:11px;font-weight:800;cursor:pointer}.xy-pad button:hover,.z-pad button:hover{border-color:var(--ui-blue);background:#1c3a52}.xy-pad button:nth-child(1){grid-column:2;grid-row:1}.xy-pad button:nth-child(2){grid-column:1;grid-row:2}.xy-pad .pad-center{grid-column:2;grid-row:2;align-self:center;justify-self:center;color:#718493}.xy-pad button:nth-child(4){grid-column:3;grid-row:2}.xy-pad button:nth-child(5){grid-column:2;grid-row:3}.xy-pad button span{color:var(--ui-blue-bright)}.pad-center{grid-column:2;grid-row:2;align-self:center;justify-self:center;color:#718493}.z-pad{display:grid;grid-template-rows:43px 21px 43px;gap:6px;text-align:center}.z-pad button{font-size:12px}.z-label{align-self:center;color:var(--ui-subtle);font-size:8px;letter-spacing:.12em}.control-actions{display:grid;gap:7px}.preview-warning{margin-top:12px;padding:8px 10px;border:1px solid #273a49;border-radius:7px;background:#111c25;color:#99aab8;font-size:9px}.preview-warning span{color:var(--ui-blue-bright);margin-right:5px}.map-specimen{max-width:840px;margin:auto}.map-summary{display:flex;gap:14px}.map-summary span{display:grid;gap:1px;color:var(--ui-subtle);font-size:8px;letter-spacing:.08em}.map-summary b{color:#e3ebf2;font:11px var(--ui-mono);letter-spacing:0}.map-stage{position:relative;max-width:610px;margin:0 auto 10px;padding:10px 34px 28px}.map-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:3px;aspect-ratio:2.1/1;overflow:hidden;border:1px solid #536372;border-radius:5px;background:#0d151c;transform:perspective(780px) rotateX(15deg) scale(.94);box-shadow:0 12px 20px #0005}.map-cell{position:relative;border-radius:2px;min-height:15px;background:hsl(var(--hue),68%,calc(47% + var(--height) * 6%));transition:filter .2s}.map-cell:after{content:"";position:absolute;inset:0;border:1px solid #ffffff12}.map-scale{position:absolute;right:0;top:18px;bottom:31px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;color:#afbdc8;font:8px var(--ui-mono)}.map-scale div{width:9px;flex:1;margin:5px 0;border-radius:6px;background:linear-gradient(#ed6058,#f2c34d,#60c788,#46aee0,#596bd9)}.map-axis-labels{position:absolute;inset:auto 32px 6px;display:flex;justify-content:space-between;color:var(--ui-subtle);font:8px var(--ui-mono)}.map-controls{display:flex;align-items:end;justify-content:space-between;gap:18px;max-width:610px;margin:0 auto}.map-controls label{display:grid;grid-template-columns:1fr auto;min-width:220px}.map-controls output{color:var(--ui-blue-bright);font:11px var(--ui-mono)}.map-controls input{grid-column:1/-1;width:100%;accent-color:var(--ui-blue)}.dot-sep{padding:0 4px;color:#526373}.workflow-specimen{max-width:840px;margin:auto}.workflow-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--ui-border-soft)}.step-number{width:27px;height:27px;display:grid;place-items:center;border:1px solid #354653;border-radius:50%;color:#9eacb7;font:10px var(--ui-mono)}.workflow-item.complete .step-number{color:var(--ui-green);border-color:#327254;background:#14271e}.workflow-item.active .step-number{color:var(--ui-blue-bright);border-color:#357fc2;background:#142d43}.workflow-item h3{margin:0;font-size:11px}.workflow-item p{margin:2px 0 0;color:var(--ui-muted);font-size:9px}.workflow-state{margin-left:auto;color:var(--ui-subtle);font-size:8px;letter-spacing:.1em}.workflow-item.active .workflow-state{color:var(--ui-blue-bright)}.workflow-progress{padding:15px 0 4px}.progress-label{display:flex;justify-content:space-between;font-size:10px}.progress-label b{color:var(--ui-blue-bright);font-family:var(--ui-mono)}.workflow-progress progress{display:block;width:100%;height:7px;margin:8px 0;accent-color:var(--ui-blue)}.workflow-progress>p{margin:0;color:var(--ui-muted);font-size:9px}.workflow-actions{display:flex;gap:8px;padding-top:10px}.status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.status-card{padding:15px;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-panel)}.status-card-top{display:flex;align-items:center;gap:7px}.status-icon{width:22px;height:22px;display:grid;place-items:center;border-radius:6px;font-size:11px;font-weight:800}.status-icon.green{color:var(--ui-green);background:#173426}.status-icon.amber{color:var(--ui-amber);background:#382c18}.status-icon.blue{color:var(--ui-blue-bright);background:#172d40}.status-label{color:var(--ui-subtle);font-size:8px;letter-spacing:.12em;font-weight:800}.status-live{margin-left:auto;color:var(--ui-green);font-size:8px;font-weight:800}.amber-text{color:var(--ui-amber)}.blue-text{color:var(--ui-blue-bright)}.status-card h3{margin:12px 0 3px;font-size:12px}.status-card>p{min-height:29px;margin:0 0 11px;color:var(--ui-muted);font-size:9px}.status-meta{display:flex;justify-content:space-between;padding:5px 0;border-top:1px solid var(--ui-border-soft);color:var(--ui-subtle);font-size:9px}.status-meta b{color:#c5d0d9;font-weight:600}.text-green{color:var(--ui-green)!important}.full-button{width:100%}.camera-mini{height:57px;display:flex;align-items:flex-end;justify-content:space-between;padding:8px;border:1px solid #31414e;border-radius:6px;background:radial-gradient(ellipse at 50% 115%,#526b72 0,#293c44 44%,#16222a 75%);color:#cad4dc;font-size:8px}.camera-mini b{font:8px var(--ui-mono);color:#a3b2be}.file-specimen{max-width:840px;margin:auto}.file-drop{display:flex;align-items:center;gap:12px;padding:13px;border:1px dashed #3a4d5c;border-radius:9px;background:#111a22}.file-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#173450;color:var(--ui-blue-bright);font-size:18px}.file-drop>div{flex:1}.file-drop b,.file-selected b{font-size:10px}.file-drop p,.file-selected p{margin:2px 0 0;color:var(--ui-muted);font-size:9px}.file-selected{display:flex;align-items:center;gap:10px;padding:13px 3px;border-bottom:1px solid var(--ui-border-soft)}.file-type{width:29px;height:31px;display:grid;place-items:center;border:1px solid #3c5060;border-radius:5px;color:#9db2c4;font:8px var(--ui-mono)}.file-size{margin-left:auto;color:var(--ui-subtle);font:9px var(--ui-mono)}.file-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:12px}.green-dot{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--ui-green)}.library-footer{display:flex;justify-content:space-between;color:var(--ui-subtle);font-size:10px;padding:6px 0 22px}.library-footer a{color:var(--ui-blue-bright);text-decoration:none}
@media(max-width:1020px){.library-sidebar{width:210px}.library-main{margin-left:210px;padding-right:28px;padding-left:28px}.intro-grid{grid-template-columns:1fr}.intro-card{min-height:auto}.status-grid{grid-template-columns:1fr}.status-card>p{min-height:0}}
@media(max-width:700px){.library-sidebar{position:sticky;inset:0;width:auto;height:auto;padding:10px 14px;flex-direction:row;align-items:center;gap:15px;overflow:auto;border-right:0;border-bottom:1px solid var(--ui-border);}.brand{flex:none}.brand-mark{width:30px;height:30px}.sidebar-label,.sidebar-note{display:none}.library-sidebar nav{display:flex;gap:5px;overflow:auto}.library-sidebar nav a{flex:none;padding:7px 9px;font-size:10px}.library-main{margin:0;padding:23px 16px}.page-header{display:block}.version-pill{margin-top:13px}.section-heading{align-items:flex-start;display:block}.source-tag{margin-top:7px;white-space:normal}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.specimen{padding:14px}.jog-top{grid-template-columns:1fr 1fr}.homed-state{grid-column:1/-1}.jog-layout{grid-template-columns:minmax(0,1fr) 55px;gap:10px}.xy-pad{grid-column:1;grid-row:1}.z-pad{grid-column:2;grid-row:1}.control-actions{grid-column:1/-1;grid-template-columns:1fr 1fr 1fr}.control-actions .button{padding:8px 5px;font-size:9px}.map-summary{gap:7px}.map-summary span{font-size:7px}.map-stage{padding-left:17px;padding-right:25px}.map-grid{gap:2px}.map-cell{min-height:12px}.map-controls{align-items:flex-start}.map-controls label{min-width:0;flex:1}.workflow-actions{flex-wrap:wrap}.file-drop{flex-wrap:wrap}.file-drop .button{margin-left:44px}.file-bottom{align-items:flex-start;flex-direction:column}.file-bottom .button{width:100%}}
@media(max-width:420px){.library-sidebar{align-items:flex-start;flex-direction:column;gap:7px}.library-sidebar nav{width:100%}.page-header h1{font-size:29px}.object-title{display:block}.object-title>.state-chip{margin-top:8px}.map-summary{margin-top:11px}.stock-wrap{padding-left:27px;padding-right:27px}.stock{height:190px}.origin-choice em{font-size:8px}.xy-pad{grid-template-columns:repeat(3,45px);grid-template-rows:repeat(3,40px)}.dro{gap:6px;padding:8px 6px;font-size:9px}.control-actions{grid-template-columns:1fr}.file-size{display:none}}
.code-header{align-items:flex-start}.code-back{text-decoration:none;color:var(--ui-blue-bright)}.code-callout{padding:14px 16px;margin:0 0 28px;border:1px solid #4e4126;border-radius:9px;background:#221e16;color:#c8bda8;font-size:11px}.code-callout b{color:#f1ce87}.code-category{padding:0 0 30px;margin:0 0 30px;border-bottom:1px solid var(--ui-border-soft)}.code-category-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:12px}.code-category-heading h2{margin:3px 0 0;font-size:20px}.code-category-heading p{margin:0;color:var(--ui-muted);font-size:10px}.code-card{margin:10px 0;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-panel);overflow:hidden}.code-card summary{display:flex;align-items:center;gap:10px;padding:13px 15px;cursor:pointer;list-style:none}.code-card summary::-webkit-details-marker{display:none}.code-card summary:after{content:"＋";margin-left:auto;color:var(--ui-muted);font-size:14px}.code-card[open] summary:after{content:"−"}.code-card-title{font-weight:700;font-size:12px}.code-card-summary{color:var(--ui-muted);font-size:10px}.code-card-body{padding:0 14px 14px}.code-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--ui-border-soft);color:var(--ui-muted);font-size:9px}.code-meta a{color:var(--ui-blue-bright);text-decoration:none}.code-meta a:hover{text-decoration:underline}.code-requires{margin:0 0 9px;color:var(--ui-subtle);font-size:9px}.code-requires b{color:#aab8c3}.code-toolbar{display:flex;align-items:center;gap:8px}.copy-code{padding:5px 9px;border:1px solid #394b59;border-radius:6px;background:#1a2731;color:#d5e0e8;font-size:9px;font-weight:700;cursor:pointer}.copy-code:hover{border-color:var(--ui-blue);color:#fff}.copy-state{color:var(--ui-green);font-size:9px}.code-frame{margin:0;border:1px solid #263541;border-radius:8px;background:#0b1117;overflow:auto;max-height:560px}.code-frame code{display:block;padding:13px 15px;color:#c7d5e2;font:10px/1.55 var(--ui-mono);white-space:pre;tab-size:4}.code-line-count{color:var(--ui-subtle);font:9px var(--ui-mono)}#codeNav{max-height:calc(100vh - 230px);overflow:auto}.code-page .sidebar-note{font-size:10px}@media(max-width:700px){.code-category-heading{display:block}.code-category-heading p{margin-top:5px}.code-card summary{flex-wrap:wrap}.code-card-summary{flex-basis:100%;padding-left:0}.code-meta{align-items:flex-start;flex-direction:column}.code-frame code{font-size:9px}}
