*,*:before,*:after{box-sizing:border-box}:root{--bg-page: #f4efe5;--bg-panel: #fffaf0;--bg-sidebar: #f1e4cf;--border-soft: rgba(120, 85, 46, .25);--accent: #8b5c2b;--accent-dark: #5d3a16;--text-main: #2d1b0f;--text-muted: #785964;--danger: #b91c1c;--shadow-soft: 0 10px 25px rgba(15, 23, 42, .12)}html,body{margin:0;padding:0;height:100%}body{font-family:system-ui,Segoe UI,sans-serif;background:radial-gradient(circle at top left,#f9f5ec,#e7ddcb);color:var(--text-main)}.app-layout{display:flex;min-height:100vh}.sidebar{width:260px;padding:1.5rem 1.25rem;background:var(--bg-sidebar);border-right:1px solid rgba(120,85,46,.35);display:flex;flex-direction:column;gap:1.5rem}.sidebar-header{padding-bottom:.75rem;border-bottom:1px solid rgba(120,85,46,.25)}.app-title{margin:0;font-size:1.2rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.app-subtitle{margin:.25rem 0 0;font-size:.85rem;color:var(--text-muted)}.sidebar-nav{display:flex;flex-direction:column;gap:.4rem}.nav-link{border:none;background:transparent;text-align:left;padding:.55rem .75rem;border-radius:.75rem;cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:.5rem;color:var(--accent-dark);font-weight:600}.nav-link:before{width:6px;height:6px;border-radius:999px;background:transparent}.nav-link:hover{background:#8b5c2b1f;color:var(--accent-dark)}.nav-link-active{background:#8b5c2b33}.nav-link-active:before{background:var(--accent-dark)}.sidebar-auth{margin-top:auto;padding-top:.75rem;display:flex;flex-direction:column;gap:.4rem}.auth-status{font-size:.8rem;color:var(--text-muted)}.main-content{flex:1;padding:2rem;display:flex;flex-direction:column;gap:1.25rem}.panel{background:var(--bg-panel);border-radius:1rem;border:1px solid var(--border-soft);box-shadow:var(--shadow-soft);padding:1.5rem 1.5rem 1.75rem}.panel-header{margin-bottom:1rem}.panel-header h2{margin:0;font-size:1.3rem}.panel-subtitle{margin:.55rem 0 0;font-size:.85rem;color:var(--text-muted)}.form{display:flex;flex-direction:column;gap:.9rem}.field{display:flex;flex-direction:column;gap:.25rem}.field-label{font-size:.85rem;font-weight:500}.field input,.field select{border-radius:.55rem;border:1px solid var(--border-soft);padding:.45rem .6rem;font-size:.9rem;background:#fdf7eb}.field input:focus,.field select:focus{outline:2px solid rgba(139,92,43,.45);outline-offset:1px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.form-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.btn-primary,.btn-secondary{border-radius:999px;padding:.45rem .9rem;font-size:.85rem;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}.btn-primary{background:#8b5c2b;color:#fff;font-weight:600}.btn-primary:hover{filter:brightness(1.05)}.btn-forest{background:linear-gradient(135deg,#166534,#14532d);border-color:#14532d}.btn-forest:hover{filter:brightness(1.05);box-shadow:0 0 0 1px #15803d66}.btn-secondary{background:transparent;border:1px solid var(--accent);color:var(--accent-dark)}.btn-secondary:hover{background:#8b5c2b0f}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:#b91c1c0f}.btn-icon{border:none;background:transparent;cursor:pointer;font-size:1rem;line-height:1;padding:.1rem}.btn-icon:hover{transform:translateY(-1px)}.error-message{margin-top:.35rem;font-size:.8rem;color:var(--danger)}.success-message{margin-top:.35rem;font-size:.8rem;color:#166534}.hint-text{font-size:.8rem;color:var(--text-muted)}.panel-results{margin-top:.5rem}.hook-text{margin:.35rem 0 .1rem;font-size:.95rem}.meta-text{margin:0;font-size:.8rem;color:var(--text-muted)}.results-actions{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.section-block{margin-top:1.25rem}.section-block h3{margin:0 0 .6rem;font-size:1rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem}.monster-card{background:#fdf7eb;border-radius:.85rem;border:1px solid var(--border-soft);padding:.75rem .8rem;font-size:.85rem}.monster-card-header{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline}.monster-name{margin:0;font-size:.95rem;font-weight:700}.monster-subtitle{font-size:.75rem;color:var(--text-muted)}.monster-cr{font-size:.8rem;font-weight:600}.monster-divider{height:1px;background:#78552e4d;margin:.5rem 0}.monster-stats{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.8rem}.stat{display:flex;flex-direction:column}.stat-label{text-transform:uppercase;font-size:.7rem;color:var(--text-muted)}.stat-value{font-weight:600}.abilities-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.3rem;margin-top:.5rem}.ability{background:#8b5c2b12;border-radius:.4rem;padding:.15rem .25rem;text-align:center}.ability-label{display:block;font-size:.65rem;text-transform:uppercase;color:var(--text-muted)}.ability-value{display:block;font-size:.8rem;font-weight:600}.monster-extra{margin-top:.5rem;font-size:.8rem;display:flex;flex-direction:column;gap:.15rem}.extra-label{font-weight:600}.extra-value{color:var(--text-muted)}.monster-actions{margin-top:.5rem;font-size:.8rem}.action{margin-top:.2rem}.action-name{font-weight:600}.card-grid-loot{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.loot-card{background:#faf1dd;border-radius:.75rem;border:1px solid rgba(120,85,46,.25);padding:.6rem .7rem;font-size:.85rem}.loot-card-header{margin-bottom:.25rem}.loot-name{margin:0;font-size:.9rem;font-weight:600}.loot-meta{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.15rem}.loot-type,.loot-rarity{font-size:.75rem;padding:.1rem .35rem;border-radius:999px;background:#947c5b21}.oneshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.9rem;margin-top:.5rem}.oneshot-card{background:#fdf7eb;border-radius:.85rem;border:1px solid var(--border-soft);padding:.75rem .8rem;display:flex;flex-direction:column;justify-content:space-between;gap:.5rem;cursor:pointer;transition:transform .07s ease,box-shadow .07s ease,border-color .07s ease}.oneshot-card:hover{transform:translateY(-2px);box-shadow:0 7px 16px #0f172a1f;border-color:#78552e80}.oneshot-card-body{display:flex;flex-direction:column;gap:.3rem}.oneshot-name{font-weight:600;font-size:.95rem}.oneshot-meta{font-size:.8rem;color:var(--text-muted);display:flex;flex-direction:column;gap:.1rem}.oneshot-status{font-size:.78rem}.oneshot-status.completed{color:#15803d}.oneshot-card-actions{display:flex;justify-content:flex-end;gap:.35rem}@media(max-width:500px){.app-layout{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid rgba(120,85,46,.35);flex-direction:column}.main-content{padding:1.25rem 1rem 1.5rem}}@media(max-width:600px){.field-grid{grid-template-columns:1fr}.panel{padding:1.1rem 1rem 1.25rem}.oneshot-grid{grid-template-columns:1fr}}.loading-row{margin-top:.75rem;display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted)}.dice-spinner{width:18px;height:18px;border-radius:4px;border:2px solid rgba(22,101,52,.25);border-top-color:#166534;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-style:italic}.title-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.title-edit-input{font-size:1.2rem;font-weight:600;padding:.1rem .4rem;border-radius:.5rem;border:1px solid rgba(148,163,184,.7);color:var(--text-main)}.title-edit-input:focus{outline:2px solid rgba(52,211,153,.6)}.title-edit-button{border-radius:999px}.notes-textarea{width:100%;min-height:7rem;padding:.6rem .7rem;border-radius:.75rem;border:1px solid var(--border-soft);background:#fdf7eb;font-size:.85rem;font-family:inherit;line-height:1.4;resize:vertical}.notes-textarea::placeholder{color:var(--text-muted);font-size:.8rem}.notes-textarea:focus{outline:2px solid rgba(139,92,43,.35);outline-offset:1px;background:#fffaf0}.monster-image-button{margin-left:.35rem;font-size:.9rem;opacity:.8}.monster-image-button:hover{opacity:1}.image-modal-backdrop{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:50}.image-modal{background:#fdf7eb;border-radius:.9rem;padding:.6rem .8rem .8rem;max-width:90vw;max-height:90vh;box-shadow:0 20px 40px #0f172a59;position:relative;border:1px solid var(--border-soft)}.image-modal-img{display:block;max-width:80vw;max-height:80vh;border-radius:.75rem}.image-modal-close{position:absolute;top:.3rem;right:.35rem;border:none;background:transparent;cursor:pointer;font-size:1rem;line-height:1;padding:.1rem .2rem}
