:root{--color-primary: #0F6E56;--color-primary-light: #1D9E75;--color-primary-dark: #085041;--color-accent: #1A6A9E;--color-accent-light: #2588C8;--color-bg: #F0F4F3;--color-surface: #FFFFFF;--color-surface-2: #F7FAF9;--color-border: #D4DDD9;--color-border-light: #E8EEEC;--color-text: #1A2E28;--color-text-2: #4A6860;--color-text-3: #7A9890;--color-new: #1D9E75;--color-reviewing: #E8A020;--color-validated: #2588C8;--color-preparing: #7B4FBF;--color-completed: #3A7A3A;--color-exported: #0F6E56;--color-cancelled: #C44040;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.12);--sidebar-w: 220px;--header-h: 64px}[data-theme=dark]{--color-bg: #0E1A17;--color-surface: #162320;--color-surface-2: #1D2E2A;--color-border: #2A3F38;--color-border-light: #223530;--color-text: #E8F0EC;--color-text-2: #9DC4B8;--color-text-3: #5A8A7A}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--color-bg);color:var(--color-text);font-size:16px;line-height:1.5}button,[role=button],a,input,select,textarea{min-height:44px}button{cursor:pointer;border:none;font-family:inherit;font-size:15px;border-radius:var(--radius-sm);transition:all .15s ease}button:active{transform:scale(.97)}input,select,textarea{font-family:inherit;font-size:15px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:0 14px;outline:none;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--color-primary-light);box-shadow:0 0 0 3px #1d9e7526}textarea{padding:12px 14px;min-height:80px;resize:vertical}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translate(-16px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade{animation:fadeIn .2s ease}.animate-pulse{animation:pulse 1.5s ease infinite}.spinner{animation:spin .8s linear infinite}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
