@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=IBM+Plex+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
/* Rails wraps invalid fields in <div class="field_with_errors">, which
   breaks sizing for any input that's a flex/grid child (e.g. the auth
   forms' show/hide password rows). Make the wrapper invisible to layout
   without disabling the error class itself. */
.field_with_errors { display: contents; }
body{--ink:oklch(.22 .015 250);--soft:oklch(.45 .02 250);--faint:oklch(.55 .02 250);--paper:oklch(.97 .006 250);--card:#fff;--wash:oklch(.96 .006 250);--line:oklch(.88 .012 240);--gold:oklch(.55 .15 250);--cardinal:oklch(.5 .15 250);--cardinal-dark:oklch(.4 .14 250);--green:oklch(.4 .09 155);--red:oklch(.52 .16 25)}
.schedule-field{display:grid;gap:6px;padding:15px 0;border-top:1px solid var(--line)}.schedule-field label{font-weight:800;font-size:.82rem}.schedule-field input{width:100%;padding:10px;border:1px solid var(--line);background:#fff;font:inherit}.schedule-field small{color:var(--soft);font-size:.72rem}
:root{--ink:#142034;--soft:#526075;--faint:#778395;--paper:#f7f0e3;--card:#fffdf8;--wash:#efe5d3;--line:#d7c6aa;--gold:#ad7629;--cardinal:#af2634;--cardinal-dark:#861b28;--green:#17664e;--red:#a32936;--font-display:'DM Serif Display',Georgia,serif;--font-ui:Manrope,system-ui,sans-serif;--font-meta:'IBM Plex Mono',ui-monospace,monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--font-ui)}a{color:inherit;text-underline-offset:3px;text-decoration-color:var(--gold)}button,.button{font:700 .88rem var(--font-ui);cursor:pointer}.site-header{height:72px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;align-items:center;gap:.55rem;color:var(--ink);font:400 1.7rem var(--font-display);text-decoration:none}.brand-mark{width:2.2rem;height:2.2rem;object-fit:contain}nav{display:flex;align-items:center;gap:1.2rem}nav a,.quiet{font-size:.86rem;font-weight:700;text-decoration:none}.quiet{border:0;background:none;padding:8px;color:var(--ink)}.nav-cta,.button-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:0 17px;border:0;background:var(--cardinal);color:var(--paper);box-shadow:0 3px 0 var(--cardinal-dark);text-decoration:none}.nav-cta:hover,.button-primary:hover{background:var(--cardinal-dark);transform:translateY(-1px)}.button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:0 12px;border:1px solid var(--line);background:transparent;color:var(--ink);box-shadow:none;text-decoration:none}.button-secondary:hover{border-color:var(--gold);background:var(--wash)}.flash,.form-errors{width:min(1180px,calc(100% - 40px));margin:18px auto 0;padding:12px 16px;border:1px solid #d8a8a8;background:#fff1f0;color:#832431}.flash.success{border-color:#b9d7c5;background:#eff9f2;color:#17664e}.eyebrow{margin:0;color:var(--gold);font:500 .72rem/1.3 var(--font-meta);letter-spacing:.1em}.app-shell{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:58px 0 96px}.dashboard-head,.post-detail-head{display:flex;align-items:end;justify-content:space-between;gap:2rem}.dashboard-head h1,.composer-heading h1,.page-heading h1,.post-detail-head h1{margin:.35rem 0 .55rem;font:400 clamp(2.75rem,5vw,4.5rem)/.95 var(--font-display);letter-spacing:-.04em}.dashboard-head p:not(.eyebrow),.composer-heading p,.page-heading p,.post-detail-head p{margin:0;color:var(--soft);font-size:1rem}.start-post{display:flex;align-items:center;gap:1rem;margin:46px 0 64px;padding:22px 24px;border:1.5px dashed #bf9b65;background:#f2e8d7}.start-post-icon{display:grid;place-items:center;width:44px;height:44px;background:var(--ink);color:var(--paper);font-size:1.5rem}.start-post h2,.start-post p{margin:0}.start-post h2{font-size:1rem}.start-post p{color:var(--soft);font-size:.82rem}.start-post .text-link{margin-left:auto}.text-link{color:var(--cardinal);font-weight:800;font-size:.86rem}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:18px}.section-heading h2,.dispatch-panel h2{margin:.25rem 0 0;font:400 2rem/1 var(--font-display)}.post-table{border-top:2px solid var(--ink)}.post-table-head,.post-table-row{display:grid;grid-template-columns:minmax(260px,2fr) 1fr 1.05fr .85fr;gap:18px;align-items:center}.post-table-head{padding:11px 8px;color:var(--faint);font:500 .68rem var(--font-meta);letter-spacing:.05em;text-transform:uppercase}.post-table-row{padding:15px 8px;border-top:1px solid var(--line);text-decoration:none}.post-table-row:hover{background:#f3eadb}.post-title{display:flex;align-items:center;gap:12px;min-width:0}.post-title strong,.post-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-title small{color:var(--faint);font:400 .72rem var(--font-meta)}.video-tile{display:grid;place-items:center;width:33px;height:48px;background:var(--ink);color:var(--gold);font-size:1rem}.platform-dots{display:flex;gap:5px}.platform-mark{display:inline-grid;place-items:center;flex:0 0 auto;width:27px;height:27px;border-radius:7px;font:500 .63rem var(--font-meta);font-style:normal}.instagram{color:#8d3d68;background:#f6e5ee}.tiktok{color:#196878;background:#e2f1f2}.youtube{color:#a44628;background:#fae8dd}.post-result,.connection-state,.status-pill{font:700 .76rem var(--font-ui)}.post-result:before,.connection-state:before{content:'';display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:currentColor}.is-live,.is-connected,.published{color:var(--green)}.is-pending,.processing,.pending{color:#906221}.is-failed,.failed{color:var(--red)}.post-table-row time{color:var(--soft);font:400 .74rem var(--font-meta)}.empty-state{padding:50px;background:var(--wash);text-align:center}.empty-state h2{font:400 2rem var(--font-display)}.empty-state p{color:var(--soft);margin-bottom:20px}.composer-shell{padding-top:28px}.composer-bar{display:flex;justify-content:space-between;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line)}.composer-bar>div{display:flex;gap:20px;align-items:center}.back-link{text-decoration:none;font-weight:800;font-size:.86rem}.saved-state{color:var(--faint);font:400 .75rem var(--font-meta)}.composer-heading{max-width:620px;padding:52px 0 36px}.composer-form{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:32px;align-items:start}.composer-main{display:grid;gap:22px}.composer-card,.publish-rail,.detail-video,.dispatch-panel,.accounts-list{background:var(--card);border:1px solid var(--line)}.composer-card{padding:27px}.card-label,.rail-intro{display:flex;gap:13px;margin-bottom:22px}.card-label>span,.rail-intro>span{color:var(--gold);font:500 .78rem var(--font-meta)}.card-label h2,.rail-intro h2{margin:0;font-size:1.05rem}.card-label p,.rail-intro p{margin:3px 0 0;color:var(--soft);font-size:.82rem}.upload-zone{display:flex;align-items:center;gap:16px;padding:20px;border:1.5px dashed #bf9b65;background:#f8f1e6}.upload-play{display:grid;place-items:center;width:42px;height:58px;background:var(--ink);color:var(--gold)}.upload-zone label{font-weight:800}.upload-zone p{margin:2px 0 7px;color:var(--soft);font-size:.8rem}.upload-zone input{max-width:100%;font-size:.78rem}.field-header{display:flex;justify-content:space-between;margin-bottom:8px}.field-header label{font-weight:800}.field-header span{color:var(--faint);font:400 .68rem var(--font-meta)}textarea,input[type=text]{width:100%;border:1px solid #cbbda5;border-radius:0;padding:11px 12px;background:#fffdf8;color:var(--ink);font:inherit}textarea:focus,input:focus{outline:3px solid #e9c680;outline-offset:1px}.platform-overrides{margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.platform-overrides summary{display:flex;justify-content:space-between;cursor:pointer;font-weight:800}.platform-overrides summary span{color:var(--faint);font:400 .72rem var(--font-meta)}.override-fields{display:grid;gap:7px;margin-top:16px}.override-fields label{font-weight:800;font-size:.83rem}.publish-rail{position:sticky;top:20px;padding:24px}.publish-rail fieldset{margin:0;padding:0;border:0}.publish-rail legend{margin-bottom:10px;font-weight:800}.destination-option{display:grid;grid-template-columns:20px 28px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--line);cursor:pointer}.destination-option input{width:17px;height:17px;accent-color:var(--cardinal)}.destination-option strong,.destination-option small{display:block}.destination-option small{color:var(--soft);font-size:.72rem}.destination-option b{color:var(--green);font:500 .66rem var(--font-meta)}.destination-option.is-unavailable{opacity:.55}.destination-option.is-unavailable b{color:var(--soft)}.connect-link{display:inline-block;margin:14px 0 22px}.preflight{padding:15px 0;border-top:1px solid var(--line)}.preflight h3{margin:0 0 7px;font-size:.82rem}.preflight p{margin:5px 0;color:var(--soft);font-size:.75rem}.preflight p span{color:var(--green);font-weight:800}.publish-button{width:100%}.publish-note{text-align:center;color:var(--faint);font-size:.7rem}.post-detail-head{padding:40px 0 30px}.post-detail-head h1{font-size:clamp(2.1rem,4vw,3.3rem);max-width:25ch}.status-pill{padding:7px 10px;background:#fff2f0;white-space:nowrap}.status-pill.is-pending{background:#fbf0db}.detail-grid{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(380px,1.15fr);gap:30px}.detail-video{padding:16px;height:max-content}.video-preview{display:block;width:100%;max-height:620px;background:var(--ink)}.detail-video p{margin:10px 0 0;color:var(--soft);font:400 .72rem var(--font-meta)}.video-placeholder{display:grid;place-items:center;min-height:400px;background:var(--ink);color:var(--paper)}.dispatch-panel{padding:26px}.dispatch-row{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:start;padding:18px 0;border-top:1px solid var(--line)}.dispatch-info h3{margin:0;font-size:.95rem}.dispatch-info p{margin:3px 0;color:var(--soft);font-size:.78rem}.dispatch-error{color:var(--red)!important}.dispatch-actions{display:flex;align-items:center;gap:8px}.dispatch-actions .button{font-size:.72rem}.page-heading{max-width:650px;margin-bottom:42px}.accounts-list{border-top:2px solid var(--ink)}.connection-row{display:grid;grid-template-columns:36px 1fr auto auto;gap:18px;align-items:center;padding:21px;border-top:1px solid var(--line)}.connection-row h2{margin:0;font-size:1rem}.connection-row p{margin:3px 0 0;color:var(--soft);font-size:.8rem}.connection-state.is-empty{color:var(--soft)}.auth{width:min(100% - 40px,420px);margin:10vh auto}.auth h1{font:400 3rem var(--font-display)}.auth form{display:grid;gap:10px}.auth input{padding:12px;border:1px solid var(--line);font:inherit}.auth .button{margin-top:8px}@media(max-width:780px){.site-header{height:64px;padding:0 18px}.site-header nav{gap:10px}.site-header nav a:not(.nav-cta),.quiet{display:none}.app-shell{width:min(100% - 32px,1180px);padding:38px 0 76px}.dashboard-head,.post-detail-head{align-items:start;flex-direction:column}.start-post{margin:30px 0 45px;padding:17px}.start-post .text-link{margin-left:0}.post-table-head{display:none}.post-table-row{grid-template-columns:1fr auto;gap:9px}.platform-dots{grid-column:1}.post-result{grid-column:2;grid-row:2}.post-table-row time{display:none}.composer-heading{padding:36px 0 26px}.composer-form,.detail-grid{grid-template-columns:1fr}.publish-rail{position:static}.connection-row{grid-template-columns:32px 1fr;gap:12px}.connection-state,.connection-row .button{grid-column:2;justify-self:start}.dispatch-row{grid-template-columns:30px 1fr}.dispatch-actions{grid-column:2}.dashboard-head h1,.composer-heading h1,.page-heading h1{font-size:3rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
