:root{--burg:#6d1d26;--burg2:#8d303b;--paper:#f7f5f3;--line:#e6dfdb;--ink:#232323;--muted:#6c757d}
body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--paper);color:var(--ink)}
a{color:var(--burg);text-decoration:none} a:hover{text-decoration:underline}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:white;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{font-weight:800;color:var(--burg);font-size:20px}.layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 58px)}
.sidebar{background:#fff;border-right:1px solid var(--line);padding:18px}.sidebar a{display:block;padding:10px 12px;border-radius:8px;margin-bottom:5px}.sidebar a:hover{background:#f4e9e9;text-decoration:none}.content{padding:26px;max-width:1400px}.grid{display:grid;gap:16px}.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:18px}.stat{font-size:30px;font-weight:800;color:var(--burg)}
.btn{display:inline-block;background:var(--burg);color:#fff;border:none;border-radius:8px;padding:9px 14px;cursor:pointer}.btn.secondary{background:#666}.btn:hover{background:var(--burg2);text-decoration:none}.muted{color:var(--muted)}
table{width:100%;border-collapse:collapse;background:white}th,td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}th{background:#f2ece9;color:#4b1a20}.badge{padding:3px 8px;border-radius:999px;background:#eee;font-size:12px}
form.stack{display:grid;gap:12px}.field{display:grid;gap:6px}input,select,textarea{font:inherit;padding:9px 10px;border:1px solid #ccc;border-radius:8px;background:#fff}textarea{min-height:90px}.actions{display:flex;gap:8px;align-items:center}.login-wrap{max-width:430px;margin:10vh auto}.title-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.danger{color:#9c1c1c}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.tabs{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}.section-title{margin-top:28px;color:var(--burg)}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar a{white-space:nowrap}.grid4,.grid2{grid-template-columns:1fr}.content{padding:16px}}

/* App Gare 0.2 - Analisi Gara */
.workflow{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0}.workflow form{margin:0}.btn:disabled{opacity:.45;cursor:not-allowed}.alert{padding:12px 14px;border:1px solid #ddd;border-radius:10px;margin:12px 0;background:#fff}.alert.success{border-color:#84b98a}.alert.warning{border-color:#d6af54}.alert.danger{border-color:#c76f6f}.structure-item{padding:14px 0;border-bottom:1px solid #e5e7eb}.structure-item:last-child{border-bottom:0}.structure-item h3{margin:0 0 8px}.small{font-size:.86rem;white-space:pre-line}

/* App Gare 0.2.1 - gestione documenti */
.doc-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.doc-actions form{margin:0}.link-button{border:0;background:transparent;padding:0;color:var(--burg);font:inherit;cursor:pointer}.link-button:hover{text-decoration:underline}.link-button.danger{color:#9c1c1c}.edit-row td{background:#fbf7f5}.edit-document-form{max-width:900px}
