:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#21342c;background:#f5f7f2;line-height:1.45;--ink:#19392e;--sub:#52665d;--line:#dfe7dd;--accent:#275d46}
*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}[hidden]{display:none!important}
#layout{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}
aside{background:#17372c;color:#fff;display:flex;flex-direction:column;padding:30px 20px;gap:22px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:17px;white-space:nowrap}.brand b{font-weight:500}.brand small{display:block;font-size:9px;color:#c0d9c8;letter-spacing:.18em;margin-top:4px}
.mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#d9eccf;color:#214438;font-size:24px;flex:none}
.nav-title,.eyebrow,.topbar{font-size:11px;font-weight:750;letter-spacing:.13em}.nav-title{color:#a6c3af;margin:12px 10px -12px}
nav{display:grid;gap:5px}nav a{display:flex;align-items:center;gap:12px;text-decoration:none;color:#d6e6da;padding:11px;border-radius:8px;font-size:14px}nav a:hover,nav a[aria-current="page"]{background:#2f5547;color:#fff}nav a span{width:18px;text-align:center;color:#d0e9c3}
.aside-footer{margin-top:auto;color:#c1d6c6;font-size:12px;display:flex;align-items:center;gap:8px;padding:12px 5px}.dot{height:8px;width:8px;border-radius:50%;background:#c6df99}
main{padding:0 clamp(18px,4vw,64px) 45px;max-width:1500px;width:100%}.topbar{display:flex;justify-content:space-between;gap:12px;padding:27px 0 22px;border-bottom:1px solid var(--line);color:#536c5e}.topbar b{margin:0 7px;color:#859c8f}
.heading{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:29px 0 22px}.heading h1{font-size:clamp(29px,4vw,43px);line-height:1.1;margin:6px 0 8px;letter-spacing:-.05em}.eyebrow{color:#4e6f5c}.heading p,p{color:var(--sub);margin:6px 0}.hero{background:#e5efdf;border:1px solid #dae8d4;border-radius:17px;padding:24px;margin-bottom:19px}.hero h2{margin:0;font-size:21px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.card,.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:19px}.card strong{display:block;font-size:29px;color:var(--ink);margin-top:5px}.card span{color:var(--sub);font-size:13px}.panel{margin:15px 0}.panel h2{font-size:18px;margin:0 0 13px}.row,.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.stack{display:grid;gap:12px}.empty{padding:15px 0;color:var(--sub)}
.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 13px;border-radius:8px;background:#edf2eb;border:1px solid #d9e4d7;text-decoration:none;color:#244639;cursor:pointer;font-weight:650;font-size:13px}.primary{background:var(--accent);border-color:var(--accent);color:white}button:hover,.btn:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:progress}:focus-visible{outline:3px solid #618c46;outline-offset:2px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th,td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{white-space:nowrap;color:var(--sub);font-size:12px}tbody tr:last-child td{border-bottom:0}.badge{display:inline-block;border-radius:20px;background:#edf3e9;padding:4px 9px;font-size:12px;color:#36563f}.comment{white-space:pre-wrap;overflow-wrap:anywhere}
#notice{margin:13px 0;padding:10px 14px;border-radius:8px;background:#dfeee0}#notice.error,.form-error{color:#8a2020;background:#f9e7e3;padding:9px;border-radius:6px}
dialog{width:min(720px,calc(100% - 24px));max-height:90dvh;border:1px solid var(--line);padding:22px;border-radius:15px;color:var(--ink)}dialog::backdrop{background:#172c24a0}dialog h2{margin:0}form{margin-top:15px}fieldset{border:1px solid var(--line);border-radius:9px;padding:11px;margin:0}legend{font-weight:700}label{display:grid;gap:4px;font-size:13px;font-weight:650}label.check{display:flex;align-items:center;gap:8px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wide{grid-column:1/-1}input,select,textarea{width:100%;min-width:0;border:1px solid #cbd9cc;border-radius:7px;padding:8px;color:#21342c;background:white}input[type=checkbox]{width:auto}textarea{resize:vertical;min-height:84px}.line{display:grid;grid-template-columns:3fr 1fr 1fr auto;gap:7px;margin:6px 0;align-items:end}
.qr-card{text-align:center;max-width:420px;margin:auto;padding:16px;color:#17372c}.qr-card img{display:block;width:min(100%,230px);margin:12px auto;image-rendering:pixelated}.qr-card h2{overflow-wrap:anywhere}.qr-link{overflow-wrap:anywhere;font-size:12px}.client{max-width:520px;margin:10vh auto;padding:26px}.client h1{margin:8px 0}.client .mark{margin-bottom:12px}.rating{display:flex;gap:6px}.rating button{font-size:25px}.rating button[aria-pressed=true]{background:#d9eccf;border-color:#5a7856}#printout{display:none}
.feedback-photo{min-width:0}.photo-picker{position:relative;min-height:44px}.photo-picker input{position:absolute;inset:0;height:100%;margin:0;opacity:0;cursor:pointer}.photo-picker:focus-within{outline:3px solid #618c46;outline-offset:2px}.photo-name{font-size:13px;color:var(--sub);overflow-wrap:anywhere}
@media(max-width:760px){#layout{grid-template-columns:1fr}aside{padding:14px;gap:9px}.nav-title,.aside-footer{display:none}nav{display:flex;overflow:auto;gap:3px}nav a{white-space:nowrap;padding:8px}.topbar{padding:15px 0}.cards{gap:8px}.card,.panel{padding:12px}.card strong{font-size:20px}}
@media(max-width:460px){.fields{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.line{grid-template-columns:1fr 1fr auto}.line label:first-child{grid-column:1/-1}.rating button{padding:5px 8px}}
@media print{body{background:#fff;color:#111}#layout,dialog{display:none!important}#printout{display:block}.invoice{padding:15px}.invoice h1{margin:0 0 10px}.invoice .fields{margin:20px 0}.invoice p{color:#222}.invoice td,.invoice th{border-color:#aaa}.invoice .summary{text-align:right}.qr-card{margin:35px auto}.qr-card img{width:240px}}
.qr-designer{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:14px}
.qr-design-preview{align-self:start;background:#f5f7f2;border:1px solid var(--line);border-radius:12px;padding:13px;text-align:center}
.qr-design-preview .qr-card{padding:8px 0}.qr-design-preview h2{font-size:18px}.qr-card p{overflow-wrap:anywhere}input[type=color]{min-height:36px;padding:3px 5px}
@media(max-width:560px){.qr-designer{grid-template-columns:1fr}.qr-design-preview img{max-width:180px}}
