:root{
  --bg:#f5efe6;--panel:#fffaf3;--panel2:#fbf6ee;--ink:#213129;--muted:#6f746e;
  --green:#173c31;--green2:#214d3f;--gold:#b99a62;--line:#ded4c5;--danger:#8b3e3e;
  --ok:#315f4f;--shadow:0 18px 52px rgba(23,60,49,.10);--radius:24px;
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(180deg,#f8f3eb 0,#eee5d9 100%);min-height:100vh}
button,input,textarea,select{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.danger{color:var(--danger)}
.shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.side{background:var(--green);color:white;padding:28px 20px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}
.brand{font-family:Georgia,serif;font-size:28px;letter-spacing:.055em}.brand span{display:block;font-family:Inter,sans-serif;font-size:10px;letter-spacing:.25em;color:#d7c7a5;margin-top:4px}
.nav{display:grid;gap:8px}.nav button{border:0;background:transparent;color:#dfe7e3;padding:11px 12px;border-radius:12px;text-align:left;cursor:pointer}.nav button.active,.nav button:hover{background:rgba(255,255,255,.10);color:white}
.sidefoot{margin-top:auto;color:#b9c8c1;font-size:12px;line-height:1.5}.main{padding:28px}.page{max-width:1180px;margin:0 auto}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px}.topbar h1{font-family:Georgia,serif;color:var(--green);font-size:36px;margin:0}.topbar p{margin:6px 0 0;color:var(--muted)}
.btn{border:0;border-radius:14px;padding:12px 16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.primary{background:var(--green);color:white}.btn.primary:hover{background:var(--green2)}.btn.secondary{background:#ece3d6;color:var(--green)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--green)}.btn.danger{background:#f4e6e3;color:#7f3434}.btn:disabled{opacity:.5;cursor:not-allowed}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.card{background:rgba(255,250,243,.96);border:1px solid #eadfce;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.span12{grid-column:span 12}.span8{grid-column:span 8}.span6{grid-column:span 6}.span4{grid-column:span 4}
.stat strong{font-family:Georgia,serif;font-size:34px;color:var(--green);display:block}.stat span{color:var(--muted);font-size:13px}.card h2,.card h3{color:var(--green);margin:0 0 12px}.card h2{font-family:Georgia,serif;font-size:26px}.card h3{font-size:16px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.search{position:relative}.search input{padding-left:40px}.search:before{content:"⌕";position:absolute;left:14px;top:11px;color:var(--muted);font-size:20px}
input[type=text],input[type=email],input[type=date],input[type=tel],input[type=password],textarea,select{width:100%;border:1px solid var(--line);background:#fffdf9;border-radius:14px;padding:12px 13px;color:var(--ink);outline:none}textarea{min-height:94px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(185,154,98,.14)}
label.lbl,.qtitle{display:block;font-weight:750;margin-bottom:8px}.field{margin-bottom:16px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.opt{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:11px 12px;background:#fffdf9;cursor:pointer}.opt input{margin-top:3px;accent-color:var(--green)}.opt:hover{border-color:#cbb994}.sub{margin-top:10px;padding:12px;border:1px dashed #d2c09f;border-radius:13px;background:#f8f2e8}.notice{border:1px solid #d9e7df;background:#eef4f1;border-radius:14px;padding:13px 14px;color:#355349;line-height:1.45}.warn{border-color:#e8d8b7;background:#fbf5e8;color:#6c5831}
.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:12px 8px;vertical-align:middle}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.clickrow{cursor:pointer}.clickrow:hover{background:#fbf6ee}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#efe7d7;color:#6d5b37;font-size:12px;font-weight:750}.badge.ok{background:#e6f0eb;color:#315f4f}.badge.pending{background:#f6ecd8;color:#80652f}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}.loginbox{width:min(470px,100%);background:var(--panel);border:1px solid #e9dece;border-radius:30px;box-shadow:var(--shadow);padding:30px}.loginbox h1{font-family:Georgia,serif;color:var(--green);margin:8px 0 8px}.kicker{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:800}.divider{height:1px;background:var(--line);margin:18px 0}
.wizard{min-height:100vh;padding:18px;background:linear-gradient(180deg,#f8f3eb,#efe7dc)}.wizardbox{max-width:920px;margin:0 auto;background:var(--panel);border:1px solid #eadfce;border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.wizhead{padding:24px 26px 18px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fffaf3,#f1e7d8)}.wizbrand{font-family:Georgia,serif;color:var(--green);font-size:24px}.progressline{height:7px;border-radius:999px;background:#e8dfd2;overflow:hidden;margin-top:16px}.progressline div{height:100%;background:linear-gradient(90deg,#d6be89,#a9884e);transition:.25s}.wizbody{padding:24px 26px 28px}.wizbody h2{font-family:Georgia,serif;font-size:30px;color:var(--green);margin:0 0 8px}.wizactions{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.stepcount{font-size:12px;color:var(--muted);margin-top:4px}
.sig{border:1px solid var(--line);background:white;border-radius:16px;overflow:hidden}.sig canvas{display:block;width:100%;height:210px;touch-action:none}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.photo{aspect-ratio:1/1;border:1px dashed #cdbfAA;border-radius:14px;background:#faf5ed;display:grid;place-items:center;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover}
.timeline{display:grid;gap:12px}.event{display:grid;grid-template-columns:130px 1fr;gap:14px;border-left:3px solid #d7c7a5;padding-left:14px}.eventtime{font-size:12px;color:var(--muted)}.eventbody{background:#fffdf9;border:1px solid var(--line);border-radius:14px;padding:13px}.eventbody h4{margin:0 0 4px;color:var(--green)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tabs button{border:1px solid var(--line);background:#fffdf9;color:var(--green);padding:9px 12px;border-radius:999px;cursor:pointer}.tabs button.active{background:var(--green);color:white;border-color:var(--green)}
.print-sheet{display:none}.toast{position:fixed;right:18px;bottom:18px;background:var(--green);color:white;border-radius:13px;padding:12px 15px;box-shadow:var(--shadow);z-index:30;max-width:360px}
@media(max-width:900px){.shell{grid-template-columns:1fr}.side{display:none}.main{padding:16px}.span8,.span6,.span4{grid-column:span 12}.topbar{flex-direction:column}.two,.three,.options{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,1fr)}}
@media print{body{background:white}.shell,.login,.wizard,.toast{display:none!important}.print-sheet{display:block!important;color:#222;font-family:Arial,sans-serif}.print-wrap{max-width:900px;margin:0 auto}.print-head{border-bottom:2px solid #173c31;padding-bottom:12px;margin-bottom:18px}.print-head h1{font-family:Georgia,serif;color:#173c31;margin:0}.print-sec{break-inside:avoid;margin:0 0 18px}.print-sec h2{font-size:16px;color:#173c31;border-bottom:1px solid #ccc;padding-bottom:5px}.print-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}.print-item{font-size:12px;line-height:1.5}.print-item b{display:block;color:#555}.print-signature img{max-width:420px;max-height:100px}.print-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.print-photos img{width:100%;max-height:180px;object-fit:cover}}

.danger-zone{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.danger-zone .small{margin-bottom:9px}

/* Questionnaire editor */
.editor-section{grid-column:1/-1;margin-bottom:16px}.editor-section-head{padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:16px}.editor-section-head input{font-family:Georgia,serif;font-size:25px;color:var(--green);font-weight:700}
.editor-list{display:grid;gap:14px}.editor-question{border:1px solid var(--line);background:#fffdf9;border-radius:18px;padding:16px}.editor-q-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.editor-switch{display:inline-flex;align-items:center;gap:8px;font-weight:750}.editor-switch input{accent-color:var(--green)}
.editor-options{display:grid;gap:8px;margin-bottom:10px}.editor-option-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.editor-option-row .btn{min-width:42px;padding:10px}.editor-lock{width:42px;text-align:center;opacity:.65}.editor-question textarea[data-question-label]{min-height:70px}
@media(max-width:700px){.editor-q-head{align-items:flex-start;flex-direction:column}.editor-option-row{grid-template-columns:1fr auto}}


/* Legal / consent UI */
.legal-details{border:1px solid var(--line);border-radius:14px;background:#fffdf9;overflow:hidden}
.legal-details summary{cursor:pointer;padding:13px 14px;font-weight:800;color:var(--green);list-style:none}
.legal-details summary::-webkit-details-marker{display:none}
.legal-details summary:after{content:'+';float:right;font-size:20px;line-height:1;color:var(--gold)}
.legal-details[open] summary:after{content:'−'}
.legal-copy{border-top:1px solid var(--line);padding:14px;font-size:13px;line-height:1.6;color:#4c564f;max-height:420px;overflow:auto;white-space:normal}
.consent-summary{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fffdf9}
.print-legal{font-size:10px;line-height:1.45;margin-top:10px;padding:8px;border:1px solid #ddd;border-radius:6px;white-space:normal}
.print-legal b{display:block;margin-bottom:3px;color:#555}

.tagwrap{display:flex;flex-wrap:wrap;gap:6px}.tagwrap .badge{white-space:normal}.span3{grid-column:span 3}@media(max-width:980px){.span3{grid-column:span 6}}@media(max-width:640px){.span3{grid-column:span 12}}
