/* /test/assets/css/style.css */
:root{
  --bg:#faf7f2; --bg-alt:#f3ede4; --surface:#ffffff; --text:#1a1a2e; --text-mute:#6b6b7a;
  --line:#e5ddd0; --accent:#8b3a3a; --accent-soft:#b56565; --ok:#2e7d4f; --warn:#b7791f; --err:#b03a3a;
  --radius:12px; --radius-sm:8px;
  --shadow:0 4px 18px rgba(26,26,46,.08);
  --font-serif:'Lora','Georgia',serif;
  --font-sans:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
}
html[data-theme="dark"]{
  --bg:#12121a; --bg-alt:#1a1a26; --surface:#1e1e2b; --text:#ece6da; --text-mute:#a7a2b5;
  --line:#2c2c3a; --accent:#d4846a; --accent-soft:#b56565;
  --shadow:0 4px 18px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6;
  -webkit-font-smoothing:antialiased;transition:background .25s,color .25s}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--font-serif);line-height:1.25;margin:0 0 .5em}
img{max-width:100%;display:block}

/* Layout */
.container{width:100%;max-width:1140px;margin:0 auto;padding:0 16px}
.row{display:flex;flex-wrap:wrap;gap:16px}
.grid{display:grid;gap:16px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--line);
  backdrop-filter:blur(8px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:12px}
.logo{font-family:var(--font-serif);font-size:1.35rem;font-weight:700;color:var(--text)}
.logo span{color:var(--accent)}
.nav{display:flex;gap:6px;flex-wrap:wrap}
.nav a{padding:8px 12px;border-radius:var(--radius-sm);color:var(--text-mute);font-size:.95rem}
.nav a:hover,.nav a.active{background:var(--bg-alt);color:var(--text);text-decoration:none}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--radius-sm);
  border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;
  transition:.2s}
.btn:hover{background:var(--bg-alt);text-decoration:none}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-soft)}
.btn-danger{color:var(--err);border-color:var(--err)}
.btn-sm{padding:6px 10px;font-size:.85rem}
.btn-icon{width:40px;height:40px;justify-content:center;padding:0}

/* Cards */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;
  box-shadow:var(--shadow)}
.card-title{font-family:var(--font-serif);font-size:1.1rem;margin-bottom:12px}

/* Forms */
.input,textarea,select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--bg);color:var(--text);font:inherit;transition:.2s}
.input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(139,58,58,.15)}
label{display:block;font-size:.9rem;color:var(--text-mute);margin-bottom:4px}
.form-row{margin-bottom:16px}

/* Tables (admin) */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line)}
th{font-weight:600;color:var(--text-mute);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
tr:hover td{background:var(--bg-alt)}

/* Badge */
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600}
.badge-ok{background:rgba(46,125,79,.12);color:var(--ok)}
.badge-warn{background:rgba(183,121,31,.12);color:var(--warn)}
.badge-err{background:rgba(176,58,58,.12);color:var(--err)}

/* Flash */
.flash{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:.95rem}
.flash-ok{background:rgba(46,125,79,.1);color:var(--ok);border:1px solid rgba(46,125,79,.3)}
.flash-err{background:rgba(176,58,58,.1);color:var(--err);border:1px solid rgba(176,58,58,.3)}

.poem-body{font-family:var(--font-serif);font-size:1.1rem;line-height:1.85;white-space:pre-line;word-wrap:break-word;margin-bottom:32px}

.theme-toggle{background:transparent;border:1px solid var(--line);border-radius:50%;width:40px;height:40px;
  display:grid;place-items:center;cursor:pointer;color:var(--text);transition:.2s}
.theme-toggle:hover{background:var(--bg-alt)}
.theme-toggle .icon-sun  { display: none; }
.theme-toggle .icon-moon { display: block; }
html[data-theme="dark"] .theme-toggle .icon-moon { display: none; }
html[data-theme="dark"] .theme-toggle .icon-sun  { display: block; }
/* Footer */
.site-footer{border-top:1px solid var(--line);margin-top:48px;padding:24px 0;color:var(--text-mute);font-size:.9rem}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-bottom:24px}
.site-footer h4{font-family:var(--font-serif);font-size:.95rem;margin:0 0 12px;color:var(--text)}
.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.footer-links a{color:var(--text-mute);font-size:.9rem}
.footer-links a:hover{color:var(--accent)}
.footer-bottom{border-top:1px solid var(--line);padding-top:16px;text-align:center;font-size:.82rem;color:var(--text-mute)}
.page-title {font-family: var(--font-serif); font-size: 1.75rem; line-height: 1.25; margin: 0 0 8px; color: var(--text);}
.page-lede {color: var(--text-mute); font-size: .98rem; margin: 0 0 20px;}

@media(max-width:768px){
  .header-inner{padding:10px 0}
  .container{padding:0 12px}
  .page-title { font-size: 1.35rem; }
}