/* LOLIS component styles — consumed by the React primitives in components/.
   Straight structures, navy-dominant, orange as accent and focus. */

/* ---------- Button ---------- */
.lls-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--weight-semibold);letter-spacing:.01em;border:var(--border-width-hairline) solid transparent;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;white-space:nowrap;transition:var(--transition-control)}
.lls-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.lls-btn:active:not(:disabled){transform:scale(var(--press-scale))}
.lls-btn:disabled,.lls-btn[aria-disabled=true]{background:var(--action-disabled-bg);color:var(--action-disabled-fg);border-color:transparent;box-shadow:none;cursor:not-allowed;transform:none}
.lls-btn--sm{height:var(--control-height-sm);padding:0 var(--control-padding-x-sm);font-size:var(--text-sm)}
.lls-btn--md{height:var(--control-height-md);padding:0 var(--control-padding-x-md);font-size:var(--text-sm)}
.lls-btn--lg{height:var(--control-height-lg);padding:0 var(--control-padding-x-lg);font-size:var(--text-base)}
.lls-btn--block{width:100%}
.lls-btn--primary{background:var(--action-primary-bg);color:var(--text-on-navy)}
.lls-btn--primary:hover:not(:disabled){background:var(--action-primary-bg-hover)}
.lls-btn--primary:active:not(:disabled){background:var(--action-primary-bg-active)}
.lls-btn--accent{background:var(--action-accent-bg);color:var(--text-on-orange)}
.lls-btn--accent:hover:not(:disabled){background:var(--action-accent-bg-hover)}
.lls-btn--accent:active:not(:disabled){background:var(--action-accent-bg-active)}
.lls-btn--outline{background:transparent;color:var(--text-strong);border-color:var(--border-default)}
.lls-btn--outline:hover:not(:disabled){background:var(--navy-50);border-color:var(--border-strong)}
.lls-btn--outline:active:not(:disabled){background:var(--navy-100)}
.lls-btn--ghost{background:transparent;color:var(--text-strong)}
.lls-btn--ghost:hover:not(:disabled){background:var(--navy-50)}
.lls-btn--danger{background:var(--status-danger);color:#fff}
.lls-btn--danger:hover:not(:disabled){filter:brightness(.9)}
.lls-btn--on-navy{background:#fff;color:var(--navy-700)}
.lls-btn--on-navy:hover:not(:disabled){background:var(--navy-50)}
.lls-btn--on-navy-outline{background:transparent;color:#fff;border-color:var(--border-on-navy)}
.lls-btn--on-navy-outline:hover:not(:disabled){background:rgba(255,255,255,.1);border-color:#fff}

/* ---------- IconButton ---------- */
.lls-iconbtn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:var(--border-width-hairline) solid transparent;border-radius:var(--radius-md);color:var(--text-strong);cursor:pointer;transition:var(--transition-control)}
.lls-iconbtn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.lls-iconbtn:hover:not(:disabled){background:var(--navy-50)}
.lls-iconbtn:active:not(:disabled){background:var(--navy-100);transform:scale(var(--press-scale))}
.lls-iconbtn:disabled{color:var(--action-disabled-fg);cursor:not-allowed}
.lls-iconbtn--sm{width:32px;height:32px}
.lls-iconbtn--md{width:40px;height:40px}
.lls-iconbtn--lg{width:48px;height:48px}
.lls-iconbtn--solid{background:var(--action-primary-bg);color:var(--text-on-navy)}
.lls-iconbtn--solid:hover:not(:disabled){background:var(--action-primary-bg-hover)}
.lls-iconbtn--accent{background:var(--action-accent-bg);color:#fff}
.lls-iconbtn--accent:hover:not(:disabled){background:var(--action-accent-bg-hover)}
.lls-iconbtn--outline{border-color:var(--border-default)}
.lls-iconbtn--outline:hover:not(:disabled){border-color:var(--border-strong);background:var(--navy-50)}
.lls-iconbtn--on-navy{color:#fff}
.lls-iconbtn--on-navy:hover:not(:disabled){background:rgba(255,255,255,.12)}

/* ---------- Badge ---------- */
.lls-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.lls-badge--pill{border-radius:var(--radius-pill);padding:0 10px}
.lls-badge--neutral{background:var(--neutral-100);color:var(--neutral-700)}
.lls-badge--navy{background:var(--navy-700);color:#fff}
.lls-badge--accent{background:var(--orange-500);color:#fff}
.lls-badge--success{background:var(--status-success-surface);color:var(--status-success)}
.lls-badge--warning{background:var(--status-warning-surface);color:#8A6100}
.lls-badge--danger{background:var(--status-danger-surface);color:var(--status-danger)}
.lls-badge--info{background:var(--status-info-surface);color:var(--status-info)}
.lls-badge__dot{width:6px;height:6px;background:currentColor;border-radius:var(--radius-pill)}

/* ---------- Tag ---------- */
.lls-tag{display:inline-flex;align-items:center;gap:var(--space-2);height:28px;padding:0 var(--space-3);border:var(--border-width-hairline) solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--surface-subtle);color:var(--text-body);font-size:var(--text-sm);font-weight:var(--weight-medium)}
.lls-tag--selected{background:var(--navy-700);border-color:var(--navy-700);color:#fff}
.lls-tag--interactive{cursor:pointer;transition:var(--transition-control)}
.lls-tag--interactive:hover{border-color:var(--border-strong)}
.lls-tag--selected.lls-tag--interactive:hover{background:var(--navy-800)}
.lls-tag__x{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:0;background:transparent;color:inherit;cursor:pointer;opacity:.6;padding:0;font-size:14px;line-height:1}
.lls-tag__x:hover{opacity:1}

/* ---------- Card ---------- */
.lls-card{position:relative;display:flex;flex-direction:column;background:var(--surface-card);border:var(--border-width-hairline) solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--card-padding)}
.lls-card--lg{padding:var(--card-padding-lg)}
.lls-card--flat{box-shadow:none}
.lls-card--interactive{cursor:pointer;transition:box-shadow var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}
.lls-card--interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.lls-card--featured{border-top:var(--border-width-rule) solid var(--orange-500)}
.lls-card--cut{border-radius:0;clip-path:var(--clip-cut-bottom);padding-bottom:calc(var(--card-padding) + 16px)}
.lls-card--navy{background:var(--surface-navy);border-color:transparent;color:var(--text-on-navy-muted)}
.lls-card--navy .lls-card__title{color:#fff}
.lls-card--navy .lls-card__eyebrow{color:var(--orange-400)}
.lls-card__eyebrow{font-size:var(--type-eyebrow-size);font-weight:var(--type-eyebrow-weight);letter-spacing:var(--type-eyebrow-tracking);text-transform:uppercase;color:var(--text-accent)}
.lls-card__title{margin:var(--space-2) 0 0;font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-strong);letter-spacing:var(--tracking-heading)}
.lls-card__body{margin-top:var(--space-3);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-muted)}
.lls-card__footer{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--space-3)}
.lls-card--navy .lls-card__footer{border-color:var(--border-on-navy)}

/* ---------- Tabs ---------- */
.lls-tabs{display:flex;gap:var(--space-6);border-bottom:1px solid var(--border-subtle)}
.lls-tab{position:relative;appearance:none;background:transparent;border:0;padding:0 0 var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-standard)}
.lls-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:var(--border-width-rule);background:transparent;transition:background-color var(--duration-fast) var(--ease-standard)}
.lls-tab:hover{color:var(--text-strong)}
.lls-tab[aria-selected=true]{color:var(--text-strong)}
.lls-tab[aria-selected=true]::after{background:var(--orange-500)}
.lls-tab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.lls-tabs--boxed{gap:0;border-bottom:0;background:var(--surface-inset);padding:4px;border-radius:var(--radius-md);display:inline-flex}
.lls-tabs--boxed .lls-tab{padding:0 var(--space-4);height:32px;border-radius:var(--radius-xs)}
.lls-tabs--boxed .lls-tab::after{display:none}
.lls-tabs--boxed .lls-tab[aria-selected=true]{background:#fff;box-shadow:var(--shadow-xs)}

/* ---------- Form fields ---------- */
.lls-field{display:flex;flex-direction:column;gap:6px}
.lls-field__label{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.lls-field__label em{color:var(--status-danger);font-style:normal}
.lls-field__help{font-size:var(--text-xs);color:var(--text-subtle)}
.lls-field__error{font-size:var(--text-xs);color:var(--status-danger);font-weight:var(--weight-medium)}
.lls-input,.lls-select{width:100%;height:var(--control-height-md);padding:0 var(--space-3);background:#fff;border:var(--border-width-hairline) solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-body);transition:var(--transition-control)}
.lls-input--lg,.lls-select--lg{height:var(--control-height-lg);font-size:var(--text-base)}
.lls-input--textarea{height:auto;min-height:96px;padding:var(--space-3);resize:vertical;line-height:var(--leading-normal)}
.lls-input::placeholder{color:var(--text-subtle)}
.lls-input:hover:not(:disabled),.lls-select:hover:not(:disabled){border-color:var(--navy-400)}
.lls-input:focus,.lls-select:focus{outline:0;border-color:var(--navy-700);box-shadow:var(--shadow-focus)}
.lls-input:disabled,.lls-select:disabled{background:var(--surface-inset);color:var(--action-disabled-fg);cursor:not-allowed}
.lls-input--invalid,.lls-select--invalid{border-color:var(--status-danger)}
.lls-input--invalid:focus{box-shadow:0 0 0 3px rgba(199,53,27,.25)}
.lls-input--mono{font-family:var(--font-mono);letter-spacing:.04em}
.lls-select{appearance:none;padding-right:var(--space-8);background-image:linear-gradient(45deg,transparent 48%,var(--navy-700) 48% 54%,transparent 54%),linear-gradient(-45deg,transparent 48%,var(--navy-700) 48% 54%,transparent 54%);background-position:calc(100% - 20px) 55%,calc(100% - 13px) 55%;background-size:8px 8px;background-repeat:no-repeat;cursor:pointer}
.lls-inputgroup{display:flex;align-items:center;gap:0}
.lls-inputgroup .lls-input{border-right:0;border-radius:var(--radius-md) 0 0 var(--radius-md)}
.lls-inputgroup .lls-btn{border-radius:0 var(--radius-md) var(--radius-md) 0}

/* ---------- Checkbox / Radio / Switch ---------- */
.lls-choice{display:inline-flex;align-items:flex-start;gap:var(--space-3);cursor:pointer;font-size:var(--text-sm);color:var(--text-body)}
.lls-choice--disabled{cursor:not-allowed;color:var(--action-disabled-fg)}
.lls-choice input{position:absolute;opacity:0;width:0;height:0}
.lls-choice__box{flex:none;width:18px;height:18px;margin-top:2px;background:#fff;border:var(--border-width-thick) solid var(--border-default);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;transition:var(--transition-control)}
.lls-choice__box--radio{border-radius:var(--radius-pill)}
.lls-choice:hover .lls-choice__box{border-color:var(--navy-500)}
.lls-choice input:checked+.lls-choice__box{background:var(--navy-700);border-color:var(--navy-700)}
.lls-choice input:focus-visible+.lls-choice__box{box-shadow:var(--shadow-focus)}
.lls-choice__tick{width:10px;height:10px;color:#fff}
.lls-choice__dot{width:8px;height:8px;border-radius:var(--radius-pill);background:#fff;transform:scale(0);transition:transform var(--duration-fast) var(--ease-standard)}
.lls-choice input:checked+.lls-choice__box .lls-choice__dot{transform:scale(1)}
.lls-choice--disabled .lls-choice__box{background:var(--surface-inset);border-color:var(--border-subtle)}
.lls-choice__text{line-height:1.45}
.lls-choice__desc{display:block;font-size:var(--text-xs);color:var(--text-subtle);margin-top:2px}
.lls-switch{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--text-sm);color:var(--text-body)}
.lls-switch input{position:absolute;opacity:0;width:0;height:0}
.lls-switch__track{flex:none;width:40px;height:22px;background:var(--neutral-300);border-radius:var(--radius-xs);padding:3px;transition:background-color var(--duration-fast) var(--ease-standard)}
.lls-switch__knob{width:16px;height:16px;background:#fff;border-radius:1px;transition:transform var(--duration-fast) var(--ease-standard)}
.lls-switch input:checked+.lls-switch__track{background:var(--orange-500)}
.lls-switch input:checked+.lls-switch__track .lls-switch__knob{transform:translateX(18px)}
.lls-switch input:focus-visible+.lls-switch__track{box-shadow:var(--shadow-focus)}
.lls-switch--disabled{cursor:not-allowed;color:var(--action-disabled-fg)}
.lls-switch--disabled .lls-switch__track{background:var(--neutral-200)}

/* ---------- Dialog ---------- */
.lls-overlay{position:fixed;inset:0;background:var(--surface-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-6);z-index:100;animation:lls-fade var(--duration-base) var(--ease-out)}
.lls-dialog{position:relative;width:100%;max-width:520px;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-overlay);overflow:hidden;animation:lls-rise var(--duration-base) var(--ease-out)}
.lls-dialog::before{content:"";position:absolute;top:0;left:0;right:0;height:var(--border-width-rule);background:var(--orange-500)}
.lls-dialog__head{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-6) var(--space-6) 0}
.lls-dialog__title{flex:1;font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-strong);letter-spacing:var(--tracking-heading)}
.lls-dialog__body{padding:var(--space-3) var(--space-6) var(--space-6);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-muted)}
.lls-dialog__foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--surface-subtle);border-top:1px solid var(--border-subtle)}
@keyframes lls-fade{from{opacity:0}to{opacity:1}}
@keyframes lls-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ---------- Toast ---------- */
.lls-toast{display:flex;align-items:flex-start;gap:var(--space-3);min-width:300px;max-width:420px;padding:var(--space-4);background:var(--navy-900);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:lls-slide var(--duration-base) var(--ease-out)}
.lls-toast__bar{flex:none;width:var(--border-width-rule);align-self:stretch;background:var(--orange-500);border-radius:1px}
.lls-toast--success .lls-toast__bar{background:var(--status-success)}
.lls-toast--danger .lls-toast__bar{background:var(--status-danger)}
.lls-toast--warning .lls-toast__bar{background:var(--status-warning)}
.lls-toast__title{font-size:var(--text-sm);font-weight:var(--weight-semibold)}
.lls-toast__msg{margin-top:2px;font-size:var(--text-xs);color:var(--navy-200);line-height:var(--leading-normal)}
.lls-toast__x{border:0;background:transparent;color:var(--navy-300);cursor:pointer;padding:0;font-size:16px;line-height:1}
.lls-toast__x:hover{color:#fff}
@keyframes lls-slide{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}

/* ---------- Tooltip ---------- */
.lls-tooltip{position:relative;display:inline-flex}
.lls-tooltip__bubble{position:absolute;z-index:60;padding:6px 10px;background:var(--navy-900);color:#fff;font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1.4;border-radius:var(--radius-xs);white-space:nowrap;box-shadow:var(--shadow-md);pointer-events:none;animation:lls-fade var(--duration-instant) var(--ease-out)}
.lls-tooltip__bubble--top{bottom:calc(100% + 8px);left:50%;transform:translateX(-50%)}
.lls-tooltip__bubble--bottom{top:calc(100% + 8px);left:50%;transform:translateX(-50%)}
.lls-tooltip__bubble--left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}
.lls-tooltip__bubble--right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}

/* ---------- Brand: Logo ---------- */
.lls-logo{display:inline-flex;align-items:center}
.lls-logo img{height:100%;width:auto}
.lls-logo--protected{padding:calc(var(--logo-h,40px) * .38)}

/* ---------- Brand: DiagonalBars ---------- */
.lls-bars{display:inline-flex;gap:var(--bar-gap);transform:skewX(var(--slant));pointer-events:none}
.lls-bars>i{display:block;width:var(--bar-width);background:currentColor}
.lls-bars--fade>i:nth-child(1){opacity:.35}
.lls-bars--fade>i:nth-child(2){opacity:.68}
.lls-bars--bleed{position:absolute;top:-15%;bottom:-15%}

/* ---------- Brand: Moldura ---------- */
.lls-moldura{position:relative;background:var(--surface-navy);padding:var(--space-4)}
.lls-moldura__inner{position:relative;background:#fff;padding:var(--space-8)}
.lls-moldura--cut .lls-moldura__inner{clip-path:var(--clip-cut-bottom);padding-bottom:var(--space-12)}
.lls-moldura__accent{position:absolute;top:0;right:var(--space-6);display:flex;gap:8px;transform:skewX(var(--slant));color:var(--orange-500)}
.lls-moldura__accent>i{display:block;width:16px;height:var(--space-4);background:currentColor}

/* ---------- Brand: Icon ---------- */
.lls-icon{font-family:"Material Symbols Sharp";font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 600,"GRAD" 200,"opsz" 24;user-select:none}
.lls-icon--filled{font-variation-settings:"FILL" 1,"wght" 600,"GRAD" 200,"opsz" 24}
