@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&display=swap');

/* ===== THEME DEFINITIONS ===== */
/* Light 1: Parchment */
[data-theme="parchment"]{--bg:#ece7dd;--sidebar:#f5f1ea;--sb-border:#ddd6c8;--text:#3a3530;--text2:#7a7060;--text3:#a89a88;--accent:#3a8b8f;--accent-hover:#247a7e;--accent-bg:rgba(58,139,143,.1);--input-bg:#fff;--input-border:#d6cfc2;--nav-bg:#3a3530;--nav-text:#a89a88;--nav-logo:#ece7dd;--paper:#fff;--paper-shadow:rgba(60,50,40,.12);--toggle-off:#ccc5b8;--drop-bg:#fff;--drop-hover:#f5f1ea;}
/* Light 2: Linen */
[data-theme="linen"]{--bg:#e8e2d8;--sidebar:#f0ebe3;--sb-border:#d8d0c2;--text:#4a4035;--text2:#8a7e6e;--text3:#b0a494;--accent:#406a8b;--accent-hover:#2c526e;--accent-bg:rgba(64,106,139,.1);--input-bg:#faf7f2;--input-border:#d0c8b8;--nav-bg:#4a4035;--nav-text:#b0a494;--nav-logo:#f0ebe3;--paper:#fffdf8;--paper-shadow:rgba(70,55,40,.1);--toggle-off:#c8c0b2;--drop-bg:#faf7f2;--drop-hover:#f0ebe3;}
/* Light 3: Sage */
[data-theme="sage"]{--bg:#dfe5dc;--sidebar:#eaf0e7;--sb-border:#c8d4c4;--text:#2e3a2c;--text2:#5e7058;--text3:#8aa082;--accent:#8f5a6b;--accent-hover:#704050;--accent-bg:rgba(143,90,107,.1);--input-bg:#f5f9f3;--input-border:#c2d0be;--nav-bg:#2e3a2c;--nav-text:#8aa082;--nav-logo:#eaf0e7;--paper:#fdfff9;--paper-shadow:rgba(40,55,35,.1);--toggle-off:#b8c8b4;--drop-bg:#f5f9f3;--drop-hover:#eaf0e7;}
/* Light 4: Rosewood */
[data-theme="rosewood"]{--bg:#e8ddd8;--sidebar:#f2ebe6;--sb-border:#d8ccc4;--text:#3e302c;--text2:#886a60;--text3:#b09488;--accent:#408080;--accent-hover:#286868;--accent-bg:rgba(64,128,128,.1);--input-bg:#faf5f2;--input-border:#d4c4bc;--nav-bg:#3e302c;--nav-text:#b09488;--nav-logo:#f2ebe6;--paper:#fffcfa;--paper-shadow:rgba(62,48,44,.1);--toggle-off:#c8b8b0;--drop-bg:#faf5f2;--drop-hover:#f2ebe6;}
/* Light 5: Dusty Blue */
[data-theme="dustyblue"]{--bg:#dce2e8;--sidebar:#e8edf2;--sb-border:#c4ced8;--text:#2c3440;--text2:#5a6a7e;--text3:#8498ae;--accent:#966a2e;--accent-hover:#7e5218;--accent-bg:rgba(150,106,46,.1);--input-bg:#f2f6fa;--input-border:#bcc8d4;--nav-bg:#2c3440;--nav-text:#8498ae;--nav-logo:#e8edf2;--paper:#f9fbff;--paper-shadow:rgba(35,45,60,.1);--toggle-off:#b0bcc8;--drop-bg:#f2f6fa;--drop-hover:#e8edf2;}
/* Dark 1: Walnut */
[data-theme="walnut"]{--bg:#1e1b18;--sidebar:#28241f;--sb-border:#3d3832;--text:#c8c0b4;--text2:#8a8278;--text3:#5e5850;--accent:#6aa88a;--accent-hover:#509070;--accent-bg:rgba(106,168,138,.12);--input-bg:#322e28;--input-border:#4a443c;--nav-bg:#151310;--nav-text:#6a6358;--nav-logo:#c8c0b4;--paper:#fff;--paper-shadow:rgba(0,0,0,.3);--toggle-off:#4a443c;--drop-bg:#322e28;--drop-hover:#3d3832;}
/* Dark 2: Midnight */
[data-theme="midnight"]{--bg:#161a20;--sidebar:#1e2228;--sb-border:#2e343c;--text:#b8c0c8;--text2:#6e7a88;--text3:#444e5a;--accent:#caaa5a;--accent-hover:#b49240;--accent-bg:rgba(202,170,90,.12);--input-bg:#242a32;--input-border:#3a424c;--nav-bg:#10131a;--nav-text:#5a6470;--nav-logo:#b8c0c8;--paper:#fff;--paper-shadow:rgba(0,0,0,.35);--toggle-off:#3a424c;--drop-bg:#242a32;--drop-hover:#2e343c;}*{margin:0;padding:0;box-sizing:border-box}
html{font-size:20px}
body{font-family:'IBM Plex Sans',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;transition:background .3s,color .3s}

/* NAV */
nav{background:var(--nav-bg);display:flex;align-items:center;padding:0 1.25rem;height:44px;gap:1.5rem;flex-shrink:0}
.nav-logo{font-size:1rem;font-weight:500;font-style:italic;color:var(--nav-logo);white-space:nowrap}
.nav-logo small{font-style:normal;font-weight:300;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--nav-text);margin-left:.5rem}
.nav-links{display:flex;gap:.15rem}
.nav-links a{color:var(--nav-text);text-decoration:none;font-size:.68rem;padding:.25rem .6rem;border-radius:4px;transition:all .15s}
.nav-links a:hover{color:var(--nav-logo)}
.nav-links a.active{background:var(--accent-bg);color:var(--accent)}
.nav-spacer{flex:1}
.theme-toggle{display:flex;align-items:center;gap:.4rem;cursor:pointer;color:var(--nav-text);font-size:.65rem;padding:.25rem .5rem;border-radius:4px;border:1px solid transparent;transition:all .15s}
.theme-toggle:hover{border-color:var(--nav-text)}
.theme-toggle .icon{font-size:.85rem}

/* THEME PICKER BAR */
.theme-bar{background:var(--sidebar);border-bottom:1px solid var(--sb-border);padding:.45rem 1.25rem;display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.theme-bar-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-right:.25rem}
.theme-swatch{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .15s;position:relative}
.theme-swatch:hover{transform:scale(1.15)}
.theme-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--bg)}
.theme-swatch::after{content:'';position:absolute;inset:2px;border-radius:50%}

/* LAYOUT */
.app-layout{display:grid;grid-template-columns:350px 1fr;flex:1;min-height:0}
@media(max-width:860px){.app-layout{grid-template-columns:1fr}.sidebar{max-height:50vh;overflow-y:auto}}

/* SIDEBAR */
.sidebar{background:var(--sidebar);border-right:1px solid var(--sb-border);padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;transition:background .3s}
.sh{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:.35rem}
.fi{width:100%;padding:.45rem .6rem;background:var(--input-bg);border:1px solid var(--input-border);border-radius:5px;color:var(--text);font-family:inherit;font-size:.76rem;outline:none;transition:border-color .15s}
.fi:focus{border-color:var(--accent)}.fi::placeholder{color:var(--text3)}
.fchips{display:flex;flex-wrap:wrap;gap:3px;margin-top:.3rem}
.fc{padding:2px 7px;font-size:.58rem;border:1px solid var(--input-border);border-radius:11px;background:transparent;color:var(--text2);cursor:pointer;font-family:inherit;transition:all .15s}
.fc:hover{border-color:var(--accent);color:var(--accent)}
.fc.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.fdrop{position:absolute;top:100%;left:0;right:0;background:var(--drop-bg);border:1px solid var(--input-border);border-radius:5px;max-height:180px;overflow-y:auto;z-index:100;display:none;margin-top:2px;box-shadow:0 4px 12px var(--paper-shadow)}
.fdrop.open{display:block}
.fdi{padding:.35rem .6rem;cursor:pointer;font-size:.73rem;color:var(--text);border-bottom:1px solid var(--sb-border)}
.fdi:hover{background:var(--drop-hover)}.fdi .cat{font-size:.55rem;color:var(--text3);margin-left:.3rem}
select,textarea{width:100%;padding:.4rem .55rem;background:var(--input-bg);border:1px solid var(--input-border);border-radius:5px;color:var(--text);font-family:inherit;font-size:.73rem;outline:none;transition:border-color .15s}
select:focus,textarea:focus{border-color:var(--accent)}
textarea{resize:vertical;min-height:52px}
.sr{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem}
.sl-label{font-size:.68rem;color:var(--text2);min-width:82px}
.sl-val{font-size:.68rem;color:var(--accent);min-width:22px;text-align:right;font-weight:500}
input[type=range]{flex:1;-webkit-appearance:none;height:3px;border-radius:2px;background:var(--input-border);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}
.sp{display:flex;flex-wrap:wrap;gap:4px}
.pill{padding:3px 9px;font-size:.63rem;border:1px solid var(--input-border);border-radius:4px;background:transparent;color:var(--text2);cursor:pointer;font-family:inherit;transition:all .15s}
.pill:hover{border-color:var(--accent);color:var(--accent)}
.pill.active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.tr{display:flex;justify-content:space-between;align-items:center;padding:.15rem 0}
.tl-text{font-size:.7rem;color:var(--text2)}
.tog{width:32px;height:17px;border-radius:9px;background:var(--toggle-off);position:relative;cursor:pointer;transition:background .2s}
.tog.on{background:var(--accent)}
.tog::after{content:'';width:13px;height:13px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .2s}
.tog.on::after{transform:translateX(15px)}
.btn-row{display:flex;gap:.4rem;margin-top:.15rem}
.btn-p{flex:1;padding:.5rem;background:var(--accent);color:#fff;border:none;border-radius:5px;font-family:inherit;font-size:.73rem;font-weight:500;cursor:pointer;transition:background .15s}
.btn-p:hover{background:var(--accent-hover)}
.btn-s{flex:1;padding:.5rem;background:transparent;color:var(--text2);border:1px solid var(--input-border);border-radius:5px;font-family:inherit;font-size:.73rem;cursor:pointer}
.btn-s:hover{border-color:var(--text2)}
.lbl{font-size:.63rem;color:var(--text3);display:block;margin-bottom:2px}
.mi{font-size:.55rem;color:var(--text3);text-align:center;margin-top:.3rem}

/* PREVIEW */
.preview-area{padding:1.25rem;overflow-y:auto;display:flex;justify-content:center;align-items:flex-start}
.paper{background:var(--paper);border-radius:3px;box-shadow:0 4px 20px var(--paper-shadow);max-width:730px;width:100%}
.paper-hdr{display:flex;justify-content:space-between;align-items:baseline;padding:.75rem 1.2rem .4rem;border-bottom:1px solid #e0dcd6}
.paper-hdr .fn{font-size:.95rem;font-style:italic;color:#555}
.paper-hdr .df{font-size:.68rem;color:#aaa}.paper-hdr .df span{display:inline-block;width:80px;border-bottom:1px solid #ccc;margin-left:3px}
#cv{width:100%;display:block}
.sbar{font-size:.62rem;color:#999;text-align:center;padding:.25rem 0 .55rem}

/* LOADING */
.lo{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1000;justify-content:center;align-items:center;flex-direction:column;gap:.6rem}
.lo.visible{display:flex}
.spin{width:24px;height:24px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.lo-text{font-size:.75rem;color:#ccc}
.hidden{display:none!important}

