/* LetterDesk Radiant: shared screen theme. Letter documents keep their own styles. */
:root {
    --bg: #fff7fc;
    --ink: #38254d;
    --muted: #7d687f;
    --green: #a4298b;
    --green-dark: #74256f;
    --border: #efdff0;
    --mint: #e4f8f2;
    --radius: 19px;
    --shadow: 0 8px 30px rgba(117, 55, 132, .065);
}
body {
    background: radial-gradient(ellipse at 96% 4%, #ede5ff 0, transparent 36%),
        radial-gradient(ellipse at 12% 65%, #ffe6ee 0, transparent 42%), #fff8fc;
}
h1 { color: #41244f; font-weight: 700; }
.heading-dot { color: #ec4899; }
.eyebrow { color: #a4298b; }
.required, .field-error { color: #b42668; }
::selection { background: #f5c6e6; color: #482054; }
:focus-visible { outline: 3px solid #9b4cce; outline-offset: 4px; }
.sidebar {
    background: radial-gradient(ellipse at 5% 8%, #b741a8 0, transparent 42%),
        radial-gradient(ellipse at 100% 80%, #7550b6 0, transparent 43%),
        linear-gradient(165deg, #663187, #4a256f 66%, #42205c);
    color: #f4e8fb;
    border-right: 1px solid #b56dc23d;
    box-shadow: 8px 0 35px #6a338b0b;
}
.brand { color: #fff6fc; }
.brand-mark {
    border: 1px solid #ffffff69;
    background: linear-gradient(140deg, #fc96c9, #be81f4);
    color: #492159;
    box-shadow: 0 5px 18px #36164935;
    border-radius: 14px;
}
.brand small { color: #e5c6f3; }
.workspace-label { color: #e2bfed; font-size: 10px; }
.nav { gap: 8px; }
.nav-link { color: #f0dcf8; border-radius: 12px; font-size: 12px; }
.nav-link .icon { color: #dab8ee; }
.nav-link:hover { background: #ffffff15; color: white; }
.nav-link.active {
    background: linear-gradient(105deg, #fff0f7, #f2dfff);
    color: #792b83;
    box-shadow: 0 5px 16px #34184621, inset 3px 0 #f38cc3;
}
.nav-link.active .icon { color: #ae369c; }
.nav-dot { background: #ffb4d8; box-shadow: 0 0 0 3px #ffb4d820; }
.sidebar-note {
    border-color: #ffffff33;
    background: linear-gradient(125deg, #ffffff1c, #ec72b518);
    border-radius: 16px;
}
.sidebar-note > .icon { color: #ffc499; }
.sidebar-note strong { color: #fff0f8; font-size: 12px; }
.sidebar-note p { color: #e9cbed; font-size: 11px; }
.user-card { border-color: #ffffff2b; color: #fff0f7; }
.user-card small, .logout { color: #e0c4ec; }
.logout:hover { color: white; }
.avatar { background: linear-gradient(135deg, #f9c8e3, #e8c9ff); color: #772f86; }
.topbar { background: #fffaffeb; border-color: #ecdced; backdrop-filter: blur(14px); }
.breadcrumb { color: #846a8b; }
.breadcrumb strong { color: #654474; }
.slash { color: #bd98cd; }
.date-label { color: #7e6489; }
.workspace-pill {
    padding: 6px 11px;
    border-radius: 20px;
    color: #843781;
    background: #f9e9f7;
    border: 1px solid #efd4ed;
}
.workspace-pill i { background: #cd43a7; box-shadow: 0 0 0 3px #cd43a714; }
.page-header p { font-size: 13px; }
.btn { border-radius: 11px; font-size: 12px; transition: transform .18s, box-shadow .18s, background .18s; }
.btn-primary {
    background: linear-gradient(115deg, #a737b5, #c7318d 72%, #da3d8b);
    box-shadow: 0 5px 16px #b3309929;
}
.btn-primary:hover { background: linear-gradient(115deg, #90269f, #b11b78); box-shadow: 0 7px 22px #b3309938; transform: translateY(-1px); }
.btn-secondary { border-color: #e6d5ef; color: #79568c; background: #fffaff; }
.btn-secondary:hover { background: #f5eafa; color: #7c328e; }
.btn-danger { background: #fff0f5; color: #b42c63; border-color: #f4cbdc; }
.btn-danger:hover { background: #ffe1ed; color: #a51e54; }
.back-link { color: #8b658f; }
.icon-button { color: #9b66aa; border-radius: 10px; }
.icon-button:hover { background: #f5e5f6; color: #913999; }
.welcome-banner {
    background: radial-gradient(circle at 82% 25%, #f0dcff 0, transparent 37%),
        radial-gradient(circle at 4% 90%, #ffe0d3 0, transparent 40%),
        linear-gradient(110deg, #ffedf5, #fde6f2 50%, #eee4ff);
    border-color: #eecce5;
    border-radius: 24px;
    box-shadow: 0 10px 30px #bc5d9b0c;
    min-height: 254px;
}
.welcome-banner::before {
    content: ''; position: absolute; width: 190px; height: 190px;
    border: 1px solid #d684be35; border-radius: 50%; left: 44%; top: -120px;
    box-shadow: 0 0 0 25px #ffffff28, 0 0 0 52px #ffffff1b; pointer-events: none;
}
.banner-copy { padding: 34px 36px; }
.banner-kicker { color: #a74388; font-size: 9px; }
.banner-kicker span { background: #d34098; box-shadow: 0 0 0 3px #d3409815; }
.banner-copy h2 { color: #71336c; font-size: 35px; }
.banner-copy p { color: #946482; font-size: 12px; }
.art-orbit { border-color: #d7b0e4; box-shadow: 0 0 0 32px #dcb6eb25, 0 0 0 62px #dcb6eb16; }
.art-paper { background: #fffafd; border-color: #e7c5df; border-radius: 9px; box-shadow: 0 15px 32px #874d9820; }
.paper-back { background: #f5ecff; }
.art-logo { background: linear-gradient(140deg, #d250ae, #9655cf); color: #fff4fb; }
.art-letterhead i { background: #c285b6; }
.art-letterhead i + i { background: #e6c8df; }
.art-rule, .art-lines i { background: #e7cedf; }
.art-label { color: #a0789c; }
.paper-front b { color: #704076; }
.art-sign { color: #ba478f; }
.art-seal { background: linear-gradient(130deg, #c24daf, #9c56d2); border-color: #f4e4fb; color: white; box-shadow: 0 6px 20px #ad53b533; }
.art-spark { color: #cb5d9d; }
.spark-one { font-size: 30px; }
.stats-grid { gap: 18px; }
.stat-card { border-radius: 18px; position: relative; overflow: hidden; padding: 22px; transition: transform .18s, box-shadow .18s; }
.stat-card::after { content: ''; position: absolute; width: 90px; height: 90px; border-radius: 50%; right: -36px; bottom: -40px; background: currentColor; opacity: .045; pointer-events: none; }
.stat-card:nth-child(1) { background: linear-gradient(130deg, #fff, #eafaf5); border-color: #ccece0; color: #17725d; }
.stat-card:nth-child(2) { background: linear-gradient(130deg, #fff, #fff0f6); border-color: #f5d5e5; color: #b82f7b; }
.stat-card:nth-child(3) { background: linear-gradient(130deg, #fff, #fff1e3); border-color: #f2dcc5; color: #a65a1f; }
.stat-card:nth-child(4) { background: linear-gradient(130deg, #fff, #f1eaff); border-color: #e2d3f7; color: #8750b8; }
.stat-card:hover { transform: translateY(-3px); box-shadow: 0 12px 25px #8a479b16; }
.stat-top { color: #7d647e; font-size: 12px; }
.stat-card > strong { font-size: 34px; font-weight: 700; }
.stat-card > small { color: #826c81; font-size: 10px; }
.stat-icon { width: 35px; height: 35px; border-radius: 11px; }
.mint { background: #dff6ed; color: #24755c; }
.blue { background: #ffe4f0; color: #b3337c; }
.amber { background: #ffecd7; color: #a76721; }
.purple { background: #eee1fc; color: #8950b6; }
.section-heading p { color: #876e88; font-size: 12px; }
.quick-card { border-radius: 18px; padding: 23px; border-color: #ead8ee; box-shadow: var(--shadow); }
.quick-card::after { content: ''; position: absolute; bottom: 0; left: 23px; right: 23px; height: 3px; border-radius: 4px 4px 0 0; background: #59bc9b; }
.quick-card:nth-child(2)::after { background: #e76da6; }
.quick-card:nth-child(3)::after { background: #b282e0; }
.quick-card:nth-child(4)::after { background: #eea457; }
.quick-card:hover { border-color: #d1abdf; color: var(--ink); box-shadow: 0 10px 25px #994eaa15; }
.quick-icon { width: 41px; height: 41px; border-radius: 13px; }
.quick-card h3 { font-size: 13px; }
.quick-card p { color: #8c7288; font-size: 10px; }
.quick-arrow { color: #b689bd; }
.panel-heading { background: linear-gradient(100deg, #fff9fd, #f9f4ff); border-bottom-color: #eedfec; }
.panel-heading h2 { color: #643c74; font-size: 15px; }
.panel-heading p { color: #8d728e; font-size: 11px; }
.panel-heading > .icon { color: #b36db7; }
.data-table th { background: #fcf4fb; color: #966499; border-bottom-color: #efdfed; font-size: 10px; }
.table-wrap { position: relative; }
.data-table td { border-bottom-color: #f3e8f2; font-size: 12px; }
.data-table tbody tr:hover { background: #fff7fd; }
.data-table small { color: #8c758e; font-size: 10px; }
.table-primary { color: #745077; }
.table-dot { color: #c69fc9; }
.badge { border-radius: 20px; padding: 5px 10px; font-size: 10px; }
.badge-issued, .badge-active { background: #e4f6ee; color: #207355; }
.badge-draft { background: #f0e9fc; color: #7850a4; }
.badge-pending, .badge-probation { background: #fff0d8; color: #925c18; }
.badge-rejected { background: #ffe6ed; color: #ae3e63; }
.badge-released { background: #efedf4; color: #776980; }
.person-row strong { font-size: 11px; }
.person-row small { color: #8b738d; font-size: 10px; }
.compact-list .person-row { border-bottom-color: #f0e4f0; }
.due-date { color: #af6891; }
.activity-row > i { background: #c877b5; box-shadow: 0 0 0 4px #fcecf6; }
.activity-row strong { font-size: 11px; }
.activity-row small { color: #917d95; font-size: 9px; }
.small-empty { color: #42a386; }
.small-empty p { color: #537e70; }
.small-empty small { color: #83908b; }
.app-footer { color: #a077a0; }
.alert { border-radius: 13px; }
.alert-success { background: #eaf8f0; border-color: #ccebdc; color: #276d51; }
.alert-error { background: #fff0f5; border-color: #f3cedd; color: #a23460; }
.field label { color: #77577f; font-size: 12px; }
.input { border-color: #e5d5eb; border-radius: 11px; color: #503659; background: #fffefe; }
.input:focus { border-color: #c477bd; box-shadow: 0 0 0 4px #c477bd18; }
.input::placeholder { color: #aa92ac; }
.form-footer, .draft-delete { background: #fdf6fc; }
.check-label { color: #856c88; }
.search-field > .icon { color: #b07fb3; }
.search-field .input { background: #fffafe; }
.empty-icon { background: linear-gradient(130deg, #ffe5f2, #ece0fd); color: #a653aa; }
.empty-state h3 { color: #7a5482; }
.empty-state p { color: #917897; }
.page-count { color: #876a90; }
.disabled { background: #f5eff8; color: #a998b0; }
.detail-grid dt, .detail-list dt { color: #947396; font-size: 11px; }
.profile-note p { color: #8a6f90; }
.template-card { border-top: 3px solid #dba5d7; }
.template-card:nth-child(4n + 1) { border-top-color: #77cbb1; }
.template-card:nth-child(4n + 2) { border-top-color: #eb91b8; }
.template-card:nth-child(4n + 3) { border-top-color: #b99ae0; }
.template-card:nth-child(4n) { border-top-color: #edb278; }
.category-label { color: #96789f; }
.template-card p { color: #8e7594; font-size: 11px; }
.template-actions { border-top-color: #f0e5f0; }
.token { color: #8a4c91; border-color: #ead4ed; background: #fdf0fb; border-radius: 8px; }
.token:hover { background: #f4dff4; }
.step { color: #967f9d; }
.step b { background: #f3e8f8; }
.step.active { color: #a23694; }
.step.active b { background: linear-gradient(130deg, #eecff1, #f8d9ec); color: #a23694; }
.step-line { background: #ead7ee; }
.inline-note { background: #faf0fc; border-color: #edd9f0; color: #906b98; border-radius: 11px; }
.generator-help { background: linear-gradient(145deg, #fff5fc, #f4ecff); }
.generator-help > p, .template-snippet p { color: #8a6c94; }
.help-steps b { color: #c284bc; }
.help-steps small { color: #967e9e; }
.template-snippet { border-top-color: #e8d4ef; }
.template-snippet > small { color: #ad7cab; }
.letter-meta { color: #8c7493; }
.document-preview { background: linear-gradient(135deg, #f3e7f7, #fde9f1); border-color: #e6d0eb; }
.document-preview .letter-paper { box-shadow: 0 7px 25px #8553911a; }
.reject-details summary { color: #b56a92; }
.issued-note p { color: #8b7897; }
.asset-preview { background: #fdf5fc; border-color: #dfc2e6; }
.role-pill { background: #f2e5fc; color: #9254ae; border-radius: 20px; }
.login-body { background: #fff4fb; }
.login-story {
    background: radial-gradient(ellipse at 0% 0%, #bd4aa6 0, transparent 52%),
        radial-gradient(ellipse at 100% 90%, #bd5cba 0, transparent 45%),
        linear-gradient(145deg, #753693, #4b287a 65%, #71378f);
    color: #fff1fb;
}
.login-story::before { content: ''; position: absolute; width: 270px; height: 270px; left: -180px; top: 40%; border: 1px solid #ffe5ff48; border-radius: 50%; box-shadow: 0 0 0 28px #f6b8e611; pointer-events: none; }
.login-story::after { border-color: #e7b1e65c; box-shadow: 0 0 0 55px #f0bbe520, 0 0 0 110px #f0bbe512; }
.login-story p { color: #e9d2f0; }
.login-story h1 { color: #fff1fb; }
.login-story > small { color: #e4c8ed; }
.login-features { color: #f9e7f9; }
.login-features .icon { color: #ffc099; }
.login-story .light { color: #ffd5e8; }
.login-panel { background: radial-gradient(ellipse at 100% 0%, #f0e3ff, transparent 52%), radial-gradient(ellipse at 5% 100%, #ffe4ec, transparent 55%), #fff8fc; }
.login-form { max-width: 400px; padding: 32px; border: 1px solid #ead7ec; border-radius: 24px; background: #ffffffd9; box-shadow: 0 20px 65px #994ca013; }
.login-form h2 { color: #773f80; }
.login-help { border-top-color: #edddef; color: #957c9c; }
.sidebar-shade { background: #3d1c548f; }
@media (max-width: 1250px) {
    .stat-card { padding: 18px; }
    .stat-top { font-size: 11px; }
    .quick-card { padding: 19px; }
}
@media (max-width: 780px) {
    .login-form { padding: 28px; }
    .login-story::before { display: none; }
    .banner-copy h2 { font-size: 31px; }
    .topbar-right .workspace-pill { padding: 5px 8px; }
}
@media (max-width: 520px) {
    .welcome-banner { min-height: 240px; border-radius: 20px; }
    .banner-copy { padding: 24px; }
    .banner-copy h2 { font-size: 27px; }
    .banner-copy p { font-size: 11px; }
    .banner-kicker { font-size: 7px; letter-spacing: .7px; }
    .stats-grid { gap: 10px; }
    .stat-card { padding: 15px; }
    .stat-top { font-size: 10px; }
    .stat-icon { width: 27px; height: 27px; }
    .stat-card > strong { font-size: 29px; }
    .stat-card > small { font-size: 9px; }
    .quick-card { padding: 17px; }
    .quick-card h3 { font-size: 12px; }
    .quick-card p { font-size: 10px; }
    .quick-icon { width: 35px; height: 35px; }
    .quick-arrow { right: 11px; top: 24px; }
    .page-header > .btn { font-size: 11px; }
    .login-panel { padding: 28px 18px; }
    .login-form { padding: 26px 23px; }
    .login-form h2 { font-size: 34px; }
}
