.op-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:18px}.op-panel{padding:24px;min-width:0}.op-panel h2{margin:0 0 12px;font-size:1.35rem}.op-panel form,.op-fields{display:grid;gap:12px}.op-fields{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.op-panel label{display:grid;gap:6px;font-weight:600}.op-panel input,.op-panel select,.op-panel textarea{width:100%;border:1px solid #cac6bf;border-radius:8px;padding:10px;background:var(--surface,#fff);color:inherit}.op-result{margin:14px 0;padding:12px 16px;border-radius:10px;background:rgba(127,127,127,.08)}.op-result p{margin:5px 0}.op-panel #op-doc-list,.op-panel #op-event-list,.op-panel #op-eer-list{max-height:270px;overflow:auto;margin-top:16px}.op-panel #op-eer-list p{border-bottom:1px solid #ccc;padding:6px 0}@media print{.sidebar,.topbar,.op-panel:not(:first-child),.btn{display:none!important}.op-grid{display:block}.op-panel{border:0}}

/* Calendario appuntamenti */
.op-calendar{margin-top:16px;min-width:0}
.op-calendar-bar{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}
.op-calendar-bar h3{font-size:1rem;margin:0 auto 0 4px;text-transform:capitalize}
.op-calendar-bar .btn{min-width:36px}
.op-calendar-weekdays,.op-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.op-calendar-weekdays{margin-bottom:5px;text-align:center;font-size:.75rem;color:#6d6b67;font-weight:700}
.op-cal-day{border:1px solid #e1dfdc;border-radius:8px;background:#fff;min-width:0;min-height:45px;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;padding:6px;font:inherit;gap:1px}
.op-cal-day:hover{background:#f2f0ed}
.op-cal-day.is-today{border-color:#75716d}
.op-cal-day.is-selected{background:#252421;color:#fff;border-color:#252421}
.op-cal-day:focus-visible{outline:2px solid #2962d3;outline-offset:2px}
.op-cal-count{background:#d8d4cf;color:#222;border-radius:99px;font-size:.72rem;padding:1px 5px}
.op-calendar-help{font-size:.83rem;color:#77716a;margin:8px 0 12px}
#op-event-day-title{font-size:1rem;margin:12px 0 0}
@media(max-width:500px){.op-panel{padding:15px}.op-cal-day{min-height:36px;padding:4px;font-size:.83rem}.op-cal-count{font-size:.65rem;padding:0 4px}}
