.han-btn{justify-content:center;align-items:center;gap:var(--han-space-1);min-height:max(var(--han-control-h-sm), calc(var(--han-touch-target) - 4px));padding:0 var(--han-space-3);border-radius:var(--han-radius-sm);font-size:var(--han-font-ui-sm);font-weight:var(--han-weight-medium);cursor:pointer;white-space:nowrap;transition:background var(--han-duration-fast) var(--han-ease-standard), color var(--han-duration-fast) var(--han-ease-standard);border:none;display:inline-flex}.han-btn:disabled{opacity:.45;cursor:default;pointer-events:none}.han-btn--sm{min-height:calc(var(--han-control-h-sm) - 2px);padding:0 var(--han-space-2)}.han-btn--primary{background:var(--han-accent);color:var(--han-text-on-accent);font-weight:var(--han-weight-semibold)}.han-btn--primary:hover{background:var(--han-accent-hover)}.han-btn--primary:active{background:var(--han-accent-pressed)}.han-btn--ghost{background:var(--han-field);color:var(--han-text-1)}.han-btn--ghost:hover{background:var(--han-field-hover)}.han-btn--danger{background:var(--han-danger-soft);color:var(--han-danger)}.han-btn--danger:hover{background:var(--han-danger);color:var(--han-text-on-accent)}.han-btn--subtle{color:var(--han-text-2);background:0 0}.han-btn--subtle:hover{background:var(--han-field-hover);color:var(--han-text-1)}.han-icon-btn{width:max(28px, calc(var(--han-touch-target) - 8px));height:max(28px, calc(var(--han-touch-target) - 8px));border-radius:var(--han-radius-sm);color:var(--han-text-2);cursor:pointer;transition:background var(--han-duration-fast) var(--han-ease-standard), color var(--han-duration-fast) var(--han-ease-standard);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.han-icon-btn:after{content:"";inset:calc(-1 * var(--han-hit-slop));position:absolute}.han-icon-btn:hover{background:var(--han-field-hover);color:var(--han-text-1)}.han-icon-btn:disabled{opacity:.45;cursor:default;pointer-events:none}.han-icon-btn--sm{width:max(22px, calc(var(--han-touch-target) - 12px));height:max(22px, calc(var(--han-touch-target) - 12px));border-radius:var(--han-radius-xs)}.han-icon-btn--lg{width:max(var(--han-control-h-sm), var(--han-touch-target));height:max(var(--han-control-h-sm), var(--han-touch-target))}.han-icon-btn--active{background:var(--han-accent-soft);color:var(--han-accent)}.han-icon-btn svg{width:var(--han-icon-sm);height:var(--han-icon-sm)}.han-input{min-height:max(var(--han-control-h-sm), calc(var(--han-touch-target) - 4px));padding:0 var(--han-space-2);background:var(--han-field);border-radius:var(--han-radius-sm);color:var(--han-text-1);font-size:var(--han-font-ui-sm);transition:background var(--han-duration-fast) var(--han-ease-standard);border:none;outline:none}.han-input:focus{background:var(--han-field-hover);box-shadow:0 0 0 2px var(--han-focus-ring)}.han-input:disabled{opacity:.45}.han-input[type=number]{font-variant-numeric:var(--han-numeric)}select.han-input{cursor:pointer}.han-stepper{align-items:center;gap:2px;min-width:0;display:inline-flex}.han-stepper>input{text-align:center;flex:1 1 0;order:2;width:auto;min-width:0}.han-stepper-btn{width:max(24px, calc(var(--han-touch-target) - 12px));border-radius:var(--han-radius-sm);background:var(--han-field);color:var(--han-text-2);font-size:var(--han-font-ui-sm);cursor:pointer;user-select:none;transition:background var(--han-duration-fast) var(--han-ease-standard), color var(--han-duration-fast) var(--han-ease-standard);border:none;flex:none;order:3;justify-content:center;align-self:stretch;align-items:center;padding:0;line-height:1;display:inline-flex;position:relative}.han-stepper-btn:after{content:"";inset:calc(-1 * var(--han-hit-slop));position:absolute}.han-stepper-btn:hover{background:var(--han-field-hover);color:var(--han-text-1)}.han-stepper-btn:active{background:var(--han-accent-soft);color:var(--han-accent)}.han-stepper-btn--dec{order:1}.han-stepper-btn:disabled{opacity:.45;cursor:default;pointer-events:none}.han-field{align-items:center;gap:var(--han-space-1);font-size:var(--han-font-ui-sm);color:var(--han-text-2);display:flex}.han-field>.han-input,.han-field>.han-stepper{flex:1;min-width:0}.han-field-unit{font-size:var(--han-text-xs);color:var(--han-text-3)}.han-check{align-items:center;gap:var(--han-space-2);min-height:max(var(--han-control-h-sm), calc(var(--han-touch-target) - 4px));font-size:var(--han-font-ui-sm);color:var(--han-text-1);cursor:pointer;display:flex}.han-check input{accent-color:var(--han-accent);cursor:pointer}.han-dialog-scrim{z-index:var(--han-z-modal);background:var(--han-scrim);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.han-dialog-scrim--top{align-items:flex-start;padding-top:8vh}.han-dialog-scrim--top .han-dialog{max-height:76dvh}.han-dialog{background:var(--han-surface-1);border:1px solid var(--han-float-border);border-radius:var(--han-radius-lg);max-width:calc(100vw - 48px);max-height:calc(100dvh - 64px);box-shadow:var(--han-float-shadow);flex-direction:column;display:flex;overflow:hidden}.han-dialog-head{align-items:center;gap:var(--han-space-2);padding:var(--han-space-3) var(--han-pad-panel) var(--han-space-2);flex:none;display:flex}.han-dialog-title{min-width:0;font-size:var(--han-text-md);font-weight:var(--han-weight-semibold);color:var(--han-text-1);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.han-dialog-body{min-height:0;padding:0 var(--han-pad-panel) var(--han-space-3);flex:1;overflow-y:auto}.han-dialog-foot{justify-content:flex-end;gap:var(--han-space-2);padding:var(--han-space-2) var(--han-pad-panel) var(--han-space-3);flex:none;display:flex}.han-dialog-message{font-size:var(--han-font-ui);color:var(--han-text-1);word-break:break-word;margin:0;line-height:1.6}.han-menu{min-width:148px;padding:var(--han-space-1);background:var(--han-surface-1);border:1px solid var(--han-float-border);border-radius:var(--han-radius-lg);box-shadow:var(--han-float-shadow);flex-direction:column;display:flex;overflow-y:auto}.han-menu-item{align-items:center;gap:var(--han-space-2);min-height:var(--han-menu-item-h);padding:0 var(--han-space-3);border-radius:var(--han-radius-sm);color:var(--han-text-1);font-size:var(--han-font-ui-sm);text-align:left;white-space:nowrap;cursor:pointer;transition:background var(--han-duration-fast) var(--han-ease-standard);background:0 0;border:none;display:flex}.han-menu-item:hover{background:var(--han-hover)}.han-menu-item:disabled{opacity:.45;cursor:default;pointer-events:none}.han-menu-item--active{background:var(--han-accent-soft);color:var(--han-accent)}.han-menu-item--danger{color:var(--han-danger)}.han-menu-item--danger:hover{background:var(--han-danger-soft)}.han-menu-item svg{width:var(--han-icon-sm);height:var(--han-icon-sm);color:var(--han-text-2);flex:none}.han-menu-item--danger svg{color:var(--han-danger)}.han-menu-label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.han-menu-shortcut{margin-left:var(--han-space-4);font-family:var(--han-font-mono);font-size:var(--han-text-xs);color:var(--han-text-3);flex:none}.han-menu-sep{height:1px;margin:var(--han-space-1) var(--han-space-2);background:var(--han-border-subtle);flex:none}.han-ctx-menu{z-index:var(--han-z-flyout);position:fixed}.han-panel-header{align-items:center;gap:var(--han-space-2);padding:var(--han-space-2) var(--han-pad-panel) var(--han-space-1);flex:none;display:flex}.han-panel-header-title{min-width:0;font-size:var(--han-font-ui-sm);font-weight:var(--han-weight-medium);color:var(--han-text-1);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}
