/* Reusable primitives. Keep page layout in moo-theme.css and product stylesheets. */
.moo-app [hidden],.moo-select-popup[hidden]{display:none!important}
.moo-icon{width:20px;height:20px;flex:none;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.moo-button,.moo-icon-button,.moo-select-trigger{font-family:var(--moo-font);font-size:14px;font-weight:550;cursor:pointer;line-height:1.5;box-sizing:border-box;transition:background var(--moo-motion),border-color var(--moo-motion),box-shadow var(--moo-motion);-webkit-tap-highlight-color:transparent}
.moo-button{min-height:44px;border-radius:var(--moo-radius-sm);padding:11px 18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--moo-border);text-decoration:none}
.moo-button-primary{color:#fff;background:var(--moo-brand);border-color:var(--moo-brand)}.moo-button-primary:hover{background:var(--moo-brand-hover);border-color:var(--moo-brand-hover)}
.moo-button-secondary{background:#fff;color:var(--moo-text)}.moo-button-secondary:hover{background:var(--moo-surface-soft);border-color:var(--moo-border-hover)}
.moo-button:disabled,.moo-icon-button:disabled,.moo-select-trigger:disabled{cursor:not-allowed;opacity:.55;transform:none}
.moo-icon-button{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid transparent;background:transparent;color:var(--moo-muted);border-radius:8px;padding:6px}.moo-icon-button:hover{background:var(--moo-surface-soft);color:var(--moo-text)}
.moo-app :is(button,a,input,textarea,summary):focus-visible,.moo-select-option:focus-visible,.moo-select-search:focus-visible{outline:2px solid var(--moo-brand);outline-offset:3px}.moo-select-trigger:focus-visible{outline:none;border-color:var(--moo-brand);box-shadow:var(--moo-focus)}
.moo-input{font:14px/1.6 var(--moo-font);width:100%;box-sizing:border-box;background:#fff;color:var(--moo-text);border:1px solid var(--moo-border);border-radius:var(--moo-radius-sm);padding:11px 13px;min-height:44px}
.moo-select{display:block;position:relative;min-width:0;width:100%;font-family:var(--moo-font);line-height:1.5}
.moo-app select.moo-select-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;opacity:0;overflow:hidden;clip-path:inset(50%);border:0!important;pointer-events:none;min-width:0!important;min-height:0!important}
.moo-select-trigger{width:100%;display:flex;align-items:center;gap:9px;min-height:44px;padding:10px 12px;border:1px solid var(--moo-border);border-radius:var(--moo-radius-sm);color:var(--moo-text);background:#fff;text-align:left;white-space:nowrap!important}
.moo-select-trigger>.moo-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;min-width:0;font-size:inherit}.moo-select-trigger>.moo-icon:last-child{width:15px;height:15px;color:var(--moo-dim);transition:transform var(--moo-motion)}.moo-select.is-open .moo-select-trigger>.moo-icon:last-child{transform:rotate(180deg)}
.moo-select-trigger:hover:not(:disabled){border-color:var(--moo-border-hover);background:#fcfefd}.moo-select.is-open>.moo-select-trigger{border-color:var(--moo-brand);box-shadow:var(--moo-focus)}.moo-select-trigger[aria-invalid=true]{border-color:var(--moo-danger)}
.moo-select-popup{position:fixed;z-index:1000;background:#fff;color:var(--moo-text);border:1px solid var(--moo-border);border-radius:12px;padding:7px;box-shadow:var(--moo-shadow-float);font:14px/1.5 var(--moo-font);display:flex;flex-direction:column;overflow:hidden;animation:moo-pop-in .13s ease-out;box-sizing:border-box}
.moo-select-caption{font-size:11px;letter-spacing:.04em;color:var(--moo-dim);padding:10px 11px 11px;font-weight:550;border-bottom:1px solid #edf2ef;margin-bottom:5px}
.moo-select-search{flex:none;box-sizing:border-box;border:1px solid var(--moo-border);border-radius:7px;padding:9px 11px;font:13px/1.5 var(--moo-font);color:var(--moo-text);background:var(--moo-bg);margin:3px 3px 8px;width:calc(100% - 6px);min-height:40px}
.moo-select-options{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bdd0c5 transparent;min-height:0;flex:1}
.moo-select-option{width:100%;border:0;display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:42px;padding:10px 11px;background:transparent;border-radius:7px;color:var(--moo-text);text-align:left;font:14px/1.45 var(--moo-font);cursor:pointer;box-sizing:border-box}
.moo-select-option:focus{outline:0;background:var(--moo-surface-soft)}.moo-select-option:hover:not(:disabled){background:var(--moo-surface-soft)}.moo-select-option[aria-selected=true]{background:var(--moo-brand-soft);color:var(--moo-brand)}.moo-select-option[aria-selected=true]:focus{box-shadow:inset 0 0 0 1px #9acbb4}.moo-select-option:disabled{color:#9ba8a2;cursor:not-allowed}.moo-select-option>.moo-icon{width:17px;height:17px;opacity:0}.moo-select-option[aria-selected=true]>.moo-icon{opacity:1}
.moo-select-option-copy{display:flex;flex-direction:column;gap:3px;min-width:0;overflow-wrap:anywhere}.moo-select-option-copy small{font-size:11px;font-weight:400;color:var(--moo-dim)}.moo-select-group,.moo-select-empty{font-size:12px;padding:12px;color:var(--moo-muted)}
body.moo-app .moo-language-switch{display:flex;position:static;align-items:center;padding:0 0 0 18px;border-left:1px solid var(--moo-border);margin:0;flex:none;gap:0;color:var(--moo-muted)}.moo-language-switch>.icon,.moo-language-switch>span[aria-hidden]{display:none!important}.moo-language-switch .moo-select{width:133px}.moo-language-switch .moo-select-trigger{border:1px solid transparent;background:transparent;padding:10px 11px;font-size:13px;min-height:42px}.moo-language-switch .moo-select-trigger:hover{background:var(--moo-brand-soft);border-color:#d9e9df}.moo-language-switch .moo-select-trigger>.moo-icon:first-child{width:17px;height:17px;color:var(--moo-muted)}
.moo-inline-alert.alert.show{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border-radius:var(--moo-radius-sm);border:1px solid #cde0ea;background:var(--moo-info-soft);color:var(--moo-info);font:13px/1.75 var(--moo-font)}.moo-inline-alert>.moo-icon{margin-top:1px;width:19px;height:19px}.moo-inline-alert>span{min-width:0;overflow-wrap:anywhere;white-space:pre-line}.moo-inline-alert.alert.success{background:var(--moo-brand-soft);border-color:#c2e0cc;color:#176644}.moo-inline-alert.alert.error{background:var(--moo-danger-soft);border-color:#edcccc;color:var(--moo-danger)}.moo-inline-alert.alert.warning{background:var(--moo-warning-soft);border-color:#e9d9ad;color:var(--moo-warning)}
.moo-toast-region{position:fixed;right:24px;bottom:24px;z-index:2500;width:min(390px,calc(100vw - 32px));display:flex;flex-direction:column;gap:10px}.moo-toast{position:relative;background:#fff;border-radius:12px;box-shadow:var(--moo-shadow-float);animation:moo-pop-in .16s ease-out}.moo-toast .moo-inline-alert{padding-right:46px;margin:0;min-height:55px}.moo-toast>.moo-icon-button{position:absolute;right:8px;top:10px}
.moo-modal{position:fixed;margin:auto;padding:0;border:1px solid var(--moo-border);border-radius:20px;background:#fff;color:var(--moo-text);width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 48px);box-shadow:0 30px 100px #102f3640;font-family:var(--moo-font);overflow:auto;animation:moo-pop-in .16s ease-out;box-sizing:border-box}.moo-modal::backdrop{background:#122e3b70;backdrop-filter:blur(4px)}.moo-modal-body{padding:30px}.moo-modal-icon{width:46px;height:46px;border-radius:13px;background:var(--moo-brand-soft);color:var(--moo-brand);display:grid;place-items:center;margin-bottom:20px}.moo-modal-icon.error{background:var(--moo-danger-soft);color:var(--moo-danger)}.moo-modal-icon .moo-icon{width:25px;height:25px}.moo-modal h2{font-size:21px;line-height:1.5;font-weight:650;margin:0 0 12px;letter-spacing:-.4px;color:var(--moo-text)}.moo-modal-message{font-size:14px;line-height:1.9;color:var(--moo-muted);margin:0 0 22px;white-space:pre-wrap;overflow-wrap:anywhere}.moo-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.moo-modal-actions .moo-button{min-width:90px}.moo-modal .moo-input{margin-top:8px}
.moo-tooltip{position:fixed;z-index:3000;max-width:min(280px,calc(100vw - 24px));padding:8px 11px;border-radius:8px;background:#173c35;color:#fff;box-shadow:var(--moo-shadow-float);font:12px/1.65 var(--moo-font);pointer-events:none;box-sizing:border-box;overflow-wrap:anywhere;animation:moo-pop-in .12s ease-out}
.moo-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid #cce4d6;border-radius:999px;background:var(--moo-brand-soft);color:var(--moo-brand);font:550 11px/1.4 var(--moo-font)}
@keyframes moo-pop-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:720px){body.moo-app .moo-language-switch{padding-left:0;border:0}.moo-language-switch .moo-select{width:107px}.moo-language-switch .moo-select-trigger{gap:6px;padding:8px;font-size:12px;min-height:40px}.moo-language-switch .moo-select-trigger>.moo-icon:first-child{width:15px;height:15px}.moo-toast-region{right:16px;bottom:16px}.moo-modal-body{padding:24px}.moo-modal h2{font-size:20px}.moo-select-trigger{font-size:13px}.moo-select-option{font-size:14px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.moo-select-popup,.moo-modal,.moo-tooltip,.moo-toast{animation:none}.moo-select-trigger,.moo-button,.moo-select-trigger>.moo-icon{transition:none}}
