* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 15px; background: #f5f5f5; color: #333; line-height: 1.5; } .container { max-width: 100%; margin: 0 auto; padding: 20px; } h1 { margin-bottom: 15px; } h2 { margin: 15px 0 8px; font-size: 16px; } .nav { margin-bottom: 15px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; } .btn { display: inline-block; padding: 7px 14px; background: #555; color: #fff; text-decoration: none; border: none; border-radius: 4px; cursor: pointer; font-size: 14px; } .btn:hover { opacity: 0.85; } .btn-green { background: #2a7d2a; } .btn-blue { background: #0066cc; } .btn-danger { background: #c0392b; } .btn-sm { padding: 3px 10px; font-size: 13px; } .btn-logout { background: #666; } .input { padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 100%; max-width: 300px; } .input-sm { max-width: 120px; } .input-xs { max-width: 80px; } #subject-select { max-width: 220px; } .search-bar { margin-bottom: 15px; } .filter-extras { margin-bottom: 12px; padding: 8px 12px; background: #fafafa; border: 1px solid #e0e0e0; border-radius: 4px; } .filter-extras .form-row { margin-bottom: 0; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; } .filter-extras .form-row label { min-width: auto; font-weight: 500; font-size: 13px; margin-right: 2px; } .filter-extras .form-row label:not(:first-child) { margin-left: 10px; } .filter-bar { display: flex; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; } .filter-label { display: flex; align-items: center; gap: 4px; font-size: 13px; cursor: pointer; padding: 4px 10px; border-radius: 4px; background: #eee; transition: background 0.2s; } .filter-label:hover { background: #ddd; } .filter-gia { color: #0066cc; } .filter-gve { color: #666; } .filter-nodata { color: #c0392b; } table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 4px; overflow: hidden; } table th, table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid #eee; } table th { background: #eee; font-weight: 600; } table tr:hover { background: #fafafa; } .row-warning { background: #ffe6e6 !important; } .row-warning:hover { background: #ffd6d6 !important; } .banner-warning { background: #fff3cd; border: 1px solid #ffc107; color: #856404; padding: 10px 15px; border-radius: 6px; margin-bottom: 12px; font-size: 14px; font-weight: 500; } .badge { display: inline-block; padding: 2px 8px; border-radius: 3px; font-size: 11px; font-weight: 600; } .badge-gia { background: #d4edff; color: #0056b3; } .badge-gve { background: #eee; color: #555; } .card { background: #fff; padding: 15px 20px; border-radius: 6px; margin-bottom: 15px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); } .form-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; } .form-row label { min-width: 180px; font-weight: 500; } .checkbox-label { display: block; margin: 3px 0; cursor: pointer; } .msg { font-size: 13px; margin-left: 10px; } .msg-ok { color: #2a7d2a; } .msg-err { color: #c0392b; } .toolbar { margin-top: 15px; } ol { padding-left: 20px; } ol li { margin: 4px 0; } .user-bar { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #666; } .decl-input { max-width: 180px; font-size: 13px; padding: 4px 6px; } .decl-input:disabled { background: #f0f0f0; color: #999; cursor: not-allowed; } .decl-cb { width: 18px; height: 18px; cursor: pointer; }