:root{--color-orange-50:#fff7ed;--color-orange-100:#ffedd5;--color-orange-200:#fed7aa;--color-orange-300:#fdba74;--color-orange-400:#fb923c;--color-orange-500:#f97316;--color-orange-600:#ea580c;--color-orange-700:#c2410c;--color-orange-800:#9a3412;--color-orange-900:#7c2d12;--color-grey-50:#f9fafb;--color-grey-100:#f3f4f6;--color-grey-200:#e5e7eb;--color-grey-300:#d1d5db;--color-grey-400:#9ca3af;--color-grey-500:#6b7280;--color-grey-600:#4b5563;--color-grey-700:#374151;--color-grey-800:#1f2937;--color-grey-900:#111827;--color-grey-950:#0f0f0f;--color-success:#22c55e;--color-success-light:#dcfce7;--color-danger:#dc2626;--color-danger-light:#fee2e2;--color-warning:#fbbf24;--color-warning-light:#fef3c7;--color-info:#3b82f6;--color-info-light:#dbeafe;--bg-page:#f9fafb;--bg-card:#fff;--bg-elevated:#fff;--bg-input:#fff;--bg-hover:#f3f4f6;--text-primary:#111827;--text-secondary:#4b5563;--text-muted:#9ca3af;--text-inverse:#fff;--border-color:#e5e7eb;--border-focus:#f97316;--accent-orange:#f97316;--accent-green:#22c55e;--accent-blue:#3b82f6;--accent-red:#dc2626;--accent-yellow:#fbbf24;--accent-purple:#8b5cf6;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:0.9375rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease}.dark,[data-theme=dark]{--bg-page:#0f0f0f;--bg-card:#1a1a1a;--bg-elevated:#262626;--bg-input:#1a1a1a;--bg-hover:#333;--text-primary:#fff;--text-secondary:#ccc;--text-muted:#888;--text-inverse:#111827;--border-color:#333;--border-focus:#f97316;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -1px rgba(0,0,0,.3);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -2px rgba(0,0,0,.4)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-page:#0f0f0f;--bg-card:#1a1a1a;--bg-elevated:#262626;--bg-input:#1a1a1a;--bg-hover:#333;--text-primary:#fff;--text-secondary:#ccc;--text-muted:#888;--text-inverse:#111827;--border-color:#333;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -1px rgba(0,0,0,.3);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -2px rgba(0,0,0,.4)}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-page);transition:background-color var(--transition-base),color var(--transition-base);min-height:100vh}.page-container{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-page);position:relative}.page-container:before{content:"";position:fixed;inset:0;background-image:url(/bg-pattern.png);background-size:500px;background-position:50%;background-repeat:repeat;opacity:.025;pointer-events:none;z-index:0}:root:not([data-theme=light]) .page-container:before,[data-theme=dark] .page-container:before{opacity:.03}[data-theme=light] .page-container:before{opacity:.04}.page-container>*{position:relative;z-index:1}.header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:var(--space-md) var(--space-lg);transition:background-color var(--transition-base),border-color var(--transition-base)}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:600px;margin:0 auto}.header-title{font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary)}.header-subtitle{font-size:var(--font-size-xs);color:var(--text-muted);margin-top:2px}.back-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-primary);cursor:pointer;text-decoration:none;transition:background var(--transition-fast)}.back-btn:hover{background:var(--bg-hover)}.main{flex:1 1;padding:var(--space-lg);padding-bottom:100px;max-width:600px;margin:0 auto;width:100%}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:background-color var(--transition-base),border-color var(--transition-base)}.card-hover:hover{box-shadow:var(--shadow-md);border-color:var(--color-grey-300)}.card-sm{padding:var(--space-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.875rem 1.25rem;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;line-height:1;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);min-height:48px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-orange);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-orange-600)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--color-grey-400)}.btn-success{background:var(--accent-green);color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.btn-danger{background:var(--accent-red);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-outline-danger{background:transparent;color:var(--accent-red);border:1px solid var(--accent-red)}.btn-outline-danger:hover:not(:disabled){background:var(--color-danger-light)}.btn-ghost{background:transparent;color:var(--text-secondary);border:none}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-block{width:100%}.btn-sm{padding:.5rem 1rem;font-size:var(--font-size-xs);min-height:36px}.btn-lg{padding:1rem 1.5rem;font-size:var(--font-size-base);min-height:56px}.form-group{margin-bottom:var(--space-lg)}.label{display:block;font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--space-sm)}.input,.label{color:var(--text-primary)}.input{width:100%;padding:.875rem 1rem;font-family:var(--font-family);font-size:var(--font-size-base);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-height:48px}.input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(249,115,22,.15)}.input::placeholder{color:var(--text-muted)}.input:disabled{background:var(--bg-hover);cursor:not-allowed;opacity:.7}.textarea{min-height:120px;resize:vertical}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236B7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.25rem;padding-right:2.5rem}.alert{padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.alert-success{background:var(--color-success-light);color:#166534;border:1px solid #86efac}.alert-danger{background:var(--color-danger-light);color:#991b1b;border:1px solid #fca5a5}.alert-warning{background:var(--color-warning-light);color:#92400e;border:1px solid #fcd34d}.alert-info{background:var(--color-info-light);color:#1e40af;border:1px solid #93c5fd}.badge{display:inline-flex;align-items:center;padding:.375rem .75rem;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.025em;border-radius:var(--radius-full)}.badge-draft{background:hsla(220,9%,46%,.15);color:#6b7280}.badge-sent{background:rgba(59,130,246,.15);color:#2563eb}.badge-pending{background:rgba(251,191,36,.15);color:#d97706}.badge-paid{background:rgba(34,197,94,.15);color:#16a34a}.badge-overdue{background:rgba(239,68,68,.15);color:#dc2626}.badge-cancelled{background:hsla(220,9%,46%,.15);color:#6b7280;text-decoration:line-through}.badge-accepted{background:rgba(34,197,94,.15);color:#16a34a}.badge-declined{background:rgba(239,68,68,.15);color:#dc2626}.badge-quote{background:rgba(139,92,246,.15);color:#7c3aed}.badge-active{background:rgba(59,130,246,.15);color:#2563eb}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--border-color);padding:var(--space-sm) 0;padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom, 0));z-index:1000;transition:background-color var(--transition-base),border-color var(--transition-base)}.bottom-nav-content{justify-content:space-around;max-width:500px;margin:0 auto}.bottom-nav-content,.nav-item{display:flex;align-items:center}.nav-item{flex-direction:column;gap:4px;padding:var(--space-sm);color:var(--text-muted);text-decoration:none;font-size:var(--font-size-xs);font-weight:500;transition:color var(--transition-fast)}.nav-item.active,.nav-item:hover{color:var(--accent-orange)}.nav-icon{display:flex;align-items:center;justify-content:center}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-success{color:var(--accent-green)}.text-danger{color:var(--accent-red)}.text-warning{color:var(--accent-yellow)}.text-primary{color:var(--accent-orange)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-normal{font-weight:400}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-xs{margin-bottom:var(--space-xs)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.w-full{width:100%}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@keyframes pulseRing{0%{transform:scale(1);opacity:.8}to{transform:scale(1.6);opacity:0}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-fadeIn{animation:fadeIn var(--transition-base) ease-out}.animate-slideUp{animation:slideUp var(--transition-slow) ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--bg-hover) 50%,var(--bg-elevated) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:var(--radius-sm)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent-orange);border-radius:50%;animation:spin .8s linear infinite}@media print{.bottom-nav,.header,.no-print{display:none!important}.main{padding:0}body{background:#fff;color:#000}.card{border:1px solid #ccc;box-shadow:none}}:focus-visible{outline:2px solid var(--accent-orange);outline-offset:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-orange);outline-offset:2px}:focus:not(:focus-visible){outline:none}