@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');

:root { --ink:#20251f; --forest:#25463a; --sage:#98ad94; --cream:#f5f0e5; --paper:#fffdf7; --gold:#b68a45; --muted:#6f756d; }
html, body { margin:0; min-height:100%; background:var(--cream); color:var(--ink); font-family:'DM Sans',sans-serif; }
a { color:var(--forest); }
h1,h2,h3 { font-family:'Libre Baskerville',serif; }
h1[tabindex="-1"]:focus { outline:none; }
.content-shell { max-width:1320px; margin:auto; }
.eyebrow { display:block; color:var(--gold); font-size:.72rem; font-weight:700; letter-spacing:.18em; margin-bottom:.7rem; }
.hero { min-height:calc(100vh - 7rem); display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(2rem,7vw,7rem); padding:4rem 3vw; }
.hero-copy h1 { font-size:clamp(3rem,6vw,6.2rem); line-height:1.02; letter-spacing:-.055em; margin:.25rem 0 1.5rem; max-width:780px; }
.hero-copy h1 em { color:var(--forest); font-weight:400; }
.hero-copy p { max-width:620px; color:var(--muted); font-size:1.2rem; line-height:1.75; }
.creation-card { background:rgba(255,253,247,.94); border:1px solid rgba(37,70,58,.13); border-radius:4px; padding:clamp(1.5rem,4vw,3.5rem); box-shadow:0 28px 70px rgba(43,53,43,.12); }
.creation-card h2 { margin:0 0 1.7rem; }
label { font-weight:600; font-size:.87rem; margin:.9rem 0 .42rem; }
.form-control,.form-select { border-radius:2px; border:1px solid #cbd0c7; background:#fff; padding:.8rem .9rem; }
.form-control:focus,.form-select:focus { border-color:var(--forest); box-shadow:0 0 0 .2rem rgba(37,70,58,.12); }
.prompt-box { min-height:150px; resize:vertical; }
.primary-action { display:inline-flex; justify-content:center; border:0; border-radius:2px; background:var(--forest); color:white; padding:.9rem 1.25rem; font-weight:700; text-decoration:none; transition:.2s; }
.primary-action:hover { background:#17352c; color:white; transform:translateY(-1px); }
.primary-action:disabled { opacity:.55; transform:none; }
.creation-card .primary-action { width:100%; }
.link-button { width:auto!important; }
.secondary-link { display:block; text-align:center; margin-top:1.1rem; }
.page-heading { display:flex; align-items:end; justify-content:space-between; padding:3rem 1rem 1.5rem; }
.page-heading h1 { font-size:3.3rem; margin:0; }
.library-tabs { display:flex; gap:.3rem; padding:0 1rem 2rem; border-bottom:1px solid #d9d4c8; }
.library-tabs button,.card-actions button,.card-actions a { background:none; border:0; color:var(--muted); padding:.45rem .7rem; text-decoration:none; font-size:.85rem; }
.library-tabs button.active { color:var(--forest); border-bottom:2px solid var(--forest); font-weight:700; }
.book-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:2.5rem; padding:2.5rem 1rem; }
.book-card { display:grid; grid-template-columns:120px 1fr; gap:1.2rem; align-items:center; }
.book-cover { aspect-ratio:2/3; padding:1rem .8rem; display:flex; flex-direction:column; color:#f9f3e7; text-decoration:none; background:linear-gradient(145deg,#314e41,#172b24); box-shadow:8px 10px 22px rgba(31,35,30,.2),inset 6px 0 rgba(255,255,255,.06); }
.book-cover span { font-size:.55rem; text-transform:uppercase; letter-spacing:.12em; }
.book-cover strong { font:700 .9rem/1.35 'Libre Baskerville'; margin:auto 0; }
.book-cover small { font-size:.55rem; opacity:.7; }
.genre-romans { background:linear-gradient(145deg,#8b525d,#45282e); }.genre-horror { background:linear-gradient(145deg,#4e4042,#171516); }.genre-kryminał { background:linear-gradient(145deg,#485462,#1e262e); }
.book-meta h2 { font-size:1.06rem; margin:0 0 .6rem; }.book-meta h2 a { color:var(--ink); text-decoration:none; }.book-meta p { color:var(--muted); font-size:.8rem; }
.card-actions { display:flex; flex-wrap:wrap; margin-left:-.7rem; }.card-actions .danger { color:#9a4545; }
.empty-state,.generation-screen { text-align:center; padding:15vh 2rem; color:var(--muted); }.empty-state>span,.ink-loader { font-size:5rem; color:var(--forest); font-family:'Libre Baskerville'; animation:pulse 2s infinite; }
.redirect-panel { max-width:920px; margin:5rem auto 3rem; border-top:1px solid #d5d0c5; padding:3rem 1rem; display:grid; grid-template-columns:1fr 1fr; gap:4rem; }.redirect-panel h2 { font-size:1.6rem; }.redirect-panel p { color:var(--muted); }.redirect-panel textarea { min-height:120px; margin-bottom:1rem; }
.loading-state { padding:4rem 1rem; }.validation-message,.validation-summary-errors { color:#a43838; font-size:.8rem; }
/* Account manage forms */
.manage-form { max-width:460px; }
.manage-form h3 { margin:0 0 .35rem; font-size:clamp(1.8rem,3vw,2.3rem); letter-spacing:-.03em; }
.manage-form>p { margin:0 0 1.4rem; color:var(--muted); font-size:.9rem; line-height:1.7; }
.manage-field { margin-bottom:1.1rem; }
.manage-field label { display:block; margin:0 0 .4rem; color:#333a34; font-size:.78rem; font-weight:700; }
.manage-input { width:100%; height:3.1rem; padding:.7rem 1rem; border:1px solid #d4d8d1; border-radius:8px; background:rgba(255,255,255,.86); font-size:.85rem; outline:none; font-family:inherit; box-sizing:border-box; }
.manage-input:focus { border-color:#6d8a7b; box-shadow:0 0 0 3px rgba(37,70,58,.09); }
.manage-input:disabled { background:#eef0ea; color:#5c635b; }
.manage-field-verified { position:relative; }
.manage-field-verified .verified-badge { position:absolute; top:0; right:0; display:flex; align-items:center; gap:.3rem; color:#2f7d5b; font-size:.72rem; font-weight:700; }
.manage-submit { display:inline-flex; align-items:center; justify-content:center; width:100%; min-height:3.1rem; margin-top:.4rem; padding:0 1.2rem; border:1px solid var(--forest); border-radius:8px; color:#fff; background:var(--forest); font-size:.82rem; font-weight:700; cursor:pointer; transition:.2s; text-decoration:none; }
.manage-submit:hover { background:#17352c; color:#fff; }
.manage-submit.danger { border-color:#9a4545; background:#9a4545; }
.manage-submit.danger:hover { background:#7f3737; }
.manage-linkbtn { display:inline-block; margin:.7rem 0 0; padding:0; border:0; background:none; color:var(--forest); font-size:.78rem; font-weight:700; text-decoration:underline; cursor:pointer; }
.manage-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:.4rem; }
.manage-actions .manage-submit { width:auto; margin-top:0; padding:0 1.4rem; }
.manage-warning { margin:0 0 1.4rem; padding:.9rem 1.1rem; border:1px solid rgba(154,69,69,.28); border-radius:10px; background:#fbf1ef; color:#8c3b3b; font-size:.84rem; line-height:1.6; }
.manage-form .validation-summary-errors { margin:0 0 1rem; }
@keyframes pulse { 50% { opacity:.45; transform:scale(.96); } }
@media(max-width:900px) { .hero { grid-template-columns:1fr; padding:3rem 1rem; }.hero-copy h1 { font-size:3.4rem; }.redirect-panel { grid-template-columns:1fr; gap:1rem; }.book-grid { grid-template-columns:1fr; }.page-heading h1 { font-size:2.3rem; } }
