/* PROTEATRO design system — Fase 2. Gli stili specialistici restano nei moduli. */
:root {
  --proteatro-blue:#805729; --proteatro-yellow:#d6ae73;
  --pt-ink:#302c29; --pt-muted:#71665a; --pt-bg:#f5f2ed;
  --pt-border:#e4ddd3; --pt-sidebar:#222326; --pt-radius:12px;
  --primary-gradient:linear-gradient(135deg,#805729,#67431f);
  --success-gradient:linear-gradient(135deg,#16734b,#208354);
  --danger-gradient:linear-gradient(135deg,#b6313b,#a52b34);
  --card-shadow:0 2px 8px #102d4008; --card-shadow-hover:0 4px 12px #102d4010;
  --border-radius:12px; --text-dark:var(--pt-ink); --bg-light:var(--pt-bg);
}
body{margin:0;min-height:100vh;background:var(--pt-bg);color:var(--pt-ink);font-family:Inter,system-ui,sans-serif;font-size:.92rem}
a{color:var(--proteatro-blue)}
.pt-skip{position:fixed;top:-100px;left:16px;z-index:2000;background:white;padding:12px;border-radius:8px}.pt-skip:focus{top:12px}
.pt-sidebar{--bs-offcanvas-width:250px;--bs-offcanvas-bg:var(--pt-sidebar);color:white;background:var(--pt-sidebar)!important}
.pt-sidebar .offcanvas-body{display:flex!important;flex-direction:column;padding:24px 16px;height:100%;overflow-y:auto}
.pt-brand{display:flex;flex-direction:column;gap:12px;padding:0 12px 28px;color:white;text-decoration:none}.pt-brand img{width:158px;height:auto;max-height:90px;object-fit:contain;object-position:left}.pt-brand span{font-size:.73rem;line-height:1.5;color:#d1c6b7}
.pt-nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;margin:3px 0;border-radius:8px;color:#e7ddd1;text-decoration:none;font-weight:500}.pt-nav-link i{width:18px;text-align:center}.pt-nav-link:hover{background:#ffffff12;color:white}.pt-nav-link.active{background:#ffffff18;color:white;box-shadow:inset 3px 0 var(--proteatro-yellow)}
.pt-nav-section{margin:26px 13px 8px;font-size:.65rem;text-transform:uppercase;letter-spacing:.13em;color:#c2b6a5;font-weight:600}.pt-sidebar-foot{margin-top:auto;padding:28px 12px 0;color:#c2b6a5;font-size:.7rem}
.pt-workspace{min-width:0}.pt-topbar{min-height:76px;display:flex;align-items:center;gap:16px;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--pt-border);background:white}.pt-topbar-title{font-size:.9rem;font-weight:600}.pt-account{display:flex;align-items:center;gap:12px;font-size:.8rem}.pt-logout{display:flex;gap:7px;align-items:center;color:var(--pt-muted);text-decoration:none}.pt-public-brand{font-weight:700;text-decoration:none}
.app-shell{padding:28px;max-width:1600px;margin:auto}.app-card{background:white;border:1px solid var(--pt-border);border-radius:16px;padding:28px;box-shadow:var(--card-shadow);min-width:0}.page-header{margin-bottom:24px}.page-header h1{font-size:1.6rem;font-weight:700}.subtitle{color:var(--pt-muted)}
.card,.summary-card{border:1px solid var(--pt-border);border-radius:var(--pt-radius);box-shadow:var(--card-shadow);background:white}.card:hover,.summary-card:hover{transform:none;box-shadow:var(--card-shadow)}.card-header{background:#f4f8fb;color:var(--pt-ink);border-bottom:1px solid var(--pt-border);font-weight:600;text-shadow:none}.summary-card{padding:24px;text-align:center;position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--proteatro-blue)}.income-card:before{background:#16734b}.expense-card:before{background:#b6313b}.summary-card h3{font-size:1.8rem;font-weight:700}.summary-card p{margin:0;color:var(--pt-muted)}.income-amount{color:#16734b}.expense-amount{color:#b6313b}
.btn{border-radius:8px;font-weight:500;font-size:.87rem;padding:.55rem .9rem;box-shadow:none;transition:background-color .15s,border-color .15s}.btn:hover{transform:none;box-shadow:none}.btn-sm,.pro-actions .btn{padding:.3rem .6rem;font-size:.78rem}.btn-primary{--bs-btn-bg:#0075ad;--bs-btn-border-color:#0075ad;--bs-btn-hover-bg:#00618f;--bs-btn-hover-border-color:#00618f;--bs-btn-active-bg:#005680;--bs-btn-active-border-color:#005680}.btn-outline-primary{--bs-btn-color:#0075ad;--bs-btn-border-color:#0075ad;--bs-btn-hover-bg:#0075ad;--bs-btn-hover-border-color:#0075ad}.btn-success{--bs-btn-bg:#16734b;--bs-btn-border-color:#16734b;--bs-btn-hover-bg:#125e3d;--bs-btn-hover-border-color:#125e3d}.btn-danger{--bs-btn-bg:#b6313b;--bs-btn-border-color:#b6313b;--bs-btn-hover-bg:#972932;--bs-btn-hover-border-color:#972932}
.form-control,.form-select{border:1px solid #c9d6df;border-radius:8px;padding:.6rem .75rem;font-size:.9rem;background-color:white}.form-control:focus,.form-select:focus{border-color:var(--proteatro-blue);box-shadow:0 0 0 3px #0075ad20;transform:none}.form-label{font-weight:600;color:var(--pt-ink);font-size:.85rem}.form-control-sm,.form-select-sm{padding:.3rem .5rem;font-size:.8rem}
.table,.pro-table{width:100%;box-shadow:none;border-collapse:collapse;border-spacing:0;font-size:.85rem;--bs-table-hover-bg:#f1f7fa}.table thead th,.pro-table thead th{background:#edf4f8;color:#314e60;padding:12px;font-weight:600;border-bottom:1px solid var(--pt-border);text-shadow:none}.table td,.pro-table tbody td{padding:12px;border-bottom:1px solid #e9eef2;vertical-align:middle}.table tbody tr:hover,.pro-table tbody tr:hover{transform:none;box-shadow:none}.pro-table tbody tr{background:white}.table-responsive{border:1px solid var(--pt-border);border-radius:10px}.pro-table tbody td:first-child,.pro-table tbody td:last-child{border-radius:0}
.badge{padding:5px 8px;font-weight:600;font-size:.7rem;border-radius:6px}.badge-role-admin{background:#fff1c8;color:#765300}.badge-role-viewer{background:#e8f1f7;color:#31536a}.badge-income{background:#e2f2e9;color:#14643f}.badge-expense{background:#fae6e8;color:#962b35}.badge-open{background:#e2f1fa;color:#00628d}.badge-closed{background:#e2f2e9;color:#14643f}.badge-canceled{background:#fff1c8;color:#765300}
.alert{border:1px solid transparent;border-radius:10px;box-shadow:none;font-size:.9rem}.alert-success{background:#edf8f1;color:#165b38;border-color:#c5e4d1}.alert-danger{background:#fcedef;color:#8f2832;border-color:#edc8cd}.alert-warning{background:#fff7e4;color:#765300;border-color:#efdfa9}.alert-info{background:#edf6fb;color:#205c7b;border-color:#cce2ef}.modal-content{border:1px solid var(--pt-border);border-radius:14px;box-shadow:0 20px 70px #102d4025}.modal-header,.modal-footer{border-color:var(--pt-border)}.dropdown-menu{border:1px solid var(--pt-border);border-radius:10px;box-shadow:0 6px 20px #102d4015}
:focus-visible{outline:3px solid #805729;outline-offset:3px}.pt-nav-link:focus-visible{outline-color:#ffaf00}
/* Adattamento specialistico: le tabelle rimangono tabelle, con scorrimento. */
@media(min-width:992px){.pt-sidebar{position:fixed;inset:0 auto 0 0;width:250px;visibility:visible!important}.pt-workspace{margin-left:250px}}
@media(max-width:991.98px){.app-shell{padding:16px}.app-card{padding:20px}.pt-topbar{padding:14px 16px}.pt-topbar-title{flex:1}.pt-sidebar .offcanvas-body{height:auto;flex:1}.pt-sidebar-foot{margin-top:24px}}
@media(max-width:600px){.pt-account>span:first-child,.pt-logout span{display:none}.pt-topbar{gap:10px}.pt-topbar-title{font-size:.78rem}.app-shell{padding:10px}.app-card{padding:16px}.table td,.table th{padding:9px;font-size:.78rem}.pt-public .pt-topbar .text-muted{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
