*,*::before,*::after{box-sizing:border-box}
:root{--brand:#e8412c;--ink:#222;--muted:#666;--line:#d9d9d9;--bg:#f2f2f2;--ok:#2e7d32;--warn:#b26a00;--bad:#c62828}
html{font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:16px;color:var(--ink);background:var(--bg)}
body{margin:0}
a{color:var(--brand)}
.container{max-width:860px;margin:32px auto;background:#fff;padding:40px 48px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.page-title{font-weight:400;color:var(--brand);font-size:2rem;margin:0 0 20px}
.logo{max-width:220px;height:auto;display:block;margin-bottom:24px}
.form-title{color:var(--brand);font-size:1.25rem;margin:0 0 8px}
.intro{color:var(--muted);margin:0 0 24px}
.field{margin:0 0 22px;padding:0;border:0;min-width:0}
.field label,.field legend{display:block;font-weight:600;margin-bottom:6px}
.field .choice{font-weight:400;display:block;margin:4px 0 4px 8px}
.choice input[type=radio],.choice input[type=checkbox]{margin-right:6px}
.choice-other input[type=text]{width:320px;max-width:100%;margin-left:4px}
input[type=text],input[type=email],input[type=password],input[type=number],textarea,select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:3px;font:inherit;background:#fff}
input:focus,textarea:focus,select:focus{outline:2px solid #f6b9b0;border-color:var(--brand)}
textarea{resize:vertical}
small{color:var(--muted);display:block;margin-top:4px}
.req{color:var(--brand)}
.error{color:var(--bad);font-size:.9rem;margin-top:6px}
.alert{padding:12px 14px;border-radius:3px;margin:0 0 20px}
.alert-error{background:#fdecea;color:var(--bad);border:1px solid #f5c6c2}
.alert-success{background:#e8f5e9;color:var(--ok);border:1px solid #bfe3c2}
.alert-warn{background:#fff3cd;color:var(--warn);border:1px solid #ffe69c}
.terms{max-height:170px;overflow:auto;border:1px solid var(--line);padding:12px;margin-bottom:10px;color:#444;font-size:.95rem;line-height:1.5}
.sig-wrap{position:relative;width:300px;max-width:100%}
#sig-pad{border:2px dashed #bbb;background:#fff;touch-action:none;display:block;width:300px;height:180px;max-width:100%}
.sig-wrap .link{position:absolute;right:0;bottom:-26px;background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;font-size:.85rem}
.row{display:flex;gap:16px}
.row>div{flex:1}
.hp{position:absolute;left:-9999px;top:-9999px}
.actions{margin-top:28px}
.btn{display:inline-block;padding:10px 22px;border:1px solid var(--line);border-radius:3px;background:#fafafa;color:var(--ink);text-decoration:none;font:inherit;cursor:pointer}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-danger{background:#fff;border-color:var(--bad);color:var(--bad)}
.btn-sm{padding:5px 12px;font-size:.9rem}
.thanks h2{color:var(--ok)}
.ref{font-size:1.3rem;color:var(--brand)}
/* admin */
body.admin .container{max-width:1200px;padding:0}
.topbar{display:flex;align-items:center;gap:20px;padding:14px 24px;border-bottom:3px solid var(--brand)}
.topbar .brand{font-weight:700;color:var(--brand);font-size:1.15rem;text-decoration:none}
.topbar nav a{margin-right:16px;color:var(--ink);text-decoration:none}
.topbar nav a.active{color:var(--brand);font-weight:600}
.topbar .who{margin-left:auto;color:var(--muted);font-size:.9rem}
.content{padding:24px}
.tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:7px 14px;border:1px solid var(--line);border-radius:20px;text-decoration:none;color:var(--ink);font-size:.95rem}
.tabs a.active{background:var(--brand);border-color:var(--brand);color:#fff}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.toolbar input[type=text]{width:320px}
table.list{width:100%;border-collapse:collapse;font-size:.95rem}
table.list th,table.list td{text-align:left;padding:9px 10px;border-bottom:1px solid #eee;vertical-align:top}
table.list th{background:#fafafa;font-weight:600}
table.list td:first-child{white-space:nowrap}
table.list tr:hover td{background:#fff8f7}
.badge{display:inline-block;padding:2px 9px;border-radius:12px;font-size:.8rem;font-weight:600;white-space:nowrap}
.badge-open{background:#e3f2fd;color:#0d47a1}
.badge-in_progress{background:#fff3cd;color:#8a5a00}
.badge-closed{background:#e8f5e9;color:#1b5e20}
.pager{margin-top:16px;display:flex;gap:8px;align-items:center}
.grid{display:grid;grid-template-columns:2fr 1fr;gap:24px}
.card{border:1px solid var(--line);border-radius:4px;padding:18px 20px;margin-bottom:20px;background:#fff}
.card h3{margin:0 0 12px;font-size:1.05rem;color:var(--brand)}
dl.kv{display:grid;grid-template-columns:170px 1fr;gap:6px 12px;margin:0}
dl.kv dt{color:var(--muted)}
dl.kv dd{margin:0;white-space:pre-wrap}
.sig-img{max-width:300px;border:1px dashed #bbb;background:#fff}
.note{border-left:3px solid var(--line);padding:6px 12px;margin:0 0 10px}
.note .meta{color:var(--muted);font-size:.85rem}
.login-box{max-width:400px;margin:60px auto;background:#fff;padding:32px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.muted{color:var(--muted)}
@media (max-width:700px){.container{padding:24px 18px;margin:0}.row{flex-direction:column}.grid{grid-template-columns:1fr}dl.kv{grid-template-columns:1fr}.topbar{flex-wrap:wrap}}
