/* Public calls to action share the app's sage/black button palette. */
body.public-site{--brand-create:#78a477;--brand-create-hover:#689266;--brand-create-ink:#ffffff}
body.public-site :is(.btn-primary,.header .nav-actions .btn){background:var(--brand-create);border-color:var(--brand-create);color:var(--brand-create-ink);box-shadow:none}
body.public-site :is(.btn-primary,.header .nav-actions .btn):hover{background:var(--brand-create-hover);border-color:var(--brand-create-hover)}
body.public-site .btn-dark{background:#171717;border-color:#171717;color:#fff}
body.public-site .btn-dark:hover{background:#303030;border-color:#303030}
/* IBM Plex Sans variable font, SIL Open Font License (assets/fonts/ibm-plex-sans-OFL.txt). */
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: block;
  src: url(../fonts/ibm-plex-sans-1.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: block;
  src: url(../fonts/ibm-plex-sans-2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: block;
  src: url(../fonts/ibm-plex-sans-3.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: block;
  src: url(../fonts/ibm-plex-sans-4.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: block;
  src: url(../fonts/ibm-plex-sans-5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: block;
  src: url(../fonts/ibm-plex-sans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Source Sans 3 variable font, SIL Open Font License (assets/fonts/source-sans-3-OFL.txt). */
/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 900;
  font-display: block;
  src: url(../fonts/source-sans-3-1.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 900;
  font-display: block;
  src: url(../fonts/source-sans-3-2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 900;
  font-display: block;
  src: url(../fonts/source-sans-3-3.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 900;
  font-display: block;
  src: url(../fonts/source-sans-3-4.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 900;
  font-display: block;
  src: url(../fonts/source-sans-3-5.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 900;
  font-display: block;
  src: url(../fonts/source-sans-3-6.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 900;
  font-display: block;
  src: url(../fonts/source-sans-3-7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Canonical ContentRyter tokens. Component ownership is documented in DESIGN-SYSTEM.txt. */
:root {
 --brand-ink:#25272a; --brand-muted:#626a70; --brand-line:#e6e9eb;
 --brand-paper:#ffffff; --brand-canvas:#f3f5f6;
 --brand-primary:#2563eb; --brand-primary-hover:#1d4ed8; --brand-purple:var(--brand-primary);
 --brand-yellow:#edf3f4; --brand-coral:#2563eb; --brand-yellow-hover:#e0eaed;
 --brand-coral-soft:#eff6ff; --brand-coral-ink:#1d4ed8;
 --brand-success:#2563eb;
 --brand-outline:1px solid var(--brand-line); --brand-offset-shadow:none;
 --brand-lavender:#edf3f4; --brand-lavender-line:#d7e2e5;
 --brand-green:#1d4ed8; --brand-mint:#eff6ff; --brand-mint-line:#eff6ff;
 --brand-body-font:'Source Sans 3',Arial,sans-serif;
 --brand-heading-font:'Source Sans 3',Arial,sans-serif;
 --brand-secondary-font:'IBM Plex Sans','Source Sans 3',Arial,sans-serif;
 --brand-control-radius:7px; --brand-card-radius:16px; --brand-hero-radius:16px;
 --brand-icon-radius:12px; --brand-icon-size:44px; --brand-icon-glyph-size:22px;
 --brand-title-size:16px; --brand-body-size:14px; --brand-label-size:13px; --brand-meta-size:12px;
 --brand-focus-color:var(--brand-primary); --brand-focus-offset:2px;
 --brand-shadow:var(--brand-offset-shadow);
 /* Website and app aliases resolve to the same palette. */
 --ink:var(--brand-ink); --muted:var(--brand-muted); --line:var(--brand-line);
 --paper:var(--brand-paper); --white:var(--brand-paper); --purple:var(--brand-purple);
 --purple-dark:var(--brand-primary); --green:var(--brand-green);
 --lavender:var(--brand-lavender); --mint:var(--brand-mint);
 --ui-ink:var(--brand-ink); --ui-muted:var(--brand-muted); --ui-line:var(--brand-line);
 --ui-canvas:var(--brand-canvas); --ui-blue:var(--brand-primary);
 --ui-purple:var(--brand-purple); --ui-purple-ink:var(--brand-primary);
 --ui-green:var(--brand-mint); --ui-green-ink:var(--brand-green);
 --studio-lime:var(--brand-mint); --studio-lime-soft:var(--brand-mint); --studio-lime-ink:var(--brand-green);
 --ui-aqua:var(--brand-mint); --ui-aqua-soft:var(--brand-mint); --ui-aqua-ink:var(--brand-green);
 --ui-peach:var(--brand-lavender); --ui-peach-soft:var(--brand-lavender); --ui-peach-ink:var(--brand-primary);
 --ui-blush:var(--brand-mint); --ui-blush-soft:var(--brand-mint); --ui-blush-ink:var(--brand-green);
 --ui-periwinkle:var(--brand-lavender); --ui-periwinkle-ink:var(--brand-primary);
 --ui-radius:var(--brand-card-radius); --ui-shadow:var(--brand-shadow);
}
body { font-family:var(--brand-body-font); }
::selection { background:var(--brand-yellow); color:var(--brand-ink); }
:focus-visible { outline:2px solid var(--brand-focus-color); outline-offset:var(--brand-focus-offset); }
body:is(.workspace-page,.writing-app,.auth-page) { color:var(--brand-ink); background:var(--brand-canvas); }
body:is(.workspace-page,.writing-app,.auth-page) :is(button,input,select,textarea) { font-family:var(--brand-body-font); }
body:is(.workspace-page,.writing-app) .sidebar { background:var(--brand-paper); border-color:var(--brand-line); }
body:is(.workspace-page,.writing-app) .sidebar .nav-item { font-size:14px; font-weight:500; color:var(--brand-muted); border-radius:var(--brand-control-radius); border-left:0; }
body:is(.workspace-page,.writing-app) .sidebar .nav-item.active { color:var(--brand-primary); background:var(--brand-lavender); border:0; box-shadow:none; }
body:is(.workspace-page,.writing-app) .sidebar .nav-item:hover { color:var(--brand-primary); background:#f3f6fc; }
body.workspace-page .main > :is(.page-header,.dashboard-header),body.writing-app .writing-header { background:var(--brand-paper); border-color:var(--brand-line); }
body.workspace-page .main > :is(.page-header,.dashboard-header) .header-left h1 { font:600 20px/1.3 var(--brand-body-font); color:var(--brand-ink); letter-spacing:-.03em; }
body.workspace-page :is(.panel,.stat-card,.project-card,.template-card,.settings-card,.documents-container),body.writing-app :is(.draft-area,.inspector-box) { border-color:var(--brand-line); border-radius:var(--brand-card-radius); box-shadow:var(--brand-shadow); background:var(--brand-paper); }
body:is(.workspace-page,.writing-app) :is(.btn-primary,.primary-btn,.action-btn.primary,.app-dialog-btn.primary) { background:var(--brand-primary); border-color:var(--brand-primary); color:#fff; border-radius:var(--brand-control-radius); box-shadow:none; font-size:14px; font-weight:600; }
body:is(.workspace-page,.writing-app) :is(.btn-primary,.primary-btn,.action-btn.primary,.app-dialog-btn.primary):hover { background:var(--brand-primary-hover); border-color:var(--brand-primary-hover); }
body:is(.workspace-page,.writing-app) :is(.btn-secondary,.secondary-btn,.header-link,.app-dialog-btn.secondary) { background:var(--brand-paper); border-color:var(--brand-line); color:var(--brand-muted); border-radius:var(--brand-control-radius); font-size:13px; font-weight:500; box-shadow:none; }
body:is(.workspace-page,.writing-app) :is(.btn-secondary,.secondary-btn,.header-link,.app-dialog-btn.secondary):hover { background:var(--brand-canvas); border-color:#c4d3ed; }
body.workspace-page :is(.filter-tab.active,.filter-chip.active,.settings-nav-item.active),body.workspace-page .admin-tabs a[aria-current] { background:var(--brand-lavender); color:var(--brand-primary); border-color:var(--brand-lavender-line); }
body:is(.workspace-page,.writing-app) :is(input:not(:where([type=checkbox],[type=radio],[type=range],[type=color])),select,textarea) { border-color:var(--brand-line); border-radius:var(--brand-control-radius); }
body:is(.workspace-page,.writing-app) :is(.sidebar-search input,input[type=search],.search-input,.form-control),body.auth-page .auth-form-panel .form-control { background:var(--brand-paper); color:var(--brand-ink); }
body:is(.workspace-page,.writing-app,.auth-page) input[type=checkbox] { accent-color:var(--brand-primary); }
body.workspace-page .workspace-content :is(.dashboard-start,.documents-library-heading,.planner-intro,.templates-intro,.keyword-intro,.management-intro) { background:var(--brand-paper); border:1px solid var(--brand-line); border-radius:var(--brand-hero-radius); box-shadow:none; }
body.workspace-page .workspace-content :is(.dashboard-start,.documents-library-heading,.planner-intro,.templates-intro,.keyword-intro,.management-intro) h2 { color:var(--brand-ink); font-family:var(--brand-body-font); font-weight:600; letter-spacing:0; }
body.workspace-page .workspace-content :is(.dashboard-start,.documents-library-heading,.planner-intro,.templates-intro,.keyword-intro,.management-intro) h2 em { font-style:normal; text-decoration-color:#b8cef4; }
body.workspace-page :is(.dashboard-eyebrow,.documents-eyebrow,.planner-eyebrow,.templates-eyebrow,.keyword-eyebrow,.management-eyebrow) { color:var(--brand-primary); background:var(--brand-lavender); border-color:var(--brand-lavender-line); }
body.workspace-page.dashboard-page .dashboard-launch { border-color:var(--brand-line); background:var(--brand-paper); }
body.workspace-page.dashboard-page .dashboard-launch:first-child,body.workspace-page.dashboard-page .dashboard-launch:nth-child(3) { background:var(--brand-mint); border-color:var(--brand-mint-line); }
body.workspace-page.dashboard-page .dashboard-launch:nth-child(2) { background:var(--brand-lavender); border-color:var(--brand-lavender-line); }
body.workspace-page.dashboard-page .dashboard-launch .dashboard-launch-icon { background:var(--brand-paper); color:var(--brand-primary); }
body.workspace-page.dashboard-page .dashboard-launch:first-child .dashboard-launch-icon,body.workspace-page.dashboard-page .dashboard-launch:nth-child(3) .dashboard-launch-icon { color:var(--brand-green); background:var(--brand-paper); }
body.workspace-page .stat-icon { background:var(--brand-lavender); color:var(--brand-primary); }
body.workspace-page .stat-card:nth-child(even) .stat-icon { background:var(--brand-mint); color:var(--brand-green); }
body.workspace-page :is(.plan-badge,.workspace-chip,.documents-library-count),body.workspace-page :is(.badge-published,.difficulty-easy,.research-badge.complete,.research-badge.ready) { background:var(--brand-mint); color:var(--brand-green); border-color:var(--brand-mint-line); }
body:is(.workspace-page,.writing-app,.auth-page) .alert-success { background:var(--brand-mint); color:var(--brand-green); border-color:var(--brand-mint-line); }
body.workspace-page :is(.app-dialog-card,.planner-dialog,.modal-card),body.writing-app .writing-dialog { background:var(--brand-paper); color:var(--brand-ink); border-color:var(--brand-line); border-radius:var(--brand-card-radius); }
body.workspace-page :is(.app-dialog-head,.modal-header,.planner-dialog header),body.writing-app .dialog-heading { background:var(--brand-canvas); border-color:var(--brand-line); }
body.workspace-page :is(.app-dialog-head,.modal-header,.planner-dialog header) :is(h2,h3),body.writing-app .dialog-heading h2 { font-family:var(--brand-body-font); font-weight:600; font-size:28px; letter-spacing:0; color:var(--brand-ink); }
body.writing-app :is(.formatting-bar,.inspector-box-toggle[aria-expanded=true]) { background:var(--brand-canvas); border-color:var(--brand-line); }
body.writing-app .formatting-bar button { color:var(--brand-muted); }
body.writing-app .formatting-bar button[aria-pressed=true] { color:var(--brand-primary); background:var(--brand-lavender); }
body.writing-app :is(.writing-content,.document-title) { color:var(--brand-ink); }
body.writing-app .writing-content :is(h1,h2,h3,h4) { color:var(--brand-ink); }
body.auth-page .auth-kicker { border-radius:6px; background:var(--brand-lavender); border-color:var(--brand-lavender-line); color:var(--brand-primary); font-size:11px; letter-spacing:.05em; }
body.auth-page .auth-story h2,body.auth-page .auth-story h2 em { font:400 clamp(38px,4.3vw,58px)/1.1 var(--brand-heading-font); color:var(--brand-ink); letter-spacing:0; }
body.auth-page .auth-story h2 em { text-decoration:underline; text-decoration-color:#b8cef4; text-decoration-thickness:3px; text-underline-offset:5px; }
body.auth-page .auth-preview { box-shadow:var(--brand-shadow); border-color:var(--brand-line); }
body.auth-page .auth-preview-tag { background:var(--brand-mint); color:var(--brand-green); }
body.auth-page .auth-form-panel { border-color:var(--brand-line); border-radius:var(--brand-hero-radius); box-shadow:var(--brand-shadow); }
body.auth-page .auth-form-panel .form-control { border-color:var(--brand-line); border-radius:var(--brand-control-radius); }
body.auth-page .auth-form-panel h1 { font-family:var(--brand-heading-font); font-size:34px; font-weight:400; letter-spacing:0; }
body.auth-page .auth-form-panel :is(.btn-signin,.btn-primary,.signin-btn,.signup-btn,.auth-submit) { background:var(--brand-primary); border-color:var(--brand-primary); color:white; border-radius:var(--brand-control-radius); box-shadow:none; }
body.auth-page .auth-form-panel :is(.btn-signin,.btn-primary,.signin-btn,.signup-btn,.auth-submit):hover { background:var(--brand-primary-hover); }
/* Website controls use these same primitives at marketing-page scale. */
.header .nav-actions .btn,.btn-dark,.featured .price-btn { background:var(--brand-primary); border-color:var(--brand-primary); border-radius:var(--brand-control-radius); color:white; }
.header .nav-actions .btn:hover,.btn-dark:hover,.featured .price-btn:hover { background:var(--brand-primary-hover); border-color:var(--brand-primary-hover); }
@media(max-width:650px){body:is(.workspace-page,.writing-app) :is(.btn-primary,.primary-btn,.btn-secondary,.secondary-btn){font-size:13px;}}

body.workspace-page.dashboard-page .dashboard-start .btn-primary{background:var(--brand-primary);border-color:var(--brand-primary);border-radius:var(--brand-control-radius);}
body.workspace-page.dashboard-page .dashboard-start .btn-primary:hover{background:var(--brand-primary-hover);border-color:var(--brand-primary-hover);}
body.workspace-page.dashboard-page .dashboard-start .dashboard-eyebrow{color:var(--brand-primary);background:var(--brand-lavender);border-color:var(--brand-lavender-line);}
body.workspace-page.dashboard-page .dashboard-launch:nth-child(2) .dashboard-launch-icon{background:var(--brand-paper);color:var(--brand-primary);}
body.workspace-page.dashboard-page .dashboard-start-art .dashboard-art-spark{background:var(--brand-mint);color:var(--brand-green);border-color:var(--brand-mint-line);}
body.workspace-page.documents-page .documents-library-heading .documents-library-count{background:var(--brand-mint);color:var(--brand-green);border-color:var(--brand-mint-line);border-radius:var(--brand-control-radius);}
body.auth-page .auth-nav .brand-logo-image{width:200px;}body.workspace-page .sidebar-logo .brand-logo-image{max-width:200px;}
@media(max-width:620px){body.auth-page .auth-nav .brand-logo-image{width:148px;}}
/* Hand lettering is reserved for hero headings and decorative accents. */
body.public-site .hero h1,body.is-home .hero h1 { font-family:var(--brand-heading-font); font-weight:400; }

/* Shared plan-limit notice: canonical website palette and workspace controls. */
.billing-usage-warning{display:flex;align-items:center;gap:14px;padding:16px 20px;margin:0 0 24px;border:1px solid var(--brand-line);border-radius:var(--brand-card-radius);background:var(--brand-paper);box-shadow:var(--brand-shadow);color:var(--brand-ink);font-family:var(--brand-body-font);flex-shrink:0;}
.usage-notice-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;border-radius:var(--brand-control-radius);background:var(--brand-lavender);color:var(--brand-primary);}
.usage-notice-copy{display:flex;flex:1;flex-direction:column;gap:5px;min-width:0;}.billing-usage-warning .usage-notice-copy strong{font:600 var(--app-body-size,14px)/1.4 var(--brand-body-font);color:var(--brand-ink);}.usage-notice-copy>span{font:400 var(--app-label-size,13px)/1.6 var(--brand-body-font);color:var(--brand-muted);}
.usage-notice-actions{display:flex;align-items:center;gap:18px;flex-shrink:0;}.usage-notice-details{font:500 var(--app-label-size,13px)/1.5 var(--brand-body-font);color:var(--brand-primary);text-decoration:none;}.usage-notice-details:hover{text-decoration:underline;text-underline-offset:3px;}.billing-usage-warning .btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:var(--app-control-height,42px);padding:10px 16px;border:1px solid var(--brand-line);border-radius:var(--brand-control-radius);background:var(--brand-paper);color:var(--brand-muted);font:500 var(--app-label-size,13px)/1.5 var(--brand-body-font);white-space:nowrap;box-shadow:none;}.billing-usage-warning .btn-secondary:hover{background:var(--brand-canvas);border-color:var(--brand-lavender-line);}
.writing-main>.billing-usage-warning{margin:12px 24px;}
@media(max-width:680px){.billing-usage-warning{flex-wrap:wrap;padding:16px;gap:12px;}.usage-notice-copy{flex-basis:calc(100% - 52px);}.usage-notice-actions{width:100%;justify-content:flex-end;gap:16px;}.writing-main>.billing-usage-warning{margin:12px 16px;}}
