:root{--r:#8b1e2d;--bg:#faf7f2;--ink:#222;--mut:#666;--ok:#2f6b3a;--warn:#b26b00}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
header.top{background:var(--r);color:#fff;padding:.8rem 1.2rem;display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
header.top a{color:#fff;text-decoration:none;font-weight:600}header.top .brand{font-size:1.15rem;margin-right:auto}
.preview{background:#ffe9a8;color:#5a4300;text-align:center;padding:.35rem;font-size:.85rem}
main{max-width:1150px;margin:1.2rem auto;padding:0 1rem}h1{margin:.2rem 0 1rem;font-size:1.6rem}
.bar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}
button,.btn{background:var(--r);color:#fff;border:0;border-radius:6px;padding:.45rem .9rem;cursor:pointer;font:inherit;text-decoration:none;display:inline-block}
button.sec,.btn.sec{background:#fff;color:var(--r);border:1px solid var(--r)}button.ok{background:var(--ok)}
select,input,textarea{font:inherit;padding:.4rem;border:1px solid #bbb;border-radius:5px;background:#fff}
.cal{display:grid;gap:4px}.cal.week{grid-template-columns:repeat(7,1fr)}.cal.month{grid-template-columns:repeat(7,1fr)}
.day{background:#fff;border:1px solid #ddd;border-radius:6px;min-height:90px;padding:.35rem;font-size:.82rem}
.day.out{opacity:.45}.day .dn{font-weight:700;color:var(--mut)}.day.today{outline:2px solid var(--r)}
.ev{background:#f3d6da;border-left:3px solid var(--r);border-radius:3px;padding:2px 4px;margin-top:3px}
.ev.priv{background:#e6e6e6;border-color:#777}.free{color:var(--ok);font-size:.75rem;margin-top:4px}
.dow{font-weight:700;text-align:center;font-size:.8rem;color:var(--mut)}
form.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.8rem}
form.grid label{display:flex;flex-direction:column;font-size:.85rem;gap:.2rem}form.grid .full{grid-column:1/-1}
fieldset{border:1px solid #ccc;border-radius:8px;padding:.8rem;background:#fff;margin:0 0 1rem}legend{font-weight:700;padding:0 .3rem}
table{border-collapse:collapse;width:100%;background:#fff;font-size:.85rem}th,td{border-bottom:1px solid #e3e3e3;padding:.4rem;text-align:left;vertical-align:top}th{background:#f1ece4}
.tag{display:inline-block;padding:1px 7px;border-radius:10px;font-size:.75rem;font-weight:600}
.tag.forfragan{background:#fff0c2;color:var(--warn)}.tag.bokad{background:#d8efd9;color:var(--ok)}.tag.avbojd{background:#eee;color:#777}
.msg{padding:.6rem;border-radius:6px;margin:.6rem 0}.msg.ok{background:#d8efd9}.msg.err{background:#f8d7da}
.tabs button{background:#eee;color:#333}.tabs button.on{background:var(--r);color:#fff}
.small{font-size:.8rem;color:var(--mut)}.note{font-size:.75rem;color:#7a5b00}
footer{text-align:center;color:var(--mut);font-size:.8rem;padding:2rem}
@media(max-width:700px){.cal.month .day{min-height:60px;font-size:.7rem}}
.tag.preliminar{background:#dfe9ff;color:#2a4a8a}.tag.avbokad{background:#f6dede;color:#8a2a2a}
.catt input,.catt select{width:100%;box-sizing:border-box}.catt td{padding:2px 4px}
.warnbox{background:#fff0c2;border:1px solid #e0b400;padding:.5rem .8rem;border-radius:6px;margin:.4rem 0}
.sumbox{background:#f3f6f3;border:1px solid #cdd;padding:.5rem .8rem;border-radius:6px}
button.danger{background:#a33;color:#fff;border-color:#a33}

html.embed .preview,html.embed header.top,html.embed h1,html.embed .tabs,html.embed footer{display:none}html.embed main{margin:.5rem auto}
.day.adm{cursor:copy}.ev[data-id]{cursor:pointer}.ev[data-id][draggable=true]{cursor:grab}.ev.pre{background:#dfe9ff;border-color:#2a4a8a}
.slots{display:flex;gap:2px;margin-top:4px;flex-wrap:wrap}.slots button{padding:1px 5px;font-size:.7rem;background:#fff;color:var(--ok);border:1px dashed var(--ok)}
.day.drop,.slots button.drop{outline:2px dashed var(--r);background:#fff4f5}
.admbar{background:#e8f1e8;border:1px solid #bcd6bc;border-radius:6px;padding:.4rem .7rem;margin-bottom:.6rem;font-size:.85rem}
dialog.fhm{width:min(1000px,96vw);height:min(88vh,1000px);padding:0;border:0;border-radius:10px;box-shadow:0 10px 40px #0006}
dialog.fhm iframe{width:100%;height:calc(100% - 42px);border:0}dialog.fhm .mh{display:flex;justify-content:space-between;align-items:center;padding:.4rem .8rem;background:var(--r);color:#fff}
dialog.fhmv{border:0;border-radius:10px;box-shadow:0 10px 40px #0006;max-width:96vw}dialog.fhmv label{display:flex;flex-direction:column;font-size:.85rem;margin:.3rem 0}
dialog::backdrop{background:#0006}
.sumbox{border:1px solid #ccc;padding:.5em 1em;margin:.5em 0;background:#f7f7f7}
tr.excl td{color:#888;text-decoration:line-through}tr.excl td:first-child,tr.excl td .tag{text-decoration:none}
.printhead{display:none}
@media print{header.top,.preview,.tabs,.noprint,#me,#logout,h1{display:none!important}.printhead{display:block}body{font-size:10pt}table{width:100%;border-collapse:collapse;page-break-inside:auto}tr{page-break-inside:avoid}th,td{border:1px solid #999;padding:2px 4px}h2{page-break-after:avoid;font-size:12pt}.sumbox{background:none}a[href]:after{content:none}}
