:root{--font-heading:Georgia,"Times New Roman",serif;--font-body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg:#f6f3ec;--bg-alt:#ece4d6;--surface:#fffcf7e0;--surface-strong:#fff9f2;--text:#261d17;--text-soft:#63584f;--line:#5c453133;--accent:#0f4f59;--accent-2:#bd5a1b;--success:#0f6a43;--danger:#8e2f25}*{box-sizing:border-box}html,body{min-height:100%;color:var(--text);background:radial-gradient(circle at 10% 10%,#f6d9bf 0 20%,transparent 35%),radial-gradient(circle at 90% 0%,#bfd8ef 0 18%,transparent 34%),linear-gradient(145deg,var(--bg),var(--bg-alt));margin:0;padding:0}body{font-family:var(--font-body),sans-serif}.app-layout{grid-template-columns:minmax(0,1fr);min-height:100vh;display:grid}.app-layout:has(.side-nav){grid-template-columns:280px minmax(0,1fr)}.content-layout{min-width:0;padding:1.2rem 1.8rem}.shell{gap:1rem;min-width:0;max-width:1200px;margin:0 auto;padding:1.2rem .8rem 2.8rem;display:grid}.side-nav{border-right:1px solid var(--line);background:radial-gradient(circle at 20% 15%,#ffe4b4 0 24%,#0000 35%),radial-gradient(circle at 80% 10%,#cae2ff 0 20%,#0000 30%),linear-gradient(#f2e7d7,#ede2d1);align-self:start;min-height:100vh;padding:1.6rem 1.3rem;position:sticky;top:0}.nav-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);margin:0;font-size:.72rem}.nav-title{font-family:var(--font-heading),serif;margin:.45rem 0 1.2rem;font-size:1.8rem;line-height:1.05}.nav-links{gap:.7rem;margin-bottom:.9rem;display:grid}.nav-link{color:var(--text);border:1px solid var(--line);background:#fff8eecc;border-radius:12px;padding:.75rem .8rem;font-weight:500;text-decoration:none}.nav-link.active{color:#fff;background:linear-gradient(120deg,#0f4f59,#1f6975);border-color:#0000}.signout-btn{width:100%}.hero{border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:22px;padding:1.8rem;box-shadow:0 12px 30px #261d1714}.title{letter-spacing:-.03em;font-size:clamp(1.6rem,2.1vw,2.5rem);font-family:var(--font-heading),sans-serif;margin:0}.subtitle{color:var(--text-soft);max-width:72ch;margin-top:.6rem}.grid{grid-template-columns:1fr;gap:1rem;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:18px;min-width:0;padding:1.25rem;box-shadow:0 10px 22px #261d170f}.panel-stack{gap:1rem;display:grid}.card h2,.card h3{font-family:var(--font-heading),sans-serif;margin-top:0;margin-bottom:.6rem}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.section-head h3{margin:0}.row{gap:.9rem;display:grid}.row.two{grid-template-columns:repeat(2,minmax(0,1fr))}.row.three{grid-template-columns:repeat(3,minmax(0,1fr))}textarea,select,input[type=text],input[type=email],input[type=password],input[type=file]{border:1px solid var(--line);background:var(--surface-strong);width:100%;color:var(--text);font:inherit;border-radius:12px;padding:.8rem}input[type=checkbox]{accent-color:var(--accent)}button{appearance:none;font:inherit;cursor:pointer;white-space:normal;border:1px solid #0000;border-radius:12px;padding:.68rem .95rem;transition:transform .14s,opacity .14s}button:hover{transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.5}.btn-primary{color:#f5fbff;background:linear-gradient(90deg,#0d4a53,#1f6874)}.btn-secondary{border-color:var(--line);color:var(--text);background:#fff3e4}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.metric{border:1px solid var(--line);background:#fff7eb;border-radius:14px;padding:.95rem}.metric .label{color:var(--text-soft);margin-bottom:.3rem;display:block}.metric .value{font-size:1.2rem;font-weight:700;font-family:var(--font-heading),sans-serif}table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;padding:.62rem .52rem}tbody tr:nth-child(odd){background:#fff7ea59}.pill{text-transform:uppercase;border:1px solid;border-radius:999px;padding:.2rem .55rem;font-size:.78rem;display:inline-block}.pill.success{color:var(--success);background:#0f6a431f;border-color:#0f6a4359}.pill.failed{color:var(--danger);background:#8e2f251a;border-color:#8e2f254d}.pill.processing,.pill.queued{color:var(--accent-2);background:#19446d17;border-color:#19446d59}.hint{color:var(--text-soft);font-size:.88rem}.align-start{align-items:start}.checklist{border:1px dashed var(--line);background:#fffaf3bf;border-radius:12px;padding:.8rem}.checklist label{align-items:center;gap:.5rem;display:flex}.action-row button{min-height:48px}.control-row{flex-wrap:wrap;gap:.7rem;padding-top:.15rem;display:flex}.table-wrap{width:100%;overflow-x:auto}.mapping-panel{gap:.9rem;display:grid}.mapping-panel>summary{cursor:pointer;font-family:var(--font-heading),sans-serif;justify-content:space-between;align-items:center;gap:.75rem;font-size:1.75rem;font-weight:700;list-style:none;display:flex}.mapping-panel>summary::-webkit-details-marker{display:none}.mapping-panel>summary:after{content:"+";font-family:var(--font-body),sans-serif;color:var(--text-soft);font-size:1.4rem;line-height:1}.mapping-panel[open]>summary:after{content:"-"}.mapping-panel-content{padding-top:.2rem}.auth-shell{align-content:center;max-width:620px;min-height:calc(100vh - 3rem);display:grid}.auth-card{max-width:100%}.auth-panel{background:radial-gradient(circle at top right,#afd0ff66,transparent 50%),radial-gradient(circle at bottom left,#ffe0b48c,transparent 52%),var(--surface);border-radius:24px;padding:1.4rem;position:relative;overflow:hidden}.auth-panel-head{gap:.35rem;display:grid}.auth-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);margin:0;font-size:.72rem;font-weight:600}.auth-form{margin-top:.3rem}.auth-form .field{gap:.42rem;font-weight:600;display:grid}.auth-form .btn-primary{min-height:50px}.auth-switch{margin:0}.auth-switch a{color:#0f4f59;font-weight:600}.auth-error{color:#8f392e}.progress-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;display:flex}.progress-head .hint{margin:0}.progress-bar{background:#0f4f5929;border-radius:999px;width:100%;height:10px;overflow:hidden}.progress-bar-fill{border-radius:inherit;background:linear-gradient(90deg,#0d4a53,#1f6874);height:100%;transition:width .22s}.active-files{flex-wrap:wrap;gap:.45rem;display:flex}.tracker-tabs{flex-wrap:wrap;gap:.65rem;display:flex}.tracker-tab.active{color:#f5fbff;background:linear-gradient(90deg,#0d4a53,#1f6874);border-color:#0000}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.loading-surface{border:1px solid var(--line)}.page-loading-overlay{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffaf2eb;border:1px solid #0f4f5933;border-radius:999px;align-items:center;gap:.6rem;padding:.55rem .85rem;display:flex;position:fixed;top:34px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #261d171f}.spinner-ring{border:3px solid #0f4f5933;border-top-color:#0f4f59;border-radius:50%;width:20px;height:20px;animation:.85s linear infinite spinnerRotate}.spinner-text{color:var(--text-soft);margin:0;font-size:.88rem}@keyframes spinnerRotate{to{transform:rotate(360deg)}}.loading-stack{gap:.7rem;margin-top:.8rem;display:grid}.loading-line{background:linear-gradient(90deg,#838e9929 25%,#838e9957 40%,#838e9929 60%) 0 0/200% 100%;border-radius:999px;height:12px;animation:1.35s ease-in-out infinite skeletonShimmer}.loading-line-xs{width:42%}.loading-line-sm{width:34%;margin-top:1.1rem}.loading-line-title{width:76%;height:40px;margin-top:.6rem}.loading-line-nav{border-radius:12px;width:100%;height:52px}.loading-line-btn{border-radius:12px;width:100%;height:48px;margin-top:1.2rem}.loading-line-heading{width:44%;height:44px}.loading-line-subtitle{width:70%;margin-top:.65rem}.loading-line-block{border-radius:12px;width:100%;height:120px}.app-loading .card{gap:.9rem;display:grid}@media (max-width:900px){.page-loading-overlay{max-width:calc(100vw - 20px);top:14px}.app-layout{grid-template-columns:1fr}.side-nav{border-right:0;border-bottom:1px solid var(--line);min-height:auto;position:static}.content-layout{padding:.7rem}.row.two,.row.three,.metrics{grid-template-columns:1fr}.tracker-tabs{width:100%}.tracker-tab{flex:1}}
