:root{--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-danger: #dc2626;--color-success: #16a34a;--color-warning: #f59e0b;--color-bg: #f8fafc;--color-surface: #ffffff;--color-text: #1e293b;--color-text-muted: #64748b;--color-border: #e2e8f0;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.app-logo{font-weight:700;font-size:1.1rem;color:var(--color-primary);text-decoration:none}.app-nav{display:flex;align-items:center;gap:16px}.app-nav a{color:var(--color-text-muted);text-decoration:none;font-size:.9rem}.app-nav a:hover{color:var(--color-primary)}.user-name{color:var(--color-text-muted);font-size:.85rem}.app-main{flex:1;max-width:960px;width:100%;margin:0 auto;padding:24px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s;text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-bg)}.btn-link{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:.9rem;padding:4px 8px}.btn-link:hover{color:var(--color-danger)}.btn-delete{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:.8rem;padding:4px 8px;border-radius:4px}.btn-delete:hover{background:#fee2e2;color:var(--color-danger)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow);position:relative}.form-card{max-width:640px;margin-bottom:24px}.project-card{display:block;text-decoration:none;color:inherit;transition:border-color .15s}.project-card:hover{border-color:var(--color-primary)}.project-card h3{margin-bottom:8px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.card-meta{color:var(--color-text-muted);font-size:.85rem;margin-top:8px}.calc-list{display:flex;flex-direction:column;gap:12px}.calc-card{position:relative}.calc-card-link{text-decoration:none;color:inherit;display:block}.calc-card-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.calc-card-header h3{font-size:1rem}.calc-card-info{display:flex;flex-wrap:wrap;gap:12px;font-size:.85rem;color:var(--color-text-muted)}.form-group{margin-bottom:16px;flex:1}.form-group label{display:block;font-size:.85rem;font-weight:500;margin-bottom:4px;color:var(--color-text)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-surface);color:var(--color-text)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.form-row{display:flex;gap:16px}.fieldset{border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.fieldset legend{font-weight:600;padding:0 8px;font-size:.9rem}.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:500;background:#eff6ff;color:var(--color-primary);margin-right:6px}.tag-secondary{background:#f0fdf4;color:var(--color-success)}.status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-calculado{background:#dcfce7;color:var(--color-success)}.status-pendente{background:#fef3c7;color:#92400e}.status-erro{background:#fee2e2;color:var(--color-danger)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px}.page-header h2{margin-bottom:4px}.header-actions{display:flex;gap:8px}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;font-size:.9rem}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.8rem}th,td{padding:6px 10px;text-align:right;border-bottom:1px solid var(--color-border)}th{background:var(--color-bg);font-weight:600;font-size:.75rem;text-transform:uppercase;color:var(--color-text-muted);position:sticky;top:0}td:first-child,th:first-child{text-align:left}.row-fail{background:#fff5f5}.cell-fail{color:var(--color-danger);font-weight:600}.cell-ok{color:var(--color-success)}.verificacao-status{font-size:1.2rem;padding:12px;border-radius:var(--radius);text-align:center;grid-column:1 / -1}.verificacao-status.aprovado{background:#dcfce7;color:var(--color-success)}.verificacao-status.reprovado{background:#fee2e2;color:var(--color-danger)}.sugestao-barras{grid-column:1 / -1}.sugestao-barras ul{margin-top:4px;padding-left:20px}.sugestao-barras li{font-size:.9rem;margin-bottom:4px}.back-link{display:inline-block;color:var(--color-text-muted);text-decoration:none;font-size:.85rem;margin-bottom:16px;cursor:pointer;background:none;border:none}.back-link:hover{color:var(--color-primary)}.text-muted{color:var(--color-text-muted);font-size:.9rem}.loading{text-align:center;padding:60px;color:var(--color-text-muted)}.empty-state{text-align:center;padding:60px;color:var(--color-text-muted);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius)}.error-msg{color:var(--color-danger);background:#fee2e2;padding:8px 12px;border-radius:6px;font-size:.9rem;margin-bottom:12px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:40px;width:100%;max-width:400px;box-shadow:var(--shadow);text-align:center}.login-card h1{font-size:1.5rem;margin-bottom:4px}.login-subtitle{color:var(--color-text-muted);font-size:.9rem;margin-bottom:24px}.login-card form{text-align:left}.login-card .btn{width:100%;justify-content:center;padding:10px;margin-top:8px}@media(max-width:640px){.form-row{flex-direction:column;gap:0}.page-header{flex-direction:column}.info-grid,.project-grid{grid-template-columns:1fr}}
