@font-face{font-family:"KMR Melange Grotesk";src:url(assets/fonts/melange-grotesk-350-DyupsQgI.ttf) format("truetype");font-weight:350;font-style:normal;font-display:swap}
@font-face{font-family:"KMR Melange Grotesk";src:url(assets/fonts/melange-grotesk-400-BQ0DoJin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"KMR Melange Grotesk";src:url(assets/fonts/melange-grotesk-500-C1-hbCBJ.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"KMR Melange Grotesk";src:url(assets/fonts/melange-grotesk-600-BeDuXEaV.otf) format("opentype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Aime";src:url(assets/fonts/aime-400-C7CHWRR1.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}

:root{
  --ds-page:#fbfaf9;
  --ds-ink:#251f21;
  --ds-ink-2:#585254;
  --ds-ink-3:#969394;
  --ds-hairline:#eae9ea;
  --ds-teal:#73a89a;
  --ds-raised:#f4efec;
  --ds-success-wash:transparent;
  --ds-font-text:"KMR Melange Grotesk",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --ds-font-display:"Aime",Georgia,serif;
  --ds-shadow-control:0 1px 2px rgb(37 31 33 / .05);
}
html,body,#root{margin:0;min-height:100%}
body{background:var(--ds-page);-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
#root{max-width:840px;margin:0 auto;padding:36px 36px 48px}
@media(max-width:600px){#root{padding:26px 20px 40px}}

/* file components */
.file-header{display:flex;flex-direction:column;gap:12px}
.file-title{font-family:var(--ds-font-display);font-size:36px;font-weight:400;letter-spacing:-.025em;line-height:1.1;margin:0;color:var(--ds-ink)}
.file-intro{margin:0;font-size:15px;color:var(--ds-ink)}
.file-group{display:flex;flex-direction:column;gap:12px;margin-top:18px}
.file-group-head{display:flex;flex-direction:column;gap:2px}
.file-group-label{margin:0;font-size:15px;color:var(--ds-ink-2)}
.file-group-heading{font-family:var(--ds-font-display);font-size:25px;font-weight:500;letter-spacing:-.025em;line-height:1.3;margin:0;color:var(--ds-ink)}
.file-button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:4px;font-size:15px;font-weight:600;letter-spacing:-.01em;border:1px solid var(--ds-ink);background:var(--ds-ink);color:var(--ds-page);box-shadow:var(--ds-shadow-control)}
.file-button[data-variant=secondary]{background:#fff;color:var(--ds-ink);border-color:var(--ds-hairline);font-weight:350}
.file-button[data-variant=ghost]{background:transparent;border-color:transparent;color:var(--ds-ink);font-weight:350;box-shadow:none}
.file-callout{position:relative;display:flex;flex-direction:column;gap:4px;padding-inline-start:16px;margin:4px 0;font-size:15px;line-height:1.65;color:var(--ds-ink)}
.file-callout::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:2px;border-radius:1px;background:var(--ds-hairline)}
.file-strong{font-weight:600}
.file-closing{margin-top:24px;font-size:15px;color:var(--ds-ink-2)}
.file-hover-underline:hover{text-decoration:underline;text-underline-offset:3px}

/* app styles (ported from the approved prototype) */
.app{text-align:right;color:var(--ds-ink);font-family:var(--ds-font-text);font-size:15px;line-height:1.65}
.app button{font:inherit;cursor:pointer}
.app p{margin:6px 0 14px}
.app h2,.app h3{margin:4px 0 8px}
.app h2{font-size:25px;line-height:1.3;font-weight:500;letter-spacing:-.025em}
.app h3{font-size:16px;line-height:1.5;font-weight:600}
.demo-line{display:flex;align-items:center;gap:7px;color:var(--ds-ink-2);font-size:12px;margin-bottom:14px}
.demo-dot{width:7px;height:7px;background:var(--ds-teal);border-radius:50%}
.spacer{flex:1}
.text-button{background:none;border:0;color:var(--ds-ink-2);padding:8px 0;min-height:44px;font-size:13px!important}
.demo-note{font-size:12px;color:var(--ds-ink-2);max-width:570px}
.tabs{display:flex;gap:8px;border-bottom:1px solid var(--ds-hairline);margin:23px 0 24px}
.tabs button{flex:1;min-height:56px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;background:transparent;color:var(--ds-ink-2);border-bottom:2px solid transparent;padding:10px 3px}
.tabs button.active{color:var(--ds-ink);border-bottom-color:var(--ds-teal);font-weight:600}
.count{font-size:11px;background:var(--ds-raised);border-radius:50%;min-width:20px}
.readiness{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--ds-hairline);padding:6px 0 24px}
.readiness>div{flex:1}
.readiness img{width:112px;height:100px;object-fit:cover;border-radius:16px}
.eyebrow{display:block;color:var(--ds-ink-2);font-size:12px;letter-spacing:.02em}
.readiness p{font-size:14px;color:var(--ds-ink-2);margin-bottom:10px}
.status-pill{font-size:12px;display:inline-block;padding:4px 9px;background:var(--ds-raised);border-radius:4px}
.primary-action{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:22px 0 12px}
.primary-action>span{font-size:12px;color:var(--ds-ink-2);text-align:center}
.primary-action button{width:100%;min-height:48px!important;justify-content:center;gap:9px;background:var(--ds-ink)!important;color:var(--ds-page)!important;border-color:var(--ds-ink)!important;font-weight:600}
.filter-row{display:flex;gap:6px;margin:4px 0 12px}
.filter-row button{background:transparent;border:1px solid var(--ds-hairline);padding:8px 12px;border-radius:4px;min-height:44px;color:var(--ds-ink-2);font-size:13px}
.filter-row button.selected{background:var(--ds-success-wash);border-color:var(--ds-teal);font-weight:600;color:var(--ds-ink)}
.task{display:flex;gap:12px;border-bottom:1px solid var(--ds-hairline);padding:17px 0 13px}
.check{flex:0 0 44px;height:44px;display:grid;place-items:center;border:1px solid var(--ds-hairline);border-radius:50%;background:var(--ds-page);color:var(--ds-ink);margin-top:2px}
.check[aria-pressed=true]{background:var(--ds-success-wash);border-color:var(--ds-teal)}
.task-body{min-width:0;flex:1}
.task-meta{font-size:12px;color:var(--ds-ink-2)}
.task-meta span{opacity:.85}
.task h3{margin:3px 0 1px}
.task-actions{display:flex;gap:16px;flex-wrap:wrap}
.claimed{font-weight:600!important;color:var(--ds-ink)}
.is-done h3{text-decoration:line-through;color:var(--ds-ink-2)}
.is-done .task-meta{opacity:.7}
.event{display:flex;gap:18px;padding:16px 0;border-bottom:1px solid var(--ds-hairline);align-items:start}
.event-time{font-size:18px;font-weight:600;direction:ltr;min-width:54px;text-align:start}
.event p{font-size:13px;color:var(--ds-ink-2);margin:2px 0 0}
.try-more{margin:30px 0 16px;border-top:1px solid var(--ds-hairline);padding-top:22px}
.try-more p{font-size:14px;color:var(--ds-ink-2)}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.actions>button{min-height:44px!important}
.notice{padding:18px;border:1px solid var(--ds-hairline);border-radius:12px;margin:18px 0;position:relative}
.notice:before{content:'';display:block;width:28px;height:3px;background:var(--ds-teal);margin-bottom:14px}
.notice p{margin-bottom:0;line-height:1.9}
.small{font-size:12px;color:var(--ds-ink-2)}
.back{min-height:44px;border:0;background:none;color:var(--ds-ink-2);padding:4px 0}
.extraction{display:flex;flex-wrap:wrap;gap:25px;border-bottom:1px solid var(--ds-hairline);padding:10px 0 18px}
.extraction>div{display:flex;flex-direction:column;gap:4px}
.extraction span{font-size:12px;color:var(--ds-ink-2)}
.review-row{display:flex;gap:14px;padding:17px 0;border-bottom:1px solid var(--ds-hairline)}
.review-row svg{margin-top:4px;flex-shrink:0}
.review-row p{font-size:13px;color:var(--ds-ink-2);margin:1px 0}
.change-box{border-inline-start:3px solid var(--ds-teal);padding:12px 15px;margin:18px 0;background:var(--ds-success-wash)}
.change-box p{font-size:13px;margin:5px 0}
.feedback{background:var(--ds-success-wash);border-inline-start:3px solid var(--ds-teal);padding:12px 14px;margin:16px 0;font-size:14px;display:flex;flex-direction:column;align-items:start}
.empty{padding:22px 0;display:flex;flex-direction:column;gap:8px;color:var(--ds-ink-2)}
.empty p{font-size:13px}
.app :focus-visible{outline:2px solid var(--ds-ink);outline-offset:4px}
.app button:hover{filter:brightness(.97)}
@media(min-width:768px){.primary-action{align-items:start}.primary-action>button{width:auto!important;min-width:245px}.primary-action>span{text-align:right}.readiness img{width:155px;height:125px}.tabs button{flex:0 0 140px}.readiness h2{font-size:31px}}
@media(max-width:350px){.readiness img{width:70px;height:85px}.readiness h2{font-size:22px}.task-actions{gap:10px}.tabs{gap:0}.tabs button{font-size:13px}.event{gap:12px}}
