@import "https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@500;600&display=swap";
:root{--ink:#1a1a18;--muted:#6c6b66;--paper:#f5f2ed;--white:#fff;--line:#ded9d0;--accent:#f34a31;--ok:#1f7a4d;--warn:#9a6615}*{box-sizing:border-box}html{background:var(--paper)}body{background:var(--paper);color:var(--ink);margin:0;font-family:Archivo,Arial,sans-serif}button,input,select,textarea{font:inherit}.shell{max-width:1480px;margin:auto;padding:0 28px 34px}.mast{background:var(--ink);color:#fff;margin:0 -28px 26px;padding:22px 28px}.mast-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1480px;margin:auto;display:flex}.brand{align-items:center;gap:22px;display:flex}.logo{white-space:nowrap;align-items:center;gap:13px;display:flex}.logo strong{letter-spacing:-.6px;font-size:20px}.bars{align-items:flex-end;gap:5px;height:40px;display:flex}.bars i{background:var(--accent);border-radius:5px;width:8px;display:block}.bars i:first-child{height:19px}.bars i:nth-child(2){height:29px}.bars i:nth-child(3){height:39px}.divider{background:#4d4d49;width:1px;height:52px}.brand h1{letter-spacing:-.035em;margin:4px 0;font-size:30px;line-height:1.05}.brand p{color:#b9b8b3;margin:0;font-size:13px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10px}.eyebrow.light{color:#aaa}.month{background:var(--accent);min-width:220px;padding:15px 19px}.month small{text-transform:uppercase;letter-spacing:.12em;font-size:9px;display:block}.month strong{margin-top:4px;font-size:22px;display:block}.utility{color:var(--muted);justify-content:space-between;align-items:center;margin:-10px 0 18px;font-size:12px;display:flex}.text-button{cursor:pointer;color:inherit;background:0 0;border:0;margin-left:16px;text-decoration:underline}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.tabs button{border:1px solid var(--line);cursor:pointer;background:#fff;padding:10px 14px}.tabs .active{background:var(--accent);color:#fff;border-color:var(--accent)}.summary{grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0;display:grid}.stat{border:1px solid var(--line);border-top:3px solid var(--ok);background:#f8fcf9;padding:15px}.stat small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;display:block}.stat strong{margin-top:4px;font-size:24px;display:block}.grid{grid-template-columns:1.5fr .7fr;gap:20px;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:4px;padding:20px}.card>h2{margin:0 0 4px;font-size:18px}.card>p{color:var(--muted);margin:0;font-size:15px;line-height:1.55}.toolbar{justify-content:space-between;align-items:center;gap:10px;margin:18px 0 12px;display:flex}.filters{flex-wrap:wrap;gap:8px;display:flex}.filters select,.field input,.field select,.field textarea{border:1px solid var(--line);background:#fff;padding:10px}.primary{background:var(--accent);color:#fff;cursor:pointer;border:0;padding:10px 14px;font-weight:700}.primary:hover{background:#d73f28}.primary:disabled{opacity:.6}.secondary{border:1px solid var(--ink);cursor:pointer;background:#fff;padding:9px 13px}.group-head{border-left:6px solid;margin:20px 0 8px;padding:18px}.group-head b{letter-spacing:-.03em;font-size:24px;display:block}.group-head span{color:#4d4d49;margin-top:6px;font-size:15px;display:block}.group-head.approved{border-color:var(--ok);background:#eef7f1}.group-head.pending{background:#fff4d9;border-color:#b7791f}.deliverable{border-top:1px solid var(--line);padding:16px 0}.dtop{grid-template-columns:1fr auto;gap:16px;display:grid}.dtop h3{margin:0;font-size:15px}.pills{flex-wrap:wrap;gap:7px;margin-top:8px;display:flex}.pills span{border:1px solid var(--line);background:#faf9f6;padding:5px 7px;font-size:11px}.pills .recurring{color:#1f6342;border-color:#9fb7aa}.pills .onetime{color:#8c641f;border-color:#d7c2a0}.pills .status.approved{color:var(--ok);background:#e8f4ed}.pills .status.pending-approval{color:var(--warn);background:#fbf0dd}.pills .complete{color:var(--accent);font-weight:800}.price{text-align:right}.price strong{font-size:18px;display:block}.price small{color:var(--muted)}.description,.timeline{color:#444!important;margin-top:10px!important;font-size:14px!important;line-height:1.6!important}.project-link{color:var(--accent);font-size:12px;font-weight:700}.actions{gap:8px;margin-top:10px;display:flex}.actions button{border:1px solid var(--line);cursor:pointer;background:#fff;padding:7px 10px;font-size:12px}.actions .approve{color:var(--ok);border-color:#abcdb8}.invoice-head{border-bottom:2px solid var(--ink);justify-content:space-between;gap:15px;margin-bottom:14px;padding-bottom:14px;display:flex}.invoice-head>div:last-child{color:var(--muted);text-align:right;font-size:12px}.invoice-title{letter-spacing:-.03em;font-size:23px;font-weight:800}.invoice-section{margin-top:18px}.invoice-section h3{text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--line);margin:0;padding-bottom:7px;font-size:12px}.invoice-row{border-bottom:1px dotted var(--line);grid-template-columns:1fr 100px 100px;gap:10px;padding:8px 0;font-size:13px;display:grid}.invoice-row small{color:#888;font-size:11px;display:block}.invoice-row>b:last-child{text-align:right}.invoice-total{border-top:2px solid var(--ink);justify-content:space-between;margin-top:18px;padding-top:12px;font-size:20px;font-weight:800;display:flex}.note{border-left:3px solid var(--accent);color:#555;background:#faf8f2;margin-top:15px;padding:14px;font-size:14px;line-height:1.55}.legend{margin-top:16px!important;font-size:14px!important}.billing-full{max-width:980px;margin:auto}.print-row{justify-content:flex-end;margin-top:18px;display:flex}.catalog{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px;display:grid}.catalog button{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;padding:13px}.catalog b,.catalog span{display:block}.catalog span{color:var(--muted);margin-top:4px;font-size:11px}.catalog button:disabled{cursor:default}footer{color:var(--muted);text-align:center;border-top:1px solid var(--line);margin-top:25px;padding-top:18px;font-size:11px}.modal{z-index:20;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-box{background:#fff;width:min(760px,100%);max-height:90vh;padding:22px;overflow:auto}.modal-box.small{width:min(520px,100%)}.modal-box h2{margin:0 0 8px}.modal-box>p{color:var(--muted)}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{flex-direction:column;gap:5px;margin-top:12px;display:flex}.field>span{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px}.field textarea{resize:vertical;min-height:110px}.field.wide{grid-column:1/-1}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.auth-shell{background:var(--ink);grid-template-columns:1.1fr .9fr;align-items:center;gap:8vw;min-height:100vh;padding:8vw;display:grid}.auth-brand{color:#fff}.auth-brand>.logo{margin-bottom:70px}.auth-brand h1{letter-spacing:-.06em;margin:16px 0;font-size:clamp(44px,6vw,80px);line-height:.95}.auth-brand p{color:#b9b8b3;font-size:18px}.auth-card{background:#fff;justify-self:end;width:100%;max-width:500px;padding:clamp(26px,4vw,48px)}.auth-card h1,.auth-card h2{letter-spacing:-.04em;margin:10px 0;font-size:34px}.auth-card>p{color:var(--muted);line-height:1.5}.full{width:100%;margin-top:18px}.setup-link{text-align:center;color:var(--muted);margin-top:18px;font-size:12px;display:block}.form-error,.notice,.error-banner{border-left:3px solid var(--warn);background:#fff4d9;margin:14px 0;padding:12px 14px;font-size:13px}.error-banner{justify-content:space-between;display:flex}.error-banner button{cursor:pointer;background:0 0;border:0}.center-screen{place-items:center;min-height:100vh;display:grid}.notice{border-color:var(--ok);background:#eef7f1}@media (max-width:980px){.grid{grid-template-columns:1fr}.summary{grid-template-columns:repeat(2,1fr)}.auth-shell{grid-template-columns:1fr}.auth-brand{display:none}.auth-card{justify-self:center}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}}@media (max-width:700px){.shell{padding:0 18px 24px}.mast{margin:0 -18px 20px;padding:18px}.mast-inner,.brand{align-items:flex-start}.mast-inner{flex-direction:column}.divider{display:none}.brand{flex-wrap:wrap}.month{width:100%}.summary{grid-template-columns:1fr 1fr}.toolbar,.utility{flex-direction:column;align-items:flex-start}.catalog{grid-template-columns:1fr}.invoice-row{grid-template-columns:1fr 70px 85px}.auth-shell{padding:22px}.auth-card{padding:28px}}@media print{body{background:#fff}.mast,.tabs,.utility,.summary,.grid>.card:first-child,.actions,.print-row,footer{display:none!important}.shell{max-width:none;padding:0}.card{border:0}.billing-full{display:block!important}}.portal-shell{background:var(--paper);min-height:100vh;padding:0 5vw 72px}.portal-topbar{background:var(--ink);color:#fff;justify-content:space-between;align-items:center;height:88px;margin:0 -5vw;padding:0 5vw;display:flex}.portal-topbar>div:last-child{color:#aaa;align-items:center;gap:20px;font-size:12px;display:flex}.portal-topbar button{color:#fff;cursor:pointer;background:0 0;border:1px solid #555;padding:8px 12px}.portal-hero{max-width:860px;padding:80px 0 52px}.portal-hero h1{letter-spacing:-.07em;margin:18px 0 28px;font-size:clamp(54px,8vw,104px);line-height:.9}.portal-hero p{color:var(--muted);max-width:690px;font-size:20px;line-height:1.55}.client-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.client-card{border:1px solid var(--line);color:var(--ink);background:#fff;flex-direction:column;min-height:330px;padding:28px;text-decoration:none;transition:transform .2s,border-color .2s;display:flex}.client-card:hover{border-color:var(--accent);transform:translateY(-3px)}.client-card-top{justify-content:space-between;align-items:center;display:flex}.client-card-top>span{color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:11px}.client-card-top em{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border:1px solid var(--line);padding:5px 7px;font-size:9px;font-style:normal}.client-card h2{letter-spacing:-.04em;margin:38px 0 4px;font-size:32px}.client-card>p{color:var(--muted);margin:0}.client-stats{border-top:1px solid var(--line);grid-template-columns:1.4fr 1fr 1fr;gap:14px;margin-top:26px;padding-top:18px;display:grid}.client-stats small{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-size:9px;display:block}.client-stats strong{margin-top:5px;font-size:20px;display:block}.open-client{color:var(--accent);margin-top:auto;font-size:13px;font-weight:700}.portal-loading{color:var(--muted);padding:40px 0}@media (max-width:760px){.portal-shell{padding:0 20px 40px}.portal-topbar{margin:0 -20px;padding:0 20px}.portal-topbar>div:last-child span{display:none}.portal-hero{padding:55px 0 36px}.client-grid{grid-template-columns:1fr}.client-card{min-height:300px}.portal-auth{display:grid}}.auth-links{flex-wrap:wrap;justify-content:center;gap:18px;margin-top:18px;display:flex}.auth-links a{color:var(--muted);font-size:12px}.brand-home{color:inherit;text-decoration:none;display:inline-flex}.workspace-nav{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.back-clients{color:var(--ink);font-weight:700;text-decoration:none}.back-clients:hover{color:var(--accent)}.workspace-switcher{align-items:center;gap:8px;display:flex}.workspace-switcher span{text-transform:uppercase;letter-spacing:.08em;font-family:IBM Plex Mono,monospace;font-size:9px}.workspace-switcher select{border:1px solid var(--line);background:#fff;max-width:220px;padding:7px 30px 7px 9px}.client-directory{border:1px solid var(--line);background:#fff;grid-template-columns:minmax(240px,1fr) minmax(240px,.8fr) auto;align-items:end;gap:14px;margin-bottom:22px;padding:18px;display:grid}.client-directory label{flex-direction:column;gap:6px;display:flex}.client-directory label>span{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:9px}.client-directory input,.client-directory select{border:1px solid var(--line);background:#fff;width:100%;padding:12px}.directory-count{border-left:1px solid var(--line);min-width:90px;padding:4px 8px 6px}.directory-count strong,.directory-count span{display:block}.directory-count strong{font-size:26px}.directory-count span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.pagination{justify-content:center;align-items:center;gap:18px;margin-top:26px;display:flex}.pagination button{border:1px solid var(--line);cursor:pointer;background:#fff;padding:9px 13px}.pagination button:disabled{opacity:.4;cursor:default}.pagination span{color:var(--muted);font-size:12px}.empty-clients{text-align:center;border:1px solid var(--line);color:var(--muted);background:#fff;padding:40px}@media (max-width:760px){.client-directory{grid-template-columns:1fr}.directory-count{border-left:0;border-top:1px solid var(--line);padding-top:12px}.workspace-nav{flex-direction:column;align-items:flex-start}.workspace-switcher{width:100%}.workspace-switcher select{flex:1;max-width:none}}.resource-section{max-width:1120px;margin:0 auto}.resource-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:20px;display:flex}.resource-header h2{letter-spacing:-.04em;margin:8px 0 5px;font-size:32px}.resource-header p{color:var(--muted);margin:0;line-height:1.5}.resource-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.resource-item{border:1px solid var(--line);flex-direction:column;min-height:230px;padding:20px;display:flex}.resource-meta{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:9px;display:flex}.resource-meta em{border:1px solid var(--line);padding:4px 6px;font-style:normal}.resource-status.accepted,.resource-status.implemented{color:var(--ok);background:#e8f4ed;border-color:#abcdb8}.resource-status.proposed,.resource-status.in-review{color:var(--warn);background:#fbf0dd;border-color:#d7c2a0}.resource-item h3{letter-spacing:-.025em;margin:18px 0 8px;font-size:21px}.resource-item>p{color:#555;white-space:pre-wrap;margin:0 0 16px;font-size:14px;line-height:1.6}.resource-links{flex-wrap:wrap;gap:14px;margin-top:auto;display:flex}.resource-links a{color:var(--accent);font-size:12px;font-weight:700;text-decoration:none}.resource-empty{text-align:center;color:var(--muted);padding:60px 20px}@media (max-width:760px){.resource-header{flex-direction:column;align-items:flex-start}.resource-list{grid-template-columns:1fr}.resource-item{min-height:210px}}.quote-row{margin-top:16px}.quote-button{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:#fff;padding:8px 11px;font-size:12px;font-weight:700}.quote-button:hover{background:var(--accent);color:#fff}.quote-requested{color:var(--ok);background:#e8f4ed;border:1px solid #abcdb8;padding:7px 9px;font-size:11px;font-weight:700;display:inline-block}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.catalog-item{border:1px solid var(--line);flex-direction:column;min-height:245px;padding:18px;display:flex}.catalog-item h3{margin:12px 0 7px;font-size:18px}.catalog-item>p{color:var(--muted);margin:0 0 12px;font-size:13px;line-height:1.55}.catalog-item>a{color:var(--accent);font-size:12px;font-weight:700;text-decoration:none}.catalog-item .quote-row{margin-top:auto}.catalog-item .actions{padding-top:4px}@media (max-width:980px){.catalog-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.catalog-list{grid-template-columns:1fr}}
