:root { color-scheme: light; font: 15px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; color: #243b39; background: #f5f5ee; }
* { box-sizing: border-box; }
body { margin: 0; }
button, input, select { font: inherit; }
button { border: 1px solid #1e625a; background: #1e625a; color: white; padding: 10px 17px; border-radius: 7px; cursor: pointer; font-weight: 600; }
button:hover { background: #174c46; }
button:disabled { opacity: .5; cursor: default; }
a.button { display: inline-block; text-decoration: none; padding: 10px 17px; border: 1px solid #d2dcd6; border-radius: 7px; color: #315851; margin-right: 6px; }
button.quiet { color: #315851; background: transparent; border-color: #d2dcd6; }
button.quiet:hover { background: #edf3ed; }
input, select { display: block; width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid #cbd4ce; border-radius: 6px; background: white; color: #243b39; }
input[type=file] { background: #f9faf6; font-size: 13px; }
label { display: block; font-size: 13px; font-weight: 600; }
label input, label select { margin-top: 6px; }
:focus-visible { outline: 3px solid #dba65b; outline-offset: 3px; }
h1 { font-size: clamp(27px, 4vw, 38px); letter-spacing: -.045em; line-height: 1.2; margin: 7px 0 10px; }
h2 { font-size: 21px; margin: 3px 0 0; letter-spacing: -.025em; }
p { margin: 0 0 15px; }
.muted, .fineprint { color: #66736e; }
.fineprint { font-size: 12px; }
.eyebrow { color: #688077; font-size: 10px; font-weight: 700; letter-spacing: .16em; margin: 0; }
.topbar { padding: 18px max(24px, calc((100vw - 1160px) / 2)); background: #fffef9; border-bottom: 1px solid #e0e4da; display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.brand { display: flex; gap: 10px; align-items: center; color: #254d45; text-decoration: none; font-weight: 750; font-size: 24px; line-height: 1.1; }
.brand-sub { display: block; font-size: 8px; letter-spacing: .2em; margin-top: 4px; }
.account { display: flex; align-items: center; gap: 20px; font-size: 13px; }
.workspace { max-width: 1208px; padding: 38px 24px; margin: auto; }
.page-heading, .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.page-heading { margin-bottom: 25px; }
.page-heading .muted { margin-bottom: 0; }
.pill, .badge { background: #e8eee4; border-radius: 20px; padding: 6px 11px; font-size: 11px; white-space: nowrap; }
.badge { font-weight: 700; }
.card { background: #fffefb; border: 1px solid #dfe4d9; border-radius: 12px; padding: 25px; margin-bottom: 22px; box-shadow: 0 4px 14px #183b2710; }
.section-heading { margin-bottom: 21px; }
.upload-bar { display: flex; align-items: end; gap: 15px; margin-bottom: 10px; }
.file-field { flex: 1; }
.export-list { max-height: 230px; overflow-y: auto; border-top: 1px solid #e3e7de; }
.export-row { padding: 12px 0; display: flex; justify-content: space-between; align-items: baseline; gap: 18px; border-bottom: 1px solid #ecede7; font-size: 13px; }
.export-row strong { overflow-wrap: anywhere; font-weight: 550; }
.export-meta { color: #66736e; white-space: nowrap; font-size: 12px; }
.create-grid { display: grid; grid-template-columns: 1fr 1.3fr auto; align-items: end; gap: 15px; margin-bottom: 24px; }
.table-scroll { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; text-align: left; font-size: 13px; }
th { font-size: 10px; color: #6b7a70; text-transform: uppercase; letter-spacing: .08em; background: #f4f6ef; }
th, td { padding: 14px 12px; border-bottom: 1px solid #e5e8df; vertical-align: top; }
td:first-child { min-width: 150px; font-weight: 600; }
td small { display: block; color: #6b7770; }
.source-cell { max-width: 250px; overflow-wrap: anywhere; font-size: 11px; }
.status { padding: 3px 9px; border-radius: 12px; color: #286051; background: #e6eee3; display: inline-block; }
.message { border: 1px solid #b9d3bc; padding: 13px 16px; border-radius: 7px; background: #ecf4e8; }
.message.error { background: #fff1ea; border-color: #dfb9a8; color: #7e3826; }
.footer-note { margin-top: 8px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.login-page { min-height: 100vh; display: grid; place-items: center; padding: 25px; background: radial-gradient(ellipse at top left, #e0e9d9, transparent 60%), #f5f5ee; }
.login-card { width: min(100%, 440px); border: 1px solid #dce2d4; background: #fffef9; padding: 40px; border-radius: 14px; box-shadow: 0 18px 60px #28442e10; }
.login-card h1 { margin: 20px 0; font-size: 35px; }
.login-card form { display: grid; gap: 17px; margin: 25px 0; }
.login-card .fineprint { margin-bottom: 0; }
dialog { border: 1px solid #ccd6cb; border-radius: 12px; padding: 26px; width: min(600px, calc(100% - 30px)); max-height: 90vh; }
dialog::backdrop { background: #173b325c; }
dialog dl { display: grid; grid-template-columns: 120px 1fr; gap: 10px; font-size: 13px; }
dialog dt { color: #66736e; }
dialog dd { margin: 0; overflow-wrap: anywhere; }
dialog form { display: grid; gap: 15px; margin: 25px 0 15px; }
@media (max-width: 720px) { .workspace { padding: 24px 15px; } .card { padding: 20px 15px; } .create-grid { grid-template-columns: 1fr; } .page-heading .pill { display: none; } .upload-bar { align-items: stretch; flex-direction: column; } .export-row { flex-direction: column; gap: 3px; } .account { gap: 10px; } }
